Hlangana nenguqulo entsha ye-Cosmopolitan 2.0, umtapo wezincwadi ojwayelekile we-C

Ukwethulwa kwe- inguqulo entsha yephrojekthi "Cosmopolitan 2.0", ethuthukisa umtapo wezincwadi ojwayelekile C kanye nefomethi yefayela elisebenzisekayo jikelele elingasetshenziswa ukusabalalisa izinhlelo zamasistimu okusebenza ahlukene ngaphandle kokusebenzisa otolika nemishini ebonakalayo.

Isiqukathi ukukhiqiza amafayela asebenzisekayo jikelele incike ekuhlanganiseni izingxenye ezithile kanye nezihloko ezivela kumasistimu ahlukene Amasistimu wokusebenza abe yifayela elilodwa, ahlanganisa amafomethi amaningana ahlukene asetshenziswa ku-Unix, Windows, ne-macOS.

Ukuqinisekisa lokho okukodwa okusebenzisekayo sebenzisa amasistimu IWindows ne-Unix, iqhinga lisetshenziselwa ukufaka amafayili e-Windows PE njengeskripthi segobolondo, ukuthatha ithuba lokuthi i-Thompson Shell ayisebenzisi umaka wombhalo othi "#!".

Ukwakha izinhlelo ezihlanganisa amafayela amaningi (okuhlanganisa zonke izinsiza efayeleni elilodwa), kusekelwa ukukhiqiza ifayela elisebenzisekayo ngendlela yengobo yomlando ye-ZIP eklanywe ngokukhethekile. Uhlaka lwefomethi ehlongozwayo (isibonelo isicelo se-hello.com):

Ucingo lwe-qemu-x86_64 luhlinzekelwe ukuphatheka okwengeziwe futhi ivumela ikhodi ehlanganisiwe yokwakheka kwe-x86_64 ukuthi isebenze ezisekelweni ezingezona ze-x86, ezifana namabhodi we-Raspberry Pi namadivayisi we-Apple afakwe ama-ARM processors. Le phrojekthi ingasetshenziswa futhi ukudala izinhlelo zokusebenza ezizimele ezisebenza ngaphandle kwesistimu yokusebenza (insimbi engenalutho). Kulezi zinhlelo zokusebenza, i-bootloader inamathiselwe efayeleni elisebenzisekayo, futhi uhlelo lusebenza njengohlelo olusebenzayo olusebenzayo.

Amanoveli amakhulu we-Cosmopolitan 2.0

Kule nguqulo entsha kugqanyisiwe lokho i-schema sokufinyelela izinsiza zangaphakathi sishintshiwe dentro kusuka kufayela le-zip (lapho uvula amafayela, izindlela ezijwayelekile /zip/… manje sezisetshenziswa esikhundleni sokusebenzisa i-zip:.. isiqalo). Ngokufanayo, ukuze ufinyelele amadiski ku-Windows, kungenzeka ukusebenzisa izindlela ezinjengokuthi "/c/..." esikhundleni sokuthi "C:/…".

Isilayishi esisha se-APE siyaphakanyiswa (Empeleni Okusebenzisekayo Okuphathekayo), okuchaza ifomethi yamafayela asebenzisekayo jikelele. I-bootloader entsha isebenzisa i-mmap ukwabela uhlelo kumemori futhi akusashintshi okuqukethwe ngokuhamba kwesikhathi. Uma kunesidingo, okusebenzisekayo kwendawo yonke kungaguqulelwa kube okusebenzisekayo okujwayelekile okuboshelwe kuzingxenyekazi ezingazodwana.

Ku-Linux, kungenzeka ukusebenzisa imojuli ye-binfmt_misc kernel ukusebenzisa izinhlelo ze-APE. Kuyaphawulwa ukuthi ukusetshenziswa kwe-binfmt_misc kuyindlela yokuqalisa esheshayo, ngaphezu kwalokho Ukuqaliswa kwe ukusebenza kwesibambiso() kanye ne-unveil() izingcingo zesistimu, ezithuthukiswe iphrojekthi ye-OpenBSD, kanye nokuhlinzeka nge-API yokusebenzisa idatha yocingo ezinhlelweni ze-C, C++, Python, ne-Redbean, kanye nensiza evela ku- promise.com ukuhlukanisa izinqubo ezingafuneki.

Singakuthola futhi lokho ku-Linux, ukusebenza kwezingcingo ze-clock_gettime kanye ne-gettimeofday kunyusiwe kufika izikhathi ezingu-10 ngenxa yokusetshenziswa kwendlela ye-vDSO (Virtual Dynamic Shared Object), evumela ukudlulisa isibambi sezingcingo sesistimu endaweni yomsebenzisi kanye nokweqa umongo weswishi.

Isakhiwo sisebenzisa i-Landlock Make, uhlelo lwe-GNU Yenza ngokuhlola ukuncika okuqinile kanye nokusetshenziswa kwekholi yesistimu ye-Landlock ukuze uhlukanise uhlelo kulo lonke uhlelo futhi uthuthukise ukusebenza kahle kokugcinwa kwesikhashana. Njengenketho, amandla okuhlanganisa kanye ne-GNU Make evamile kuyagcinwa.

Ngakolunye uhlangothi, iphinde igqamise i kwenziwe imisebenzi yokuhlanganisa okuningi: _spawn() kanye _join(), okuyizibopho zomhlaba wonke phezu kwama-API athile wezinhlelo zokusebenza ezihlukene. Umsebenzi nawo uyaqhubeka ukuze kusetshenziswe ukwesekwa kochungechunge lwePOSIX.

Kwezinye izinguquko ezigqamile:

  • Ukwesekwa okwengeziwe kwezinketho ze-“-ftrace” kanye “no-strace” kumafayela asebenzisekayo ukuze kuthunyelwe ulwazi mayelana nazo zonke izingcingo ezisebenzayo namakholi wesistimu ku-stderr.
  • Usekelo olungeziwe lwekholi yesistimu ye-closefrom() ehambisana ne-Linux 5.9+, FreeBSD 8+ kanye ne-OpenBSD.
  • Imisebenzi yezibalo yokusebenza ngezinombolo eziyinkimbinkimbi isusiwe kulabhulali ye-Musl.
  • Imisebenzi eminingi yezibalo isheshisiwe.
  • Umsebenzi we-nointernet() uyaphakanyiswa, okhubaza amandla enethiwekhi.
  • Kwengezwe imisebenzi emisha ukuze kwengezwe ngempumelelo iyunithi yezinhlamvu: i-append, appendf, appendr, appends, appendw, appendz, kappendf, kvappendf, ne-vappendf.
  • Inguqulo evikelwe yomndeni we-kprintf() wemisebenzi, oklanyelwe ukusebenza ngamalungelo aphakeme, yengeziwe.
  • Ukusebenza okuthuthuke kakhulu kwe-SSL, SHA, curve25519, kanye nokusetshenziswa kwe-RSA.

Okokugcina, uma ungathanda ukufunda okwengeziwe ngakho, kufanele wazi ukuthi ikhodi yephrojekthinoma isatshalaliswa ngaphansi kwelayisensi ye-ISC (inguqulo eyenziwe lula ye-MIT/BSD).


Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Unomthwalo wemfanelo ngedatha: AB Internet Networks 2008 SL
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.