La kulan nooca cusub ee Cosmopolitan 2.0, maktabadda caadiga ah ee C

Daahfurka nooca cusub ee mashruuca "Cosmopolitan 2.0", kaas oo soo saara maktabad C caadiga ah iyo qaab fayl oo caalami ah oo la fulin karo kaas oo loo isticmaali karo in lagu qaybiyo barnaamijyada nidaamyada hawlgalka kala duwan iyada oo aan la isticmaalin turjubaano iyo mashiinnada farsamada.

Weelka si loo abuuro faylal caalami ah oo la fulin karo waxay ku tiirsan tahay isku darka qaybo gaar ah iyo madax ka soo jeeda nidaamyo kala duwan Nidaamyada hawlgalka ee hal fayl, oo isku daraya qaabab kala duwan oo kala duwan oo loo isticmaalo Unix, Windows, iyo macOS.

Si loo hubiyo taas hal la fulin karo ku socodsiiya nidaamyada Windows iyo Unix, khiyaano ayaa loo istcimaalaa in lagu codeeyo faylasha Windows PE sidii qoraal qolof ah, ka faa'iidaysiga xaqiiqda ah in Thompson Shell aanu isticmaalin "#!"

Si loo abuuro barnaamijyo ay ku jiraan faylal badan (isku darka dhammaan agabka hal fayl), waxaa lagu taageerayaa in la abuuro fayl la fulin karo oo ah qaab si gaar ah loo farsameeyay kaydka ZIP. Dulucda qaabka la soo jeediyay (tusaale codsi hello.com):

Wicista qemu-x86_64 waxa loo bixiyay qaadis dheeri ah waxayna u ogolaataa koodka la soo ururiyay ee x86_64 qaab dhismeedka inuu ku shaqeeyo goobo aan x86 ahayn, sida looxyada Raspberry Pi iyo aaladaha Apple ee ku qalabaysan soosaarayaasha ARM. Mashruuca ayaa sidoo kale loo isticmaali karaa in lagu abuuro codsiyo gooni-gooni ah oo shaqeeya iyada oo aan lahayn nidaamka hawlgalka (birta birta ah). Codsiyada noocaan ah, bootloader-ku wuxuu ku xiran yahay faylka la fulin karo, barnaamijkuna wuxuu u shaqeeyaa sida nidaamka hawlgalka bootable.

Sheekooyinka cusub ee Cosmopolitan 2.0

Qaabkan cusub waxaa lagu muujiyay in Qorshaha gelitaanka ilaha gudaha waa la bedelay gudaha laga bilaabo faylka zip (marka la furo feylasha, dariiqyada caadiga ah /zip/… ayaa hadda la isticmaalaa halkii la isticmaali lahaa zip:.. horgalaha). Sidoo kale, si aad u geliso disk-yada Windows, waxaa suurtagal ah in la isticmaalo waddooyinka sida "/c/..." halkii "C:/..."

Raadiyaha APE cusub ayaa la soo jeediyay (Dhab ahaantii la qaadi karo), kaas oo qeexaya qaabka faylasha caalamiga ah ee la fulin karo. bootloader-ka cusub wuxuu isticmaalaa mmap si uu barnaamijka ugu qaybiyo xusuusta oo hadda ma beddelo nuxurka duulista. Haddii loo baahdo, fulinta caalamiga ah waxaa loo rogi karaa fulinyaal joogto ah oo ku xiran goobo gaar ah.

Linux, waxaa suurtagal ah in lagu isticmaalo moduleka kernel binfmt_misc si loo socodsiiyo barnaamijyada APE. Waxaa la xusay in isticmaalka binfmt_misc uu yahay habka ugu dhaqsiyaha badan, marka lagu daro Hirgelinta shaqeynta ballan-qaadka () iyo daah-furka () wicitaannada nidaamka, oo uu sameeyay mashruuca OpenBSD, iyo sidoo kale bixinta API si loogu isticmaalo xogta wicitaanka ee barnaamijyada C, C++, Python, iyo Redbean, iyo sidoo kale utility from promise.com in la go'doomiyo habab aan sabab lahayn.

Waxaan sidoo kale ka heli karnaa taas Linux, waxqabadka clock_gettime iyo gettimeofday wicitaanada waa la kordhiyay ilaa 10 jeer iyadoo ay ugu wacan tahay isticmaalka habka vDSO (Virtual Dynamic Shared Object), kaas oo u oggolaanaya u wareejinta maamulaha wicitaanka nidaamka booska isticmaale iyo ka gudubka macnaha beddelka.

Dhismuhu wuxuu isticmaalaa Landlock Make, daabacaadda GNU Samee hubinta ku-tiirsanaanta adag iyo adeegsiga nidaamka Landlockka si looga go'o barnaamijka intiisa kale oo loo hagaajiyo waxtarka kaydinta. Ikhtiyaar ahaan, kartida iskudubaridiyaha iyo samaynta GNU ee caadiga ah waa la ilaaliyaa.

Dhanka kale, waxay sidoo kale iftiiminaysaa hawlo la fuliyay oo loogu talagalay akhrinta badan: _spawn() iyo _join(), kuwaas oo ah xidhidh caalami ah oo ku saabsan API-yada gaarka ah ee nidaamyada hawlgalka ee kala duwan. Shaqada ayaa sidoo kale socota si loo hirgeliyo taageerada dunta POSIX.

Isbedelada kale ee muuqda:

  • Taageero lagu daray "–ftrace" iyo "-strace" ikhtiyaaraadka si loo fuliyo faylasha si loogu diro macluumaadka ku saabsan dhammaan wicitaannada shaqada iyo wicitaannada nidaamka stderr.
  • Taageero lagu daray wicitaanka xiritaanka() ee ku habboon Linux 5.9+, FreeBSD 8+ iyo OpenBSD.
  • Hawlaha xisaabta ee ku shaqaynta nambarada adag ayaa laga raray maktabadda Musl.
  • Shaqooyin badan oo xisaabeed ayaa la dardargeliyay.
  • Shaqada nointernet() waa la soo jeediyay, taasoo curyaamisa awoodaha shabakada.
  • Waxaa lagu daray hawlo cusub si hufan loogu dhejiyo xargaha: lifaaqa, lifaaqa, lifaaqa, lifaaqa, lifaaqa, lifaaqa, kappendf, kvappendf, iyo vappendf.
  • Nooca la ilaaliyo ee kprintf() qoyska hawlaha, loogu talagalay in lagu shaqeeyo mudnaanta sare, ayaa lagu daray.
  • Waxqabadka si weyn loo hagaajiyay ee SSL, SHA, curve25519, iyo hirgelinta RSA.

Ugu dambeyntii, haddii aad xiisaynayso inaad wax badan ka ogaato, waa inaad ogaataa in code-ka mashruucaama waxaa lagu qaybiyaa shatiga ISC (nooca la fududeeyay ee MIT/BSD).


Ka tag faalladaada

cinwaanka email aan la daabacin doonaa. Beeraha loo baahan yahay waxaa lagu calaamadeeyay la *

*

*

  1. Ka mas'uul ah xogta: AB Internet Networks 2008 SL
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.