Posix

Linux POSIX-kompatibilis?

Linux POSIX-kompatibilis?

A szoftvert számos, különböző háttérrel rendelkező fejlesztő írja. Az általános algoritmusok ingyenes licenccel állnak rendelkezésre, vagy tudományosan publikáltak, és tanulmányi célokra ingyen is elérhetők lehetnek. Ennek eredményeként különböző megvalósítások és szoftver változatok jönnek létre, amelyek megfelelnek a különböző igényeknek. Az interfészek és az adatformátumok szabványosítására van szükség ahhoz, hogy ezek a különböző megvalósítások felcserélhetőek és modulárisak legyenek.

Röviden: a POSIX [1] pontosan ezt teszi a UNIX és UNIX-szerű rendszerek esetében (a témáról részletesebb előzményeket Zak H cikkében [4] talál). Meghatározza a szoftver cserefelületeit, hívási mechanizmusait és az átadott adatokat, de a belső megvalósítást a szoftver fejlesztőjére vagy fenntartójára bízza. A cél az összes UNIX-villa és UNIX-szerű rendszer egyesítése oly módon, hogy a különböző szoftver-implementációk kölcsönhatásba léphessenek egymással. A POSIX fő előnye, hogy kötelező érvényű dokumentáció áll rendelkezésre ezekhez az összetevőkhöz - interfészekhez, mechanizmusokhoz és adatokhoz - írásos formában.

A POSIX szabványt teljes egészében követõ operációs rendszert POSIX-kompatibilisnek minõsítik. Ebben a cikkben elmagyarázzuk, mit jelent a POSIX, meghatározzuk, hogy a Linux ebbe a kategóriába tartozik-e, és felsoroljuk, mely Linux-összetevőket kell kizárni ebből az osztályozásból.

Mit jelent a POSIX kifejezés?

A POSIX a Portable Operating System Interface rövidítése. Amint azt a fentiekben röviden kifejtettük, a POSIX a szabványgyűjtemény neve, amelyek szükségesek az operációs rendszerek közötti kompatibilitás fenntartásához. Amint az [1] -ben szerepel, „[ez] ​​meghatározza az alkalmazás-programozási felületet (API), valamint a parancssori héjakat és a segédprogram-interfészeket a szoftver kompatibilitás érdekében a Unix és más operációs rendszerek változataival.”A POSIX első verziója 1988-ban jelent meg. Azóta a POSIX-ot folyamatosan bővítette és frissítette az Austin Common Standards Revision Group (más néven egyszerűen The Austin Group) [7].

2021-től a POSIX szabvány a következő részeket tartalmazza:

  1. Alapszolgáltatások (A szabványos ANSI C-t tartalmazza) (IEEE std 1003.1-1988) - Folyamat létrehozása és vezérlése, Jelek, Fájl- és könyvtárműveletek, Csövek, C könyvtár, I / O port interfész és vezérlés, Folyamatindítók
  1. Hosszabbítások (Szimbolikus linkek)
  2. Valós idejű és I / O kiterjesztések (IEEE Std 1003.1b-1993) - Prioritás ütemezés, valós idejű jelek, órák és időzítők, szemaforok, üzenet továbbítás, megosztott memória, aszinkron és szinkron I / O, memóriazáró interfész
  3. Szálhosszabbítások (IEEE Std 1003.1c-1995) - Szálkészítés, -ellenőrzés és -tisztítás, szálütemezés, szálszinkronizálás, jelkezelés
  4. Több valós idejű kiterjesztés
  5. Biztonsági kiterjesztések (Beléptető listák)
  1. Shell és segédprogramok (IEEE Std 1003.2-1992) - Parancsértelmező, Segédprogramok

A szabványt rendszeresen felülvizsgálják, hogy tükrözzék a technikai változásokat és fejlesztéseket. Néha több évbe telhet, mire egy új verzió megjelenik, és a módosítások beépülnek. Ez hátrányos lehet, de a szabvány hatályának ismeretében érthető.

Az elmúlt években kibővítették a valós idejű feldolgozást. A jelenlegi verzió 2018 elején jelent meg [3]. A SibylFS [5] szerzői a POSIX szabványhoz számos kommentárt is közzétettek a magasabb rendű logika és interakciók meghatározása érdekében.

Mit jelent a POSIX-kompatibilitás??

A „POSIX-kompatibilis” kifejezés azt jelenti, hogy az operációs rendszer megfelel az összes POSIX-kritériumnak. Az operációs rendszer natív módon futtathatja a UNIX programokat, vagy az alkalmazás a UNIX rendszerből egy másik rendszerbe portálható. Az alkalmazás UNIX-ból a cél operációs rendszerbe történő hordozása egyszerű vagy legalábbis könnyebb, mintha nem támogatná a POSIX-ot. A biztonság kedvéért egy operációs rendszernek sikeresen el kell érnie a POSIX tanúsítást [2]. Ezt a lépést (költséggel) egy automatizált tanúsítási teszt teljesítésével érjük el. A megfelelő tesztcsomag itt található [11].

2021-től a POSIX tanúsítvánnyal rendelkező operációs rendszerek listája tartalmazza az AIX-t az IBM-től, a HP-UX-t a HP-tól, az IRIX-et az SGI-től, az EulerOS-t [6] a Huawei-től, a Mac OS X-et az Apple-től (10 óta.5 Leopard), a Solaris és a QNX Neutrino az Oracle-től, az Inspur's K-UX [11] és a valós idejű OS INTEGRITY a Green Hills Software-től [15]. Jelenleg nem világos, hogy a három Solaris utód, az OpenSolaris, az Illumos és az OpenIndiana újabb verziói is teljesen POSIX-kompatibilisnek minősülnek-e. Ezek az operációs rendszerek POSIX-kompatibilisek voltak a POSIX 2001-ig.

A legtöbb (de nem teljesen) POSIX-kompatibilis operációs rendszer az Android, a BeOS, a FreeBSD, a Haiku, a Linux (lásd alább) és a VMWare ESXi. A Microsoft Windows számára a Cygwin nagyrészt POSIX-kompatibilis fejlesztési és futási környezetet biztosít.

Linux POSIX-kompatibilis?

A „Linux” kifejezés az egész Linux operációs rendszerre vonatkozik, ízétől függetlenül, például Debian GNU / Linux, RedHat Linux, Linux Mint, Ubuntu Linux, Fedora és CentOS. Pontosabban: a Linux csak annak a rendszermagnak a neve, amely ennek az ingyenes operációs rendszernek a központi eleme.

Amint Linus Torvalds leírta a „Just For Fun” könyvben [8], a Linux kernel fejlesztése érdekében a POSIX szabvány másolatát kérte. Ez segített abban, hogy ugyanazokat a mechanizmusokat vezesse be, mint amelyeket a kereskedelmi UNIX rendszerek használnak. Ez lehetővé tette számára, hogy összekapcsolja a Linux kernelt a GNU eszközökkel, amelyek főleg ugyanazt a megközelítést követték. Hogy igazságos legyek, a Linux rendszer szoftverét számos forrásból hozzák létre, amelyek tiszteletben tartják a POSIX szabványt, de néha saját koncepciókat is megvalósítanak. Ugyanakkor ez megmutatja azt a sokszínűséget is, amely a Linuxot mint operációs rendszert alkotja.

Ennek egyik példája a parancssori argumentumok írásának módja. Két gondolatjelű érvelés (pl.g., „-Help”) a GNU konvenciói, míg a POSIX parancsok soha nem használnak kéttetszõs argumentumokat, hanem csak egyetlen (e.g., "-Segítség"). A Linuxot a kezdetektől fogva a GNU-t szem előtt tartva tervezték, és ezért tartalmazzák a parancsok a GNU-stílust

érvek. A POSIX-megfelelőség elérése érdekében lépésről lépésre POSIX-stílusú argumentumokat adtak hozzá. Ennek ellenére a végső döntést a fejlesztő hozza meg. A mai naptól kezdve a legtöbb parancs rövid és hosszú argumentumokat, sőt kötőjelek nélküli argumentumokat is elfogad, például a „find” parancsot. Hogy igazságos legyek, nincs következetesség az egy rendszer parancsai között, és ez problémát jelenthet, ha ugyanazt a parancsot egy másik UNIX alapú rendszeren kívánja használni, különösen akkor, ha váltani kell a Linux, az OS X és a Solaris között.

Egyelőre a Linux a magas költségek miatt nincs POSIX-tanúsítvánnyal, kivéve a két kereskedelmi Linux-disztribúciót: Inspur K-UX [12] és Huawei EulerOS [6]. Ehelyett a Linuxot leginkább POSIX-kompatibilisnek tekintik.

Ez az értékelés annak a ténynek köszönhető, hogy a főbb Linux disztribúciók a Linux Standard Base-t (LSB) követik a POSIX helyett [9]. Az LSB célja „az egyes Linux disztribúciók közötti különbségek minimalizálása” [14]. Ez a szoftverrendszer struktúrájára vonatkozik, beleértve a Linux kernelben használt Fájlrendszer Hierarchia Standardot (FHS). Az LSB a POSIX specifikáción, az egységes UNIX specifikáción (SUS) [10] és számos más nyílt szabványon alapul, de bizonyos területeken kiterjeszti azokat.

Az LSB-alapú Linux disztribúciók között szerepel a RedHat Linux, a Debian GNU / Linux (2002-2015) és az Ubuntu (2015-ig), hogy csak néhányat említsünk.

Fejlesztés a POSIX szem előtt tartásával

A POSIX részletesebb megértése érdekében javasoljuk, hogy szerezze be a POSIX szabvány egy példányát, és olvassa el teljes egészében. A könyvet az Open Group webhelyéről szerezheti be. Ez regisztrációs díjat igényel, de teljes hozzáférést biztosít ehhez az értékes forráshoz. A szabványok segítenek, mivel lehetővé teszik a szoftverek olyan fejlesztését, hogy azok ugyanúgy viselkedjenek az összes UNIX platformon.

Linkek és hivatkozások

Köszönöm

A szerző köszönetet mond Axel Beckertnek és Veit Schielének a cikk elkészítése során nyújtott segítségükért és tanácsukért.

A legjobb játékkonzol emulátorok Linuxhoz
Ez a cikk felsorolja a Linux számára elérhető népszerű játékkonzol-emulációs szoftvereket. Az emuláció egy szoftver-kompatibilitási réteg, amely játék...
A legjobb Linux-disztribútorok játékhoz 2021-ben
A Linux operációs rendszer hosszú utat tett meg eredeti, egyszerű, szerver alapú kinézetétől. Ez az operációs rendszer rendkívül javult az elmúlt évek...
Hogyan lehet rögzíteni és streamelni a játékmenetét Linuxon
Korábban a játékokat csak hobbinak tekintették, de az idő múlásával a játékipar hatalmas növekedést ért el a technológia és a játékosok száma szempont...