Cosmopolitan, tavallinen C-kirjasto, jossa on alustojen välinen suoritettava tiedosto

Ensimmäinen versio on juuri julkaistu projektin Kosmopoliittinen joka erottuu kehityksestään tavallinen C-kirjasto ja universaali suoritettava tiedostomuoto, jota voidaan käyttää ohjelmien jakamiseen eri käyttöjärjestelmille.

Säiliö yleisten suoritettavien tiedostojen muodostamiseksi perustuu tiettyjen segmenttien ja otsikoiden yhdistelmään eri käyttöjärjestelmille (PE, ELF, MALE, OPENBSD) yhdessä tiedostossa.

Lanseerauksen takaamiseksi yksi suoritettava tiedosto Windows- ja Unix-järjestelmissä, käytetään temppua, jonka ydin on Windows PE -tiedostojen koodaus komentosarjan muodossa hyödyntämällä sitä tosiasiaa, että Thompson Shell ei käytä komentosarjan "#!" merkintää.

Cosmopolitan tekee C: stä kielen, joka voidaan rakentaa kerran ja jota voidaan käyttää missä tahansa, samanlainen kuin Java, paitsi että se ei vaadi tulkkien tai virtuaalikoneiden ennakkoasennusta. Cosmo tarjoaa samat siirrettävyysedut kuin korkean tason kielet, kuten Go ja Rust, mutta se ei keksi uutta kieltä, eikä sinun tarvitse määrittää CI-järjestelmää erillisten binaarien luomiseksi kullekin käyttöjärjestelmälle.

Mitä Cosmopolitan keskittyy, on C: n korjaaminen irrottamalla se alustoista, joten voi olla mukavaa käyttää pienten Unix-ohjelmien kirjoittamiseen, jotka jaetaan helposti paljon laajemmalle yleisölle.

Tämän seurauksena luodaan suoritettava tiedosto, jossa yhdistetään useita eri muotoja käytetään Unix, Windows ja macOS. ja ehdotetun muodon pääpiirteet.

Tiedosto alkaa tunnisteella "MZqFpD", joka tulkitaan otsikoksi Windows PE -muodossa.

Esimerkiksi Unix-järjestelmissä, shell-koodi suoritetaan exec-komennolla, suoritettavan koodin välittäminen nimeämättömän putken kautta.

Vaikka mainitaan, että ehdotettu menetelmä on rajoitettu on kyky toimia Unixin kaltaisella käyttöjärjestelmällä käyttämällä vain Thompson Shell -yhteensopivuutta tukevia kuoria, muuten se ei ala suoraan järjestelmän kutsusta.

Puhelu qemu-x86_64 on tarkoitettu tarjoamaan lisää siirrettävyyttä ja voit suorittaa käännetyn x86_64-koodin muilla kuin x86-alustoilla, kuten Raspberry Pi -levyt ja ARM-prosessoreilla varustetut Apple-laitteet.

El proyecto voidaan käyttää myös erillisten sovellusten luomiseen jotka toimivat ilman käyttöjärjestelmää (paljas metalli). Tällaisissa sovelluksissa ladattava tiedosto liitetään suoritettavaan tiedostoon ja ohjelma toimii käynnistettävänä käyttöjärjestelmänä.

Projektin kehittämässä C libc -standardikirjastossa on ehdotettu noin 1400 toimintoa konsolisovellusten luomiseksi.

Suorituskyvyn suhteen Kosmopoliittinen toimii yhtä nopeasti kuin glibc ja on etenkin Muslin ja Newlibin edellä, kun taas Cosmopolitan on koodikooltaan pienempi kuin glibc ja vastaa karkeasti Muslia ja Newlibiä.

Usein kutsuttujen toimintojen, kuten memcpy ja strlen, optimoimiseksi käytetään lisäksi tekniikkaa, jossa makrosidontaa käytetään funktion kutsumiseen, jossa kääntäjälle ilmoitetaan koodin suorittamiseen liittyvistä CPU-rekistereistä, mikä säästää resursseja tallentamalla suorittimen tilan tallentamalla vain muutettavissa olevat rekisterit.

Ohjelmien luominen jotka sisältävät useita tiedostoja (linkittää kaikki resurssit yhteen tiedostoon), yleisen suoritettavan tiedoston muodostamista ZIP-tiedostona tuetaan erityisesti muotoiltu (sisältöä voidaan tarkastella "unzip-v" -komennolla, mutta tiedosto on edelleen käytettävissä suoraa käynnistystä varten).

Staattisella linkityksellä ehdotettuun libc: hen ja ajonaikaan saatu tiedosto sopii käytettäväksi missä tahansa Linux-jakelussa, macOS: ssa, Windowsissa, FreeBSD: ssä ja OpenBSD: ssä. Projektikoodi jaetaan ISC-lisenssillä (yksinkertaistettu MIT / BSD-versio).

Vihdoin jos olet kiinnostunut tietämään siitä lisää tästä kirjastosta voit tarkistaa yksityiskohdat sekä dokumentaation Seuraavassa linkissä.


Ole ensimmäinen kommentti

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.