Posix

Ir saderīgs ar Linux POSIX?

Ir saderīgs ar Linux POSIX?

Programmatūru raksta daudzi izstrādātāji ar dažādu izcelsmi. Vispārējie algoritmi ir pieejami ar bezmaksas licenci vai ir zinātniski publicēti, un tie var būt pieejami arī bez maksas mācību vajadzībām. Tā rezultātā tiek ieviestas dažādas ieviešanas un programmatūras versijas, kas atbilst dažādām vajadzībām. Interfeisu un datu formātu standartizācija ir nepieciešama, lai šīs dažādās ieviešanas iespējas būtu gan savstarpēji aizstājamas, gan modulāras.

Īsāk sakot, POSIX [1] dara tieši to, kas attiecas uz UNIX un UNIX līdzīgām sistēmām (detalizētāku vēsturi par šo tēmu skat. Zak H rakstā [4]). Tas nosaka programmatūras apmaiņas saskarnes, izsaukšanas mehānismus un pārsūtītos datus, bet iekšējo ieviešanu atstāj programmatūras izstrādātājam vai uzturētājam. Mērķis ir apvienot visas dažādās UNIX dakšas un UNIX līdzīgās sistēmas tādā veidā, lai dažādas programmatūras ieviešanas iespējas varētu savstarpēji mijiedarboties. POSIX galvenā priekšrocība ir saistoša dokumentācija par šiem komponentiem - saskarnēm, mehānismiem un datiem - pieejama rakstiski.

Operētājsistēma, kas pilnībā atbilst POSIX standartam, tiek klasificēta kā saderīga ar POSIX. Šajā rakstā mēs izskaidrojam, ko nozīmē POSIX, nosakām, vai Linux pieder šai kategorijai, un uzskaitām, kuri Linux komponenti ir jāizslēdz no šīs klasifikācijas.

Ko nozīmē termins POSIX?

POSIX ir portatīvās operētājsistēmas saskarnes saīsinājums. Kā īsumā paskaidrots iepriekš, POSIX ir nosaukums tādu standartu kolekcijai, kas nepieciešami, lai uzturētu saderību starp operētājsistēmām. Kā norādīts [1], “[tas] nosaka lietojumprogrammu saskarni (API), kā arī komandrindas čaulas un lietderības saskarnes programmatūras savietojamībai ar Unix un citu operētājsistēmu variantiem.”POSIX pirmā versija tika publicēta 1988. gadā. Kopš tā laika POSIX ir nepārtraukti paplašinājusi un atjauninājusi Ostinas Kopējo standartu pārskatīšanas grupa (pazīstama arī vienkārši kā Austinas grupa) [7].

Kopš 2021. gada POSIX standartā ir šādas daļas:

  1. Pamatpakalpojumi (Ietver standarta ANSI C) (IEEE standarts 1003.1-1988) - Procesu izveide un vadība, Signāli, Failu un direktoriju darbības, Caurules, C bibliotēka, I / O porta saskarne un vadība, Procesa izraisītāji
  1. Pagarinājumi (Simboliskas saites)
  2. Reāllaika un I / O paplašinājumi (IEEE standarts 1003.1b-1993) - Prioritārā plānošana, reāllaika signāli, pulksteņi un taimeri, semafori, ziņojumu nodošana, koplietojamā atmiņa, asinhronā un sinhronā I / O, atmiņas bloķēšanas saskarne
  3. Vītņu pagarinājumi (IEEE standarts 1003.1c-1995) - pavedienu izveide, vadība un tīrīšana, pavedienu plānošana, pavedienu sinhronizēšana, signālu apstrāde
  4. Vairāk reāllaika paplašinājumu
  5. Drošības paplašinājumi (Piekļuves kontroles saraksti)
  1. Korpuss un komunālie pakalpojumi (IEEE standarts 1003.2-1992) - Komandu tulks, utilītprogrammas

Standarts tiek regulāri pārskatīts, lai atspoguļotu tehniskās izmaiņas un uzlabojumus. Dažreiz var paiet vairāki gadi, līdz tiek publicēta jauna versija un iekļautas izmaiņas. Tas var būt neizdevīgi, taču tas ir saprotams, ņemot vērā standarta darbības jomu.

Pēdējos gados ir pievienoti reāllaika apstrādes paplašinājumi. Pašreizējā versija tika izlaista 2018. gada sākumā [3]. SibylFS [5] autori ir arī publicējuši daudzas POSIX standarta anotācijas, lai noteiktu augstākas pakāpes loģiku un mijiedarbību.

Ko nozīmē atbilstība POSIX?

Termins “saderīgs ar POSIX” nozīmē, ka operētājsistēma atbilst visiem POSIX kritērijiem. Operētājsistēma var palaist UNIX programmas dabiski, vai lietojumprogrammu var pārvietot no UNIX sistēmas uz citu sistēmu. Lietotnes pārvietošana no UNIX uz mērķa operētājsistēmu ir vienkārša vai vismaz vieglāka nekā tad, ja tā neatbalsta POSIX. Lai būtu drošībā, operētājsistēmai ir jābūt veiksmīgi ieguvušai POSIX sertifikātu [2]. Šis solis tiek sasniegts (par maksu), nokārtojot automatizētu sertifikācijas testu. Atbilstošo testu komplektu var atrast šeit [11].

