Sangana neshanduro itsva yeCosmopolitan 2.0, iyo muchinjika-chikuva yakajairika C raibhurari

Kutanga kwe iyo itsva vhezheni yeprojekti "Cosmopolitan 2.0", iyo inogadzira raibhurari yeC yakajairwa uye chimiro chefaira chepasirese chinogona kushandiswa kugovera zvirongwa zvemashandisirwo akasiyana pasina kushandisa vaturikiri nemichina chaiyo.

Mudziyo kugadzira mafaera euniversal executable inovimba nekubatanidza zvikamu zvakati uye misoro kubva kune akasiyana masisitimu masisitimu anoshanda kuita faira rimwe, achibatanidza akati wandei mafomati anoshandiswa muUnix, Windows, uye macOS.

Kuti ave nechokwadi imwe executable mhanya pane masisitimu Windows uye Unix, hunyengeri hunoshandiswa kukodha Windows PE mafaera segoko script, kutora mukana wekuti Thompson Shell haishandise iyo "#!" script marker.

Kugadzira mapurogiramu anosanganisira akawanda mafaera (kusanganisa zvese zviwanikwa kuita faira rimwe chete), inotsigirwa kugadzira faira rinogoneka muchimiro cheyakanyatsogadzirwa ZIP dura. Rondedzero yefomati yakatsanangurwa (muenzaniso hello.com application):

Iyo qemu-x86_64 kufona inopihwa kuti iwedzere kutakurika uye inobvumira kodhi yakaunganidzwa kuti x86_64 architecture imhanye pane asiri-x86 mapuratifomu, akadai seRaspberry Pi mabhodhi uye Apple zvishandiso zvine maARM processors. Iyo purojekiti inogona zvakare kushandiswa kugadzira yakamira-yega maapplication anoshanda pasina sisitimu yekushandisa (simbi isina chinhu). Mune zvikumbiro zvakadaro, bootloader inosungirirwa kune faira rinoshandiswa, uye chirongwa chinoshanda se bootable inoshanda sisitimu.

Zvikuru zvitsva zveCosmopolitan 2.0

Mune iyi vhezheni nyowani zvakasimbiswa izvo schema yekuwana zviwanikwa zvemukati yakashandurwa dentro kubva kune zip file (pakuvhura mafaera, nzira dzakajairika /zip/… dzava kushandiswa pachinzvimbo chekushandisa zip:.. prefix). Saizvozvo, kuwana madhisiki muWindows, zvinokwanisika kushandisa nzira senge "/c/..." pachinzvimbo che "C:/…".

Iyo itsva APE loader inokurudzirwa (Actually Portable Executable), iyo inotsanangura mafomati epasirese eexecutable mafaera. Iyo itsva bootloader inoshandisa mmap kugovera chirongwa kundangariro uye haachachinji zvirimo panhunzi. Kana zvichidikanwa, iyo universal executable inogona kushandurwa kuita yakajairwa executable yakasungirirwa kumapuratifomu ega.

PaLinux, zvinokwanisika kushandisa binfmt_misc kernel module kumhanyisa APE zvirongwa. Zvinocherechedzwa kuti kushandiswa kwebinfmt_misc ndiyo inokurumidza nzira yekutanga, kuwedzera kune Kuitwa kwe kushanda kwechipikirwa () uye unveil () system mafoni, yakagadziridzwa neOpenBSD purojekiti, pamwe nekupa API yekushandisa data rekufona muC, C ++, Python, uye Redbean zvirongwa, pamwe nekushandisa kubva kuvimbiso.com kutsaura maitiro asina musoro.

Tinogona zvakare kuwana izvo yeLinux, kuita kwewachi_gettime uye gettimeofday kufona kwawedzerwa kusvika ku10 nguva nekuda kwekushandiswa kweiyo vDSO (Virtual Dynamic Shared Object) mashandiro, ayo anobvumira kuendesa system yekufona inobata kune mushandisi nzvimbo uye nekunzvenga shanduko yekuchinja.

Chivakwa chinoshandisa Landlock Make, edition yeGNU Gadzira nekutarisa kwakasimba kwekutarisa uye kushandiswa kweiyo Landlock system kufona kuparadzanisa chirongwa kubva kune yese system uye kugadzirisa caching kunyatsoita. Senge sarudzo, compiler kugona uye yakajairwa GNU Gadzira inochengetedzwa.

Kune rumwe rutivi, inosimbisawo iyo yakaitwa mabasa ekuverenga akawanda: _spawn () uye _join (), izvo zvinosungirwa pasi rose pane chaiwo maAPI eakasiyana masisitimu anoshanda. Basa ririkuenderera mberi rekushandisa rutsigiro rwePOSIX tambo.

Pane dzimwe shanduko dzinobuda pachena:

  • Yakawedzera tsigiro ye "-ftrace" uye "-strace" sarudzo kune anoteedzera mafaera kutumira ruzivo nezvese basa mafoni uye system yekufona kune stderr.
  • Yakawedzerwa rutsigiro rweiyo closefrom() system call inoenderana neLinux 5.9+, FreeBSD 8+ uye OpenBSD.
  • Mabasa eMasvomhu ekushanda nenhamba dzakaoma akatamiswa kubva muraibhurari yeMusl.
  • Mabasa mazhinji emasvomhu akakurumidziswa.
  • Iyo nointernet () basa rinotsanangurwa, iro rinodzima network kugona.
  • Yakawedzera mabasa matsva ekunyatso wedzera tambo: append, appendf, appendr, appends, appendw, appendz, kappendf, kvappendf, uye vappendf.
  • Shanduro yakachengetedzwa ye kprintf () mhuri yemabasa, yakagadzirirwa kushanda neropafadzo dzakakwirira, yakawedzerwa.
  • Yakavandudzwa zvakanyanya kuita kweSSL, SHA, curve25519, uye RSA kuita.

Chekupedzisira, kana iwe uchida kudzidza zvakawanda nezvazvo, iwe unofanirwa kuziva kuti iyo purojekiti kodhikana kugoverwa pasi peISC rezinesi (shanduro yakapfava yeMIT/BSD).


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira data: AB Internet Networks 2008 SL
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako