Compatible amb Linux POSIX?

Is Linux Posix Compliant



El programari està escrit per nombrosos desenvolupadors amb diversos antecedents. Els algoritmes generals estan disponibles sota una llicència gratuïta o han estat publicats científicament, i també poden estar disponibles de forma gratuïta amb finalitats d’estudi. Això dóna lloc a diferents implementacions i versions de programari que s’adapten a diverses necessitats. És necessària una estandardització d’interfícies i formats de dades per fer que aquestes diferents implementacions siguin intercanviables i modulars.

En resum, POSIX [1] fa exactament això per als sistemes similars a UNIX i UNIX (vegeu l’article [4] de Zak H per obtenir una història més detallada sobre aquest tema). Defineix les interfícies d’intercanvi, els mecanismes de trucada i les dades transferides per al programari, però deixa la implementació interna al desenvolupador o al mantenidor del programari. L’objectiu és unificar totes les diverses forquilles UNIX i sistemes similars a UNIX de manera que diferents implementacions de programari puguin interactuar entre elles. El principal avantatge de POSIX és tenir una documentació vinculant per a aquests components (interfícies, mecanismes i dades) disponible per escrit.







Un sistema operatiu que segueix l'estàndard POSIX en la seva totalitat es classifica com a compatible amb POSIX. En aquest article, expliquem què significa POSIX, determinem si Linux pertany a aquesta categoria i enumerem quins components Linux s’han d’excloure d’aquesta classificació.



Què significa el terme POSIX?

POSIX és una abreviatura de Portable Operating System Interface. Com s’ha explicat breument anteriorment, POSIX és el nom d’una col·lecció d’estàndards necessaris per mantenir la compatibilitat entre sistemes operatius. Tal com s'indica a [1], [it] defineix la interfície de programació d'aplicacions (API), juntament amb intèrprets de línia de comandes i interfícies d'utilitat, per a la compatibilitat del programari amb variants d'Unix i altres sistemes operatius. La primera versió de POSIX es va publicar el 1988. Des de llavors, POSIX ha estat ampliat i actualitzat contínuament pel Austin Common Standards Revision Group (també conegut simplement com a Austin Group) [7].



A partir del 2021, l'estàndard POSIX conté les parts següents:





  1. Serveis bàsics (Incorpora la norma ANSI C) (IEEE std 1003.1-1988) - Creació i control de processos, senyals, operacions de fitxers i directoris, canonades, biblioteca C, interfície i control de ports d'E / S, activadors de processos
  1. Extensions (Enllaços simbòlics)
  2. Extensions d'E / S en temps real (IEEE Std 1003.1b-1993) - Programació prioritària, senyals en temps real, rellotges i temporitzadors, semàfors, transmissió de missatges, memòria compartida, E / S asíncrons i síncrons, interfície de bloqueig de memòria
  3. Extensions de fils (IEEE Std 1003.1c-1995) - Creació, control i neteja de fils, programació de fils, sincronització de fils, manipulació de senyals
  4. Més extensions en temps real
  5. Extensions de seguretat (Llistes de control d'accés)
  1. Shell i utilitats (IEEE Std 1003.2-1992): intèrpret d'ordres, programes d'utilitat

La norma es revisa regularment per reflectir canvis i millores tècniques. De vegades poden passar diversos anys fins que es publiqui una nova versió i s’incorporin els canvis. Això pot ser desavantatjós, però és comprensible tenint en compte l'abast de la norma.

En els darrers anys, s’han afegit extensions al processament en temps real. La versió actual es va publicar a principis del 2018 [3]. Els autors de SibylFS [5] també han publicat moltes anotacions a l'estàndard POSIX per determinar la lògica i les interaccions d'ordre superior.



Què significa ser compatible amb POSIX?

El terme compatible amb POSIX significa que un sistema operatiu compleix tots els criteris POSIX. Un sistema operatiu pot executar programes UNIX de forma nativa o es pot portar una aplicació des del sistema UNIX a un altre sistema. Portar una aplicació des d’UNIX al sistema operatiu de destinació és fàcil, o si més no, més fàcil que si no admet POSIX. Per estar segur, un sistema operatiu hauria d’haver assolit amb èxit la certificació POSIX [2]. Aquest pas s’aconsegueix (a un cost) passant una prova de certificació automatitzada. El conjunt de proves corresponent es pot trobar aquí [11].

A partir del 2021, la llista de sistemes operatius certificats per POSIX conté AIX d’IBM, HP-UX d’HP, IRIX de SGI, EulerOS [6] de Huawei, Mac OS X d’Apple (des de 10.5 Leopard), Solaris i QNX Neutrino de Oracle, K-UX d’Inspur [11] i l’INTEGRITAT del sistema operatiu en temps real de Green Hills Software [15]. Actualment no està clar si les versions més recents dels tres successors de Solaris, OpenSolaris, Illumos i OpenIndiana, també es classifiquen com a plenament compatibles amb POSIX. Aquests sistemes operatius eren compatibles amb POSIX fins al POSIX 2001.

Altres sistemes operatius que es consideren majoritàriament compatibles amb POSIX (però no del tot) inclouen Android, BeOS, FreeBSD, Haiku, Linux (vegeu més avall) i VMWare ESXi. Per a Microsoft Windows, Cygwin proporciona un entorn de desenvolupament i execució compatible amb POSIX.

Compatible amb Linux POSIX?

El terme Linux fa referència a tot el sistema operatiu Linux, independentment del gust, com ara Debian GNU / Linux, RedHat Linux, Linux Mint, Ubuntu Linux, Fedora i CentOS, per exemple. Per ser precisos, Linux és només el nom del nucli que és el component principal d’aquest sistema operatiu gratuït.

Com Linus Torvalds va descriure al llibre Just For Fun [8], per desenvolupar el nucli Linux, va sol·licitar una còpia de l'estàndard POSIX. Això el va ajudar a implementar els mateixos mecanismes que s’utilitzen en sistemes UNIX comercials. A més, això li va permetre enllaçar el nucli Linux amb les eines GNU que seguien principalment el mateix enfocament. Per ser justos, el programari d'un sistema Linux s'ofereix a partir de diverses fonts que respecten l'estàndard POSIX, però que a vegades també implementen els seus propis conceptes. Al mateix temps, però, això també mostra la diversitat que conforma Linux com a sistema operatiu.

Un exemple d'això és la forma en què s'escriuen els arguments de la línia d'ordres. Els arguments amb dos guions (per exemple, –help) són convencions GNU, mentre que les ordres POSIX mai no utilitzen arguments de dos guions, sinó només un sol (per exemple, -help). Des del principi, Linux es va dissenyar pensant en GNU, i és per això que les ordres contenen estil GNU

arguments. Per aconseguir el compliment de POSIX, s’han afegit arguments a l’estil POSIX pas a pas. Tot i això, la decisió final la pren el desenvolupador. A partir d’avui, la majoria d’ordres accepten arguments curts i llargs, o fins i tot arguments sense guions, com ara l’ordre find, per exemple. Per ser justos, no hi ha coherència entre les ordres d’un sistema, i això pot ser un problema quan es pretén utilitzar la mateixa ordre en un sistema diferent basat en UNIX, especialment quan es canvia entre Linux, OS X i Solaris.

De moment, Linux no està certificat per POSIX a causa dels costos elevats, excepte per a les dues distribucions comercials de Linux Inspur K-UX [12] i Huawei EulerOS [6]. En canvi, es veu que Linux compleix la major part de POSIX.

Aquesta avaluació es deu al fet que les principals distribucions de Linux segueixen la Linux Standard Base (LSB) en lloc de POSIX [9]. LSB té com a objectiu minimitzar les diferències entre distribucions Linux individuals [14]. Es refereix a l'estructura del sistema de programari, incloent l'estàndard de jerarquia del sistema de fitxers (FHS) que s'utilitza al nucli Linux. LSB es basa en l'especificació POSIX, l'especificació única UNIX (SUS) [10] i diversos altres estàndards oberts, però també els estén en determinades àrees.

Les distribucions Linux basades en LSB inclouen RedHat Linux, Debian GNU / Linux (2002-2015) i Ubuntu (fins al 2015), per citar-ne alguns.

Desenvolupament pensant en POSIX

Per entendre POSIX amb més detall, es recomana obtenir una còpia de l'estàndard POSIX i llegir-lo completament. Podeu obtenir el llibre des del lloc web Open Group. Això requereix una quota de registre, però us proporciona accés complet a aquest valuós recurs. Els estàndards ajuden ja que us permeten desenvolupar programari de manera que es comporti de la mateixa manera a totes les plataformes UNIX.

Enllaços i referències

Gràcies

L’autor vol agrair a Axel Beckert i Veit Schiele la seva ajuda i consells durant la preparació d’aquest article.