Sākot ar 2021. gadu POSIX sertificēto operētājsistēmu sarakstā ir AIX no IBM, HP-UX no HP, IRIX no SGI, EulerOS [6] no Huawei, Mac OS X no Apple (kopš 10.5 Leopard), Solaris un QNX Neutrino no Oracle, Inspur's K-UX [11] un reālā laika OS INTEGRITY no Green Hills Software [15]. Pašlaik nav skaidrs, vai trīs Solaris pēctecu, OpenSolaris, Illumos un OpenIndiana, jaunākās versijas tiek klasificētas kā pilnībā saderīgas arī ar POSIX. Šīs operētājsistēmas bija saderīgas ar POSIX līdz POSIX 2001.

Citas operētājsistēmas, kas tiek uzskatītas par lielākoties (bet ne pilnībā) saderīgām ar POSIX, ietver Android, BeOS, FreeBSD, Haiku, Linux (skatīt zemāk) un VMWare ESXi. Operētājsistēmai Microsoft Windows Cygwin nodrošina galvenokārt ar POSIX saderīgu izstrādes un izpildlaika vidi.

Ir saderīgs ar Linux POSIX?

Termins “Linux” attiecas uz visu Linux operētājsistēmu neatkarīgi no garšas, piemēram, Debian GNU / Linux, RedHat Linux, Linux Mint, Ubuntu Linux, Fedora un CentOS. Precīzāk sakot, Linux ir tikai kodola nosaukums, kas ir šīs bezmaksas operētājsistēmas pamatkomponents.

Kā Linuss Torvalds aprakstīja grāmatā “Just For Fun” [8], lai izstrādātu Linux kodolu, viņš pieprasīja POSIX standarta kopiju. Tas viņam palīdzēja ieviest tos pašus mehānismus, kas tiek izmantoti komerciālajās UNIX sistēmās. Turklāt tas ļāva viņam saistīt Linux kodolu ar GNU rīkiem, kas galvenokārt izmantoja to pašu pieeju. Taisnības labad jāsaka, ka programmatūra Linux sistēmā tiek veidota no dažādiem avotiem, kas ievēro POSIX standartu, bet dažkārt arī ievieš savas koncepcijas. Tomēr vienlaikus tas parāda arī daudzveidību, kas veido Linux kā operētājsistēmu.

Viens piemērs tam ir veids, kā tiek rakstīti komandrindas argumenti. Argumenti ar divām domuzīmēm (piemēram,.g., “-Help”) ir GNU konvencijas, turpretī POSIX komandas nekad neizmanto divu domuzīmju argumentus, bet tikai vienu (e.g., “-Palīdzība”). Jau pašā sākumā Linux tika veidots, domājot par GNU, un tāpēc komandas satur GNU stilu

argumenti. Lai panāktu POSIX atbilstību, POSIX stila argumenti ir pievienoti soli pa solim. Tomēr galīgo lēmumu pieņem izstrādātājs. No šodienas lielākā daļa komandu pieņem gan īsus, gan garus argumentus vai pat argumentus bez domuzīmēm, piemēram, komandu “atrast”, piemēram. Taisnības labad jāsaka, ka starp vienas sistēmas komandām nav konsekvences, un tā var būt problēma, ja jūs domājat izmantot to pašu komandu citā UNIX balstītā sistēmā, it īpaši, pārslēdzoties starp Linux, OS X un Solaris.

Pagaidām Linux nav POSIX sertificēts augsto izmaksu dēļ, izņemot divus komerciālos Linux izplatītājus Inspur K-UX [12] un Huawei EulerOS [6]. Tā vietā tiek uzskatīts, ka Linux galvenokārt ir saderīgs ar POSIX.

Šis novērtējums ir saistīts ar faktu, ka lielākie Linux izplatījumi POSIX vietā seko Linux Standard Base (LSB) [9]. LSB mērķis ir "samazināt atšķirības starp atsevišķiem Linux izplatījumiem" [14]. Tas attiecas uz programmatūras sistēmas struktūru, ieskaitot Linux kodolā izmantoto failu sistēmas hierarhijas standartu (FHS). LSB pamatā ir POSIX specifikācija, vienotā UNIX specifikācija (SUS) [10] un vairāki citi atvērtie standarti, taču tie tiek paplašināti arī noteiktās jomās.

LSB bāzes Linux izplatījumos ietilpst RedHat Linux, Debian GNU / Linux (2002-2015) un Ubuntu (līdz 2015), lai nosauktu tikai dažus.

Attīstība, domājot par POSIX

Lai saprastu POSIX sīkāk, iesakām iegūt POSIX standarta kopiju un to pilnībā izlasīt. Grāmatu var iegūt no Open Group vietnes. Tam nepieciešama reģistrācijas maksa, taču tā nodrošina pilnīgu piekļuvi šim vērtīgajam resursam. Standarti palīdz, jo tie ļauj izstrādāt programmatūru tā, lai tā rīkotos tāpat kā visās UNIX platformās.

Saites un atsauces

Paldies

Autore vēlas pateikties Akselam Bekertam un Veitam Šīlei par palīdzību un padomu, sagatavojot šo rakstu.

OpenTTD vs Simutrans
Transporta simulācijas izveide var būt jautra, relaksējoša un ārkārtīgi vilinoša. Tāpēc jums jāpārliecinās, ka izmēģināt pēc iespējas vairāk spēļu, la...
OpenTTD apmācība
OpenTTD ir viena no populārākajām biznesa simulācijas spēlēm. Šajā spēlē jums ir jāizveido brīnišķīgs transporta bizness. Tomēr jūs sāksit sākumā apmē...
SuperTuxKart operētājsistēmai Linux
SuperTuxKart ir lielisks nosaukums, kas paredzēts, lai sniegtu jums Mario Kart pieredzi bez maksas jūsu Linux sistēmā. Tas ir diezgan izaicinoši un ja...