Posix

Kas Linux POSIX-ühilduv?

Kas Linux POSIX-ühilduv?

Tarkvara on kirjutanud arvukalt erineva taustaga arendajat. Üldised algoritmid on saadaval tasuta litsentsi alusel või on teaduslikult avaldatud ning õppimise eesmärgil võivad need olla saadaval ka tasuta. Selle tulemuseks on erinevad rakendused ja tarkvaraversioonid, mis vastavad erinevatele vajadustele. Liideste ja andmevormingute standardiseerimine on vajalik, et muuta need erinevad rakendused nii vahetatavaks kui ka modulaarseks.

Lühidalt öeldes teeb POSIX [1] täpselt sama, mis UNIX-i ja UNIX-i sarnaste süsteemide puhul (selle teema üksikasjalikuma ajaloo kohta vt Zak H artiklit [4]). See määratleb tarkvara liidesed, helistamismehhanismid ja edastatud andmed, kuid jätab sisemise juurutamise tarkvara arendajale või hooldajale. Eesmärk on ühendada kõik erinevad UNIX-i kahvlid ja UNIX-tüüpi süsteemid nii, et erinevad tarkvara juurutused saaksid üksteisega suhelda. POSIXi peamine eelis on see, et nende komponentide - liideste, mehhanismide ja andmete jaoks - on kirjalikult kättesaadav siduv dokumentatsioon.

Operatsioonisüsteem, mis järgib kogu POSIX-standardit, klassifitseeritakse POSIX-iga ühilduvaks. Selles artiklis selgitame, mida POSIX tähistab, määrame kindlaks, kas Linux kuulub sellesse kategooriasse, ja loetleme, millised Linuxi komponendid tuleb sellest klassifikatsioonist välja jätta.

Mida tähendab termin POSIX?

POSIX on kaasaskantava operatsioonisüsteemi liidese lühend. Nagu eespool lühidalt selgitatud, on POSIX standardite kogu, mis on vajalik operatsioonisüsteemide ühilduvuse säilitamiseks. Nagu öeldud jaotises [1], „[see] määratleb rakenduse programmeerimisliidese (API) koos käsurea kestade ja utiliidiliidenditega tarkvara ühilduvuse jaoks Unixi ja teiste opsüsteemide variantidega.”POSIXi esimene versioon ilmus 1988. aastal. Sellest ajast alates on Austini ühiste standardite revisjonirühm (tuntud ka lihtsalt kui Austini rühm) POSIXi pidevalt laiendanud ja ajakohastanud [7].

Alates 2021. aastast sisaldab POSIX-standard järgmisi osi:

  1. Põhiteenused (Sisaldab standardit ANSI C) (IEEE standard 1003.1–1988) - protsesside loomine ja juhtimine, signaalid, faili- ja kataloogitoimingud, torud, C-teek, I / O-liidese liides ja juhtimine, protsesside käivitajad
  1. Laiendused (Sümboolsed lingid)
  2. Reaalajas ja I / O laiendused (IEEE standard 1003.1b-1993) - Prioriteetne ajastamine, reaalajasignaalid, kellad ja taimerid, semafoorid, sõnumite edastamine, jagatud mälu, asünkroonne ja sünkroonne I / O, mälu lukustava liides
  3. Niidipikendused (IEEE standard 1003.1c-1995) - lõime loomine, juhtimine ja puhastamine, lõime ajastamine, lõime sünkroniseerimine, signaali käitlemine
  4. Rohkem reaalajas laiendusi
  5. Turvalaiendid (Juurdepääsukontrolli loendid)
  1. Kest ja kommunaalteenused (IEEE standard 1003.2-1992) - käsutõlk, utiliidiprogrammid

Standard vaadatakse korrapäraselt üle, et kajastada tehnilisi muudatusi ja täiustusi. Mõnikord võib uue versiooni avaldamine ja muudatuste lisamine võtta mitu aastat. See võib olla ebasoodne, kuid standardi reguleerimisala arvestades on see mõistetav.

Viimastel aastatel on lisatud reaalajas töötlemise laiendusi. Praegune versioon ilmus 2018. aasta alguses [3]. SibylFS [5] autorid on avaldanud ka palju märkusi POSIX standardile, et määrata kõrgema järgu loogikat ja interaktsioone.

Mida tähendab POSIX-iga ühilduvus?

Mõiste „POSIX-ühilduv” tähendab, et opsüsteem vastab kõigile POSIX-i kriteeriumidele. Operatsioonisüsteem võib UNIX-i programme käivitada loomupäraselt või rakenduse saab UNIX-süsteemist teise süsteemi teisaldada. Rakenduse UNIX-ist sihitud operatsioonisüsteemi teisaldamine on lihtne või vähemalt lihtsam kui siis, kui see ei toeta POSIX-i. Turvalisuse tagamiseks peaks operatsioonisüsteem olema edukalt saavutanud POSIX-i sertifikaadi [2]. See samm saavutatakse (omahinnaga) automatiseeritud sertifitseerimistesti läbimisega. Vastava testikomplekti leiate siit [11].

Alates 2021. aastast sisaldab POSIX-i sertifitseeritud operatsioonisüsteemide loend AIX-i IBM-ilt, HP-UX-i HP-lt, IRIX-i SGI-st, EulerOS-i [6] Huawei'lt, Mac OS X-i Apple'ilt (alates 10.5 Leopard), Solaris ja QNX Neutrino Oracle'ilt, Inspuri K-UX [11] ja reaalajas OS INTEGRITY Green Hills'i tarkvarast [15]. Praegu on ebaselge, kas kolme Solarise järeltulija, OpenSolarise, Illumosi ja OpenIndiana uuemad versioonid on klassifitseeritud ka POSIX-iga täielikult ühilduvateks. Need operatsioonisüsteemid olid POSIX-iga ühilduvad kuni POSIX 2001-ni.

Muud operatsioonisüsteemid, mida peetakse enamasti (kuid mitte täielikult) POSIX-iga ühilduvaks, on Android, BeOS, FreeBSD, Haiku, Linux (vt allpool) ja VMWare ESXi. Microsoft Windowsi jaoks pakub Cygwin suures osas POSIX-iga ühilduvat arendus- ja käituskeskkonda.

Kas Linux POSIX-ühilduv?

Mõiste „Linux” viitab kogu Linuxi operatsioonisüsteemile, olenemata maitsest, näiteks Debiani GNU / Linux, RedHat Linux, Linux Mint, Ubuntu Linux, Fedora ja CentOS. Täpsemalt öeldes on Linux lihtsalt kerneli nimi, mis on selle tasuta opsüsteemi põhikomponent.

Nagu Linus Torvalds kirjeldas raamatus "Just For Fun" [8], palus ta Linuxi kerneli arendamiseks koopiat POSIX-standardist. See aitas tal rakendada samu mehhanisme, mida kasutatakse kaubanduslikes UNIX-süsteemides. Veelgi enam, see võimaldas tal siduda Linuxi tuuma GNU tööriistadega, mis järgisid peamiselt sama lähenemist. Õigluse huvides tuleb öelda, et Linuxi süsteemi tarkvara lisatakse erinevatest allikatest, mis vastavad POSIX-standardile, kuid mis mõnikord rakendavad ka oma kontseptsioone. Samal ajal näitab see aga ka mitmekesisust, millest koosneb Linux kui operatsioonisüsteem.

Selle üheks näiteks on käsurea argumentide kirjutamise viis. Kahe kriipsuga argumendid (nt.g., "-Help") on GNU kokkulepped, samas kui POSIX-i käsud ei kasuta kunagi kahe kriipsuga argumente, vaid ainult ühte (e.g., "-Abi"). Kohe algusest peale kujundati Linux GNU-d silmas pidades ja seetõttu sisaldavad käsud GNU-stiili

argumendid. POSIX-i vastavuse saavutamiseks on samm-sammult lisatud POSIX-stiilis argumendid. Sellegipoolest teeb lõpliku otsuse arendaja. Alates tänasest aktsepteerib enamik käske nii lühikesi kui ka pikki argumente või isegi kriipsudeta argumente, näiteks käsk „find”. Aususe huvides pole ühes süsteemis käskude vahel järjepidevust ja see võib olla probleem, kui kavatsete sama käsku kasutada teises UNIX-põhises süsteemis, eriti Linuxi, OS X-i ja Solarise vahel vahetades.

Praegu ei ole Linux kõrgete kulude tõttu POSIX-sertifikaadiga, välja arvatud kaks kommertslikku Linuxi distributsiooni Inspur K-UX [12] ja Huawei EulerOS [6]. Selle asemel peetakse Linuxit enamasti POSIX-iga ühilduvaks.

See hinnang tuleneb asjaolust, et suuremad Linuxi jaotused järgivad POSIXi asemel Linuxi standardbaasi (LSB) [9]. LSB eesmärk on "vähendada erinevusi Linuxi üksikute jaotuste vahel" [14]. See viitab tarkvarasüsteemi struktuurile, sealhulgas Linuxi kernelis kasutatavale failisüsteemi hierarhia standardile (FHS). LSB põhineb POSIX-spetsifikatsioonil, ühtsel UNIX-spetsifikatsioonil (SUS) [10] ja paljudel teistel avatud standarditel, kuid laiendab neid ka teatud piirkondades.

LSB-põhised Linuxi distributsioonid hõlmavad RedHat Linuxi, Debiani GNU / Linuxi (2002-2015) ja Ubuntu (kuni 2015), kui nimetada vaid mõnda.

Arendamine POSIXi silmas pidades

POSIXi üksikasjalikumaks mõistmiseks soovitame hankida POSIXi standardi koopia ja lugeda see täielikult. Raamatu saate Open Groupi veebisaidilt. See nõuab registreerimistasu, kuid annab teile täieliku juurdepääsu sellele väärtuslikule ressursile. Standardid aitavad, kuna need võimaldavad teil tarkvara arendada nii, et see käituks kõigil UNIX-i platvormidel ühtemoodi.

Lingid ja viited

Aitäh

Autor tänab Axel Beckertit ja Veit Schielet abi ja nõuannete eest selle artikli ettevalmistamisel.

Viis parimat ergonoomilist arvutihiiretoodet Linuxile
Kas pikaajaline arvuti kasutamine põhjustab valu randmes või sõrmedes?? Kas teil on liigeste jäikus ja peate pidevalt käsi suruma? Kas tunnete põletav...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
X-Mouse Button Control abil saate hiire nupud erinevates tarkvarades erinevalt ümber teha
Võib-olla vajate tööriista, mis võiks muuta teie hiire juhtimissüsteemi iga kasutatava rakendusega. Sel juhul võite proovida rakendust nimega X hiiren...