Posix

Je skladen s sistemom Linux POSIX?

Je skladen s sistemom Linux POSIX?

Programsko opremo pišejo številni razvijalci z različnim ozadjem. Splošni algoritmi so na voljo z brezplačno licenco ali so bili znanstveno objavljeni, morda pa so na voljo tudi brezplačno za namene študija. Rezultat tega so različne izvedbe in različice programske opreme, ki ustrezajo različnim potrebam. Da bi bile te različne izvedbe tako zamenljive kot modularne, je potrebna standardizacija vmesnikov in podatkovnih formatov.

Skratka, POSIX [1] počne natanko to za sisteme, podobne UNIX in UNIX (za podrobnejšo zgodovino te teme glej članek Zaka H [4]). Določa vmesnike za izmenjavo, klicne mehanizme in prenesene podatke za programsko opremo, notranjo izvedbo pa prepušča razvijalcu ali vzdrževalcu programske opreme. Cilj je združiti vse različne UNIX vilice in UNIX podobne sisteme tako, da lahko različne izvedbe programske opreme sodelujejo med seboj. Glavna prednost POSIX-a je, da ima zavezujočo dokumentacijo za te komponente - vmesnike, mehanizme in podatke - na voljo v pisni obliki.

Operacijski sistem, ki v celoti sledi standardu POSIX, je razvrščen kot skladen s sistemom POSIX. V tem članku razložimo, kaj pomeni POSIX, ugotovimo, ali Linux spada v to kategorijo, in navedemo, katere komponente Linuxa je treba izključiti iz te klasifikacije.

Kaj pomeni izraz POSIX?

POSIX je okrajšava za prenosni vmesnik operacijskega sistema. Kot je na kratko razloženo zgoraj, je POSIX ime za zbirko standardov, ki so potrebni za vzdrževanje združljivosti med operacijskimi sistemi. Kot je navedeno v [1], »[it] definira vmesnik aplikacijskega programiranja (API), skupaj z lupinami ukazne vrstice in vmesniki pripomočkov, za združljivost programske opreme z različicami Unixa in drugimi operacijskimi sistemi.”Prva različica POSIX-a je bila objavljena leta 1988. Od takrat je POSIX stalno dopolnjeval in posodabljal Austin Common Standards Revision Group (znan tudi preprosto kot The Austin Group) [7].

Od leta 2021 standard POSIX vsebuje naslednje dele:

  1. Osnovne storitve (Vključuje standard ANSI C) (IEEE std 1003.1-1988) - Ustvarjanje in nadzor procesov, signali, operacije datotek in imenikov, cevi, knjižnica C, vmesnik in nadzor vhodno / izhodnih vrat, sprožilci procesov
  1. Razširitve (Simbolične povezave)
  2. Razširitve v realnem času in V / I (IEEE Std 1003.1b-1993) - Prednostno razporejanje, signali v realnem času, ure in časovniki, semaforji, prenašanje sporočil, skupni pomnilnik, asinhroni in sinhroni V / I, vmesnik za zaklepanje pomnilnika
  3. Podaljški niti (IEEE Std 1003.1c-1995) - Ustvarjanje niti, nadzor in čiščenje niti, razporejanje niti, sinhronizacija niti, obdelava signalov
  4. Več razširitev v realnem času
  5. Varnostne razširitve (Seznami za nadzor dostopa)
  1. Shell in pripomočki (IEEE Std 1003.2-1992) - Tolmač ukazov, pomožni programi

Standard se redno pregleduje, da odraža tehnične spremembe in izboljšave. Včasih lahko traja več let, preden je nova različica objavljena in spremembe vključene. To je lahko neugodno, vendar je glede na obseg standarda razumljivo.

V zadnjih letih so bile dodane razširitve obdelave v realnem času. Trenutna različica je bila izdana v začetku leta 2018 [3]. Avtorji SibylFS [5] so objavili tudi številne pripise standardu POSIX za določitev logike in interakcij višjega reda.

Kaj pomeni biti skladen s POSIX-om?

Izraz »skladen s POSIX« pomeni, da operacijski sistem izpolnjuje vsa merila POSIX. Operacijski sistem lahko zažene programe UNIX izvirno ali pa aplikacijo prenese iz sistema UNIX v drug sistem. Prenos aplikacije iz sistema UNIX v ciljni operacijski sistem je enostaven ali vsaj enostavnejši, kot če ne podpira POSIX-a. Da bi bil operacijski sistem na varnem, bi moral uspešno pridobiti certifikat POSIX [2]. Ta korak se doseže (po ceni) z opravljenim avtomatiziranim certifikacijskim testom. Ustrezni testni paket najdete tukaj [11].

Od leta 2021 seznam operacijskih sistemov s certifikatom POSIX vključuje AIX IBM, HP-UX HP, IRIX SGI, EulerOS [6] Huawei, Mac OS X Apple (od 10. leta.5 Leopard), Solaris in QNX Neutrino iz Oracle, Inspurjev K-UX [11] in OS INTEGRITET OS v realnem času iz programske opreme Green Hills [15]. Trenutno ni jasno, ali so novejše različice treh naslednikov Solarisa, OpenSolaris, Illumos in OpenIndiana, razvrščene kot popolnoma skladne s sistemom POSIX. Ti operacijski sistemi so bili do POSIX 2001 skladni s sistemom POSIX.

Drugi operacijski sistemi, ki so večinoma (vendar ne v celoti) skladni s POSIX-om, vključujejo Android, BeOS, FreeBSD, Haiku, Linux (glej spodaj) in VMWare ESXi. Za operacijski sistem Microsoft Windows Cygwin ponuja razvojno in izvajalno okolje, ki je v veliki meri skladno s POSIX-om.

Je skladen s sistemom Linux POSIX?

Izraz "Linux" se nanaša na celoten operacijski sistem Linux, ne glede na okus, na primer Debian GNU / Linux, RedHat Linux, Linux Mint, Ubuntu Linux, Fedora in CentOS, na primer. Natančneje, Linux je samo ime jedra, ki je jedro komponente tega brezplačnega operacijskega sistema.

Kot je Linus Torvalds opisal v knjigi "Just For Fun" [8], je za razvoj jedra Linux zahteval kopijo standarda POSIX. To mu je pomagalo uvesti iste mehanizme, ki se uporabljajo v komercialnih sistemih UNIX. Poleg tega mu je to omogočilo, da je jedro Linuxa povezal z orodji GNU, ki so večinoma sledila istemu pristopu. Po pravici povedano, programska oprema v sistemu Linux prispeva iz različnih virov, ki spoštujejo standard POSIX, vendar včasih izvajajo tudi lastne koncepte. Vendar to hkrati kaže tudi raznolikost, ki sestavlja Linux kot operacijski sistem.

En primer tega je način zapisovanja argumentov ukazne vrstice. Argumenti z dvema pomišljajema (npr.g., “-Help”) so konvencije GNU, medtem ko ukazi POSIX nikoli ne uporabljajo argumentov z dvema pomišljajema, temveč samo en (e.g., "-Pomoč"). Že od samega začetka je bil Linux zasnovan z mislijo na GNU, zato ukazi vsebujejo slog GNU

argumenti. Da bi dosegli skladnost s POSIX, so bili postopoma dodani argumenti v slogu POSIX. Kljub temu končno odločitev sprejme razvijalec. Od danes večina ukazov sprejema tako kratke kot dolge argumente ali celo argumente brez kakršnih koli pomišljajev, na primer ukaz »poišči«, na primer. Po pravici povedano, med ukazi v enem sistemu ni doslednosti, kar lahko predstavlja težavo, če nameravate uporabiti isti ukaz v drugem sistemu, ki temelji na sistemu UNIX, zlasti pri preklopu med Linuxom, OS X in Solarisom.

Za zdaj Linux zaradi visokih stroškov nima certifikata POSIX, razen dveh komercialnih distribucij Linuxa Inspur K-UX [12] in Huawei EulerOS [6]. Namesto tega se Linux večinoma ujema s POSIX-om.

Ta ocena je posledica dejstva, da glavne distribucije Linuxa sledijo Linux Standard Base (LSB) namesto POSIX [9]. Cilj LSB je „zmanjšati razlike med posameznimi distribucijami Linuxa“ [14]. To se nanaša na strukturo programske opreme, vključno s standardom hierarhije datotečnega sistema (FHS), ki se uporablja v jedru Linuxa. LSB temelji na specifikacijah POSIX, enotni specifikaciji UNIX (SUS) [10] in številnih drugih odprtih standardih, vendar jih na nekaterih področjih tudi razširja.

Distribucije Linuxa, ki temeljijo na LSB, vključujejo RedHat Linux, Debian GNU / Linux (2002–2015) in Ubuntu (do leta 2015).

Razvijanje z mislijo na POSIX

Če želite podrobneje razumeti POSIX, priporočamo, da pridobite kopijo standarda POSIX in ga preberete v celoti. Knjigo lahko dobite na spletnem mestu Open Group. To zahteva registracijsko pristojbino, vendar vam omogoča popoln dostop do tega dragocenega vira. Standardi pomagajo, saj vam omogočajo, da razvijete programsko opremo tako, da se obnaša enako na vseh platformah UNIX.

Povezave in reference

Hvala vam

Avtor se zahvaljuje Axelu Beckertu in Veitu Schieleju za pomoč in nasvete pri pripravi tega članka.

Kako obrniti smer drsenja miške in sledilne ploščice v sistemu Windows 10
Miška in Sledilna ploščicaRačunalništvo ni samo enostavno, ampak bolj učinkovito in manj zamudno. Življenja brez teh naprav si ne moremo predstavljati...
Kako spremeniti miškin kazalec in velikost, barvo in shemo kazalca v sistemu Windows 10
Kazalec miške in kazalec v operacijskem sistemu Windows 10 sta zelo pomembna vidika operacijskega sistema. To lahko rečemo tudi za druge operacijske s...
Brezplačni in odprtokodni igralni mehanizmi za razvoj iger Linux
Ta članek bo zajemal seznam brezplačnih in odprtokodnih igralnih mehanizmov, ki jih je mogoče uporabiti za razvoj 2D in 3D iger v Linuxu. Obstaja veli...