Posix

Je Linux POSIX kompatibilní?

Je Linux POSIX kompatibilní?

Software je napsán mnoha vývojáři s různým zázemím. Obecné algoritmy jsou k dispozici na základě bezplatné licence nebo byly vědecky publikovány a mohou být také zdarma k dispozici pro účely studia. Výsledkem jsou různé implementace a verze softwaru, které vyhovují nejrůznějším potřebám. Standardizace rozhraní a datových formátů je nutná, aby tyto různé implementace byly zaměnitelné i modulární.

Stručně řečeno, POSIX [1] to dělá přesně pro UNIX a systémy podobné UNIXu (podrobnější historii tohoto tématu najdete v článku Zak H [4]). Definuje rozhraní pro výměnu, volací mechanismy a přenesená data pro software, ale ponechává interní implementaci na vývojáře nebo správce softwaru. Cílem je sjednotit všechny různé UNIX vidlice a systémy podobné UNIX takovým způsobem, aby různé softwarové implementace mohly vzájemně interagovat. Hlavní výhodou POSIXu je mít k dispozici závaznou dokumentaci pro tyto komponenty - rozhraní, mechanismy a data - v písemné formě.

Operační systém, který plně odpovídá standardu POSIX, je klasifikován jako kompatibilní s POSIX. V tomto článku vysvětlíme, co POSIX znamená, určíme, zda Linux patří do této kategorie, a uvedeme, které komponenty Linuxu je nutné z této klasifikace vyloučit.

Co znamená pojem POSIX?

POSIX je zkratka pro Portable Operating System Interface. Jak je stručně vysvětleno výše, POSIX je název kolekce standardů, které jsou vyžadovány pro zachování kompatibility mezi operačními systémy. Jak je uvedeno v [1], „[it] definuje aplikační programovací rozhraní (API), spolu s shelly příkazového řádku a obslužnými rozhraními, pro softwarovou kompatibilitu s variantami Unixu a dalších operačních systémů.„První verze POSIX byla zveřejněna v roce 1988. Od té doby POSIX neustále rozšiřuje a aktualizuje Austin Common Standards Revision Group (také známý jednoduše jako The Austin Group) [7].

Od roku 2021 obsahuje standard POSIX následující části:

  1. Základní služby (Zahrnuje standardní ANSI C) (IEEE std 1003.1-1988) - Vytváření a řízení procesů, signály, operace se soubory a adresáři, potrubí, knihovna C, rozhraní a řízení I / O portů, spouštěče procesů
  1. Rozšíření (Symbolické odkazy)
  2. Rozšíření v reálném čase a I / O (IEEE Std 1003.1b-1993) - Prioritní plánování, signály v reálném čase, hodiny a časovače, semafory, předávání zpráv, sdílená paměť, asynchronní a synchronní I / O, rozhraní pro uzamčení paměti
  3. Rozšíření vláken (IEEE Std 1003.1c-1995) - Vytváření, řízení a čištění vláken, plánování vláken, synchronizace vláken, zpracování signálů
  4. Více rozšíření v reálném čase
  5. Rozšíření zabezpečení (Seznamy řízení přístupu)
  1. Shell a utility (IEEE Std 1003.2-1992) - příkazový tlumočník, obslužné programy

Standard je pravidelně přezkoumáván, aby odrážel technické změny a vylepšení. Někdy může trvat několik let, než bude vydána nová verze a změny zapracovány. To může být nevýhodné, ale vzhledem k rozsahu normy je to pochopitelné.

V posledních letech byla přidána rozšíření zpracování v reálném čase. Aktuální verze byla vydána počátkem roku 2018 [3]. Autoři SibylFS [5] také publikovali mnoho poznámek ke standardu POSIX, aby určili logiku a interakce vyššího řádu.

Co znamená POSIX-Compliant??

Výraz „kompatibilní s POSIX“ znamená, že operační systém splňuje všechna kritéria POSIX. Operační systém může nativně spouštět programy UNIX nebo lze aplikaci přenést ze systému UNIX do jiného systému. Přenos aplikace z UNIXu do cílového operačního systému je snadný nebo alespoň jednodušší, než když nepodporuje POSIX. Pro jistotu by operační systém měl úspěšně dosáhnout certifikace POSIX [2]. Tohoto kroku je dosaženo (za cenu) absolvováním automatizovaného certifikačního testu. Odpovídající testovací sadu naleznete zde [11].

Od roku 2021 obsahuje seznam operačních systémů certifikovaných POSIX AIX od IBM, HP-UX od HP, IRIX od SGI, EulerOS [6] od Huawei, Mac OS X od Apple (od 10.5 Leopard), Solaris a QNX Neutrino od Oracle, Inspur K-UX [11] a OS INTEGRITY v reálném čase od Green Hills Software [15]. V současné době není jasné, zda jsou novější verze tří nástupců Solarisu, OpenSolaris, Illumos a OpenIndiana, klasifikovány také jako plně kompatibilní s POSIX. Tyto operační systémy byly kompatibilní s POSIXem až do POSIX 2001.

Mezi další operační systémy, které jsou považovány za převážně (ale ne úplně) POSIX kompatibilní, patří Android, BeOS, FreeBSD, Haiku, Linux (viz níže) a VMWare ESXi. Pro Microsoft Windows poskytuje Cygwin vývojové a běhové prostředí, které je z velké části kompatibilní s POSIX.

Je Linux POSIX kompatibilní?

Pojem „Linux“ označuje celý operační systém Linux bez ohledu na jeho chuť, například Debian GNU / Linux, RedHat Linux, Linux Mint, Ubuntu Linux, Fedora a CentOS. Abych byl přesný, Linux je jen název jádra, které je základní součástí tohoto bezplatného operačního systému.

Jak popsal Linus Torvalds v knize „Just For Fun“ [8], pro vývoj linuxového jádra si vyžádal kopii standardu POSIX. To mu pomohlo implementovat stejné mechanismy, jaké se používají v komerčních systémech UNIX. To mu navíc umožnilo propojit jádro Linuxu s nástroji GNU, které převážně používaly stejný přístup. Abychom byli spravedliví, software v systému Linux je poskytován z různých zdrojů, které respektují standard POSIX, ale které také někdy implementují své vlastní koncepty. Současně to však také ukazuje rozmanitost, která tvoří Linux jako operační systém.

Jedním z příkladů je způsob, jakým jsou zapisovány argumenty příkazového řádku. Argumenty se dvěma pomlčkami (např.G., „-Help“) jsou konvence GNU, zatímco příkazy POSIX nikdy nepoužívají argumenty se dvěma pomlčkami, ale místo toho pouze jeden (e.G., "-Pomoc"). Od samého začátku byl Linux navržen s ohledem na GNU, a proto příkazy obsahují GNU styl

argumenty. K dosažení shody s POSIXem byly krok za krokem přidány argumenty ve stylu POSIX. Konečné rozhodnutí přesto učiní vývojář. Od dnešního dne většina příkazů přijímá krátké i dlouhé argumenty nebo dokonce argumenty bez pomlček, například například příkaz „find“. Abychom byli spravedliví, neexistuje konzistence mezi příkazy v jednom systému, což může být problém, pokud máte v úmyslu použít stejný příkaz v jiném systému založeném na systému UNIX, zejména při přepínání mezi systémy Linux, OS X a Solaris.

Linux prozatím není certifikován POSIX kvůli vysokým nákladům, s výjimkou dvou komerčních distribucí Linuxu Inspur K-UX [12] a Huawei EulerOS [6]. Místo toho je Linux považován za většinou kompatibilní s POSIX.

Toto hodnocení je způsobeno skutečností, že hlavní distribuce Linuxu místo POSIXu používají Linux Standard Base (LSB) [9]. LSB si klade za cíl „minimalizovat rozdíly mezi jednotlivými distribucemi Linuxu“ [14]. To se týká struktury softwarového systému, včetně standardu hierarchie souborů (FHS) použitého v linuxovém jádře. LSB je založen na specifikaci POSIX, Single UNIX Specification (SUS) [10] a několika dalších otevřených standardech, ale také je rozšiřuje v určitých oblastech.

Mezi distribuce Linuxu založené na LSB patří RedHat Linux, Debian GNU / Linux (2002-2015) a Ubuntu (do roku 2015).

Vývoj s ohledem na POSIX

Abychom POSIXu porozuměli podrobněji, doporučujeme získat kopii standardu POSIX a přečíst si ji v plném rozsahu. Knihu můžete získat na webu Open Group. To vyžaduje registrační poplatek, ale poskytuje vám plný přístup k tomuto cennému zdroji. Standardy pomáhají, protože vám umožňují vyvíjet software tak, aby se choval stejným způsobem na všech platformách UNIX.

Odkazy a reference

Děkuju

Autor by chtěl poděkovat Axelovi Beckertovi a Veitovi Schielemu za pomoc a radu při přípravě tohoto článku.

Hry Jak nainstalovat a hrát Doom na Linuxu
Jak nainstalovat a hrát Doom na Linuxu
Úvod do Doom Série Doom vznikla v 90. letech po vydání původního Doomu. Byl to okamžitý hit a od té doby herní série získala řadu ocenění a původní Do...
Hry Vulkan pro uživatele Linuxu
Vulkan pro uživatele Linuxu
S každou novou generací grafických karet vidíme, že vývojáři her posouvají hranice grafické věrnosti a přibližují se k fotorealismu. Ale navzdory vešk...
Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvoření vlastní simulace dopravy může být zábavné, uvolňující a mimořádně lákavé. Proto se musíte ujistit, že vyzkoušíte co nejvíce her, abyste našl...