Cosmopolitan, tavaline C-teek, millel on platvormiülene käivitatav fail

Esimene versioon on just välja antud projekti kosmopoliitne mis paistab silma arendamise poolest standardne C-teek ja universaalne käivitatav failivorming, mida saab kasutada erinevate operatsioonisüsteemide jaoks programmide levitamiseks.

Konteiner universaalsete käivitatavate failide moodustamiseks põhineb konkreetsete segmentide ja pealkirjade kombinatsioonil erinevate operatsioonisüsteemide (PE, ELF, MALE, OPENBSD) jaoks ühes failis.

Käivitamise tagamiseks üks käivitatav fail Windowsi ja Unixi süsteemides, kasutatakse trikki, mille olemuseks on Windowsi PE-failide kodeerimine shelliskripti kujul, kasutades ära asjaolu, et Thompsoni kest ei kasuta skripti markerit "#!"

Cosmopolitan teeb C-st keele, mille saab üks kord ehitada ja mida saab käivitada kõikjal, sarnaselt Java-ga, välja arvatud see, et see ei nõua tõlkide ega virtuaalmasinate eelnevat installimist. Cosmo pakub samu teisaldatavuse eeliseid kui kõrgetasemelised keeled nagu Go ja Rust, kuid see ei leiuta uut keelt ja te ei pea konfigureerima CI-süsteemi, et luua iga operatsioonisüsteemi jaoks eraldi kahendfailid.

See, millele Cosmopolitan keskendub, on C parandamine platvormidest lahutades, nii et seda võib olla tore kasutada väikeste Unixi programmide kirjutamiseks, mida saab hõlpsasti levitada palju laiemale publikule.

Selle tulemusena luuakse käivitatav fail, milles on ühendatud mitu erinevat vormingut kasutatakse Unixis, Windowsis ja macOS-is. ja kavandatava vormi ülevaade.

Fail algab sildiga "MZqFpD", mida tõlgendatakse päisena Windows PE-vormingus.

Näiteks Unixi süsteemides, kestakood käsk exec, käivitatava koodi edastamine nimetu toru kaudu.

Küll mainitakse, et pakutud meetodil on piirang on võime töötada Unixi-laadses operatsioonisüsteemis kasutades ainult Thompsoni Shelli ühilduvusrežiimi toetavaid kestasid, muidu ei alga see otseselt süsteemikõnega.

Kõne qemu-x86_64 on mõeldud täiendava teisaldatavuse pakkumiseks ja võimaldab teil käitada kompileeritud x86_64 koodi mitte-x86 platvormidel nagu Raspberry Pi tahvlid ja ARM-protsessoritega Apple'i seadmed.

El proyecto saab kasutada ka iseseisvate rakenduste loomiseks mis töötavad ilma operatsioonisüsteemita (paljas metall). Sellistes rakendustes on täitmisfailile lisatud laadur ja programm toimib käivitatava operatsioonisüsteemina.

Projekti väljatöötatud C libc standardraamatukogus on konsoolirakenduste loomiseks välja pakutud umbes 1400 funktsiooni.

Jõudluse osas kosmopoliitne töötab sama kiiresti kui glibc ning edestab eriti Muslit ja Newlibi, samal ajal kui Cosmopolitan on koodisuurusega suurusjärgus väiksem kui glibc ja sobib ligikaudu Musli ja Newlibiga.

Tihti kutsutud funktsioonide, näiteks memcpy ja strlen optimeerimiseks kasutatakse lisaks tehnikat, milles funktsiooni kutsumiseks kasutatakse makro sidumist, kus kompilaatorit teavitatakse koodi täitmisega seotud protsessori registritest, mis säästab ressursse salvestades protsessori oleku, salvestades ainult muutuvaid registreid.

Programmide loomiseks mis sisaldavad mitut faili (ühendades kõik ressursid ühte faili), toetatakse universaalse käivitatava faili moodustamist ZIP-faili kujul spetsiaalselt loodud (sisu saab vaadata käsuga "unzip -v", kuid fail jääb otseseks käivitamiseks kättesaadavaks).

Väljapakutud libc ja käitamisajaga staatilise linkimise abil saadud fail sobib töötamiseks mis tahes Linuxi distributsioonis, macOS-is, Windowsis, FreeBSD-s ja OpenBSD-s. Projekti koodi levitatakse ISC litsentsi alusel (MIT / BSD lihtsustatud versioon).

Lõpuks kui olete huvitatud sellest rohkem teada saama selle teegi kohta saate vaadata üksikasju ja dokumentatsiooni Järgmisel lingil.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.