„Cosmopolitan“ - standartinė C biblioteka, kurią galima vykdyti naudojant įvairias platformas

Pirmoji versija ką tik išleista projekto kosmopolitinis kuris išsiskiria išsivystymu standartinė C biblioteka ir universalus vykdomojo failo formatas, kuris gali būti naudojamas platinant programas skirtingoms operacinėms sistemoms.

Konteineris universaliems vykdomiesiems failams formuoti yra pagrįstas konkrečių segmentų ir antraščių deriniu skirtingoms operacinėms sistemoms (PE, ELF, MALE, OPENBSD) viename faile.

Garantuoti paleidimą vieną vykdomąjį failą „Windows“ ir „Unix“ sistemose, naudojamas triukas, kurio esmė yra „Windows PE“ failų kodavimas apvalkalo scenarijaus pavidalu, pasinaudodamas tuo, kad Thompsono apvalkalas nenaudoja scenarijaus žymeklio „#!“.

„Cosmopolitan“ daro kalbą C, kurią galima sukurti vieną kartą ir kurią galima paleisti bet kur, panašią į „Java“, išskyrus tai, kad jai nereikia išankstinio vertėjų ar virtualių mašinų diegimo. „Cosmo“ siūlo tas pačias nešiojamojo kompiuterio pranašumus kaip aukšto lygio kalbos, pvz., „Go“ ir „Rust“, tačiau ji nesugalvoja naujos kalbos ir jums nereikės sukonfigūruoti CI sistemos, kad sukurtumėte atskirus kiekvienos operacinės sistemos dvejetainius failus.

„Cosmopolitan“ sutelkia dėmesį į tai, kad pataiso C, atsiejdamas jį nuo platformų, todėl gali būti malonu naudoti rašant mažas „Unix“ programas, kurios lengvai platinamos daug platesnei auditorijai.

Kaip rezultatas, sukuriamas vykdomasis failas, kuriame yra derinami keli skirtingi formatai naudojamas Unix, Windows ir MacOS. ir siūlomo formato metmenys.

Failas prasideda žyma „MZqFpD“, kuri aiškinama kaip antraštė „Windows PE“ formatu.

Pavyzdžiui, „Unix“ sistemose, apvalkalo kodas vykdoma vykdant komandą „exec“, vykdančio kodo perdavimas neįvardintu vamzdžiu.

Nors minima, kad siūlomas metodas yra ribotas yra galimybė paleisti operacinę sistemą, panašią į „Unix“ naudojant tik apvalkalus, palaikančius „Thompson Shell“ suderinamumo režimą, kitaip jis nebus pradėtas tiesiogiai nuo sistemos skambučio.

Skambutis „qemu-x86_64“ yra skirtas suteikti papildomą perkeliamumą ir leidžia paleisti sukurtą x86_64 kodą ne x86 platformose, tokiose kaip „Raspberry Pi“ plokštės ir „Apple“ įrenginiai su ARM procesoriais.

El proyecto taip pat galima naudoti kuriant atskiras programas kad darbas be operacinės sistemos (plikas metalas). Tokiose programose krautuvas pridedamas prie vykdomojo failo, o programa veikia kaip įkeliama operacinė sistema.

Projekto sukurtoje „C libc“ standartinėje bibliotekoje buvo pasiūlyta apie 1400 funkcijų konsolės programoms kurti.

Kalbant apie našumą, kosmopolitinis veikia taip greitai, kaip glibc ir ypač lenkia Muslį bei Newlibą, tuo tarpu „Cosmopolitan“ yra mažesnio kodo dydžio, nei glibc, ir apytiksliai atitinka musulą ir newlibą.

Norint optimizuoti dažnai vadinamas funkcijas, tokias kaip „memcpy“ ir „strlen“, papildomai naudojama technika, pagal kurią funkcijai iškviesti naudojamas makrokomandinis susiejimas, kuriame kompiliatorius yra informuojamas apie procesoriaus registrus, susijusius su kodo vykdymu, o tai taupo išteklius. taupant procesoriaus būseną saugant tik kintamus registrus.

Kurti programas kurie apima kelis failus (susiejant visus išteklius į vieną failą), palaikomas universalaus vykdomojo failo formavimas ZIP failo pavidalu specialiai sukurtas (turinį galima peržiūrėti naudojant komandą „išpakuoti -v“, tačiau failą galima tiesiogiai paleisti).

Statinis susiejimas su siūlomu libc ir vykdymo laiku gautas failas tinka paleisti bet kuriame „Linux“ paskirstyme, „MacOS“, „Windows“, „FreeBSD“ ir „OpenBSD“. Projekto kodas platinamas pagal ISC licenciją (supaprastinta MIT / BSD versija).

Pagaliau jei norite sužinoti daugiau apie tai apie šią biblioteką galite patikrinti išsamią informaciją ir dokumentus Šioje nuorodoje.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.