POSIX
Interfața de sistem de operare portabilă Portable Operating System Interface (POSIX) este o familie de standarde specificate de Societatea de calculatoare IEEE pentru menținerea compatibilității dintre sisteme de operare.[1] POSIX sunt standarde deschise, interfață de programare a aplicațiilor (API), împreună cu interfața liniei de comandă și interfețe utilite, pentru compatibilitatea program cu variante de Unix și alte sisteme de operare.[2][3]
Statut actual | Publicat |
---|---|
An început | 1988 |
Standarde conexe | ISO/IEC 9945 |
Domeniu | Application programming interfaces |
Abreviere | POSIX |
Site web | get.posixcertified.ieee.org |
Nume
modificareStandardele au apărut dintr-un project care a început aproximativ în 1985. Richard Stallman a sugerat numele POSIX către IEEE înlocul fostului IEEE-IX. Primele patru litere formează acronimul pentru interfața sistemelor de operare portabile, iar X exprimă UNIX. IEEE l-a găsit pronunțabil și memorabil mult mai ușor, și de asta și l-a adoptat.[2][4]
Organizare
modificareStandardul POSIX este alcătuit din patru secțiuni principale:
- Definiții de bază: listă de definiții și convenții de bază utilizate în caietul de sarcini și o listă de fișiere cu antet C care trebuie furnizate de un sistem compatibil standard.
- Shell și utilități: descriere a utilităților și a shell-ului, standarde pentru expresii regulate.
- Interfețe de sistem: listă de utilitare și interpreți de linie de comandă.
- Argumente: explicație a principiilor utilizate în standard.
Alte utilite precum awk, vi sau echo fac, de asemenea, parte din standardul POSIX. Printre altele, funcțiile C oferă intrare și ieșire (pentru fișiere, terminale și servicii de rețea) și stabilesc controlul asupra proceselor, precum și administrarea utilizatorilor și a grupului.
Versiuni
modificare- POSIX.1: IEEE Std 1003.1-1988
- POSIX.1b: IEEE Std 1003.1b-1993
- POSIX.1c: IEEE Std 1003.1c-1995
- POSIX.2: IEEE Std 1003.2-1992
- POSIX.1-2001: IEEE Std 1003.1-2001
- POSIX.1-2004: IEEE Std 1003.1-2004
- POSIX.1-2008: IEEE Std 1003.1-2008 (Base Specifications, Issue 7)
- POSIX.1-2013: IEEE Std 1003.1-2013
- POSIX.1-2016: IEEE Std 1003.1-2016
- POSIX.1-2017:IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008)
Majoritatea derivatelor Unix aderă în mare măsură la standardele specificate în IEEE1003.1 (1990) și IEEE1003.2 (1992). [5]
Controverse
modificareBlocuri 512 vs 1024 byte
modificarePOSIX mandatează mărimi de blocuri implicite de 512 byte pentru utilitele df și du, reflectând mărimea tipică a blocurilor pe discuri. Când Richard Stallman și echipa GNU implementau POSIX pentru sistemul de operare GNU, ei au obiectat la aceasta din motiv că majoritatea oamenilor gândesc în termeni de blocuri de 1024 byte (sau 1 KiB).
Sisteme de operare orientate POSIX
modificareÎn funcție de gradul de conformitate cu standardele, sistemele de operare se pot clasifica în complet sau parțial compatibile cu POSIX. Produsele certificate pot fi găsite pe site-ul IEEE.[6]
Complet compatibile cu POSIX
modificareParțial compatibile cu POSIX
modificareUrmătoarele, deși nu sunt certificate oficial ca fiind compatibile cu POSIX, îl respectă în mare parte:
- Android (Disponibil prin Android NDK)
- Contiki
- Darwin (baza lui macOS și iOS)
- DragonFly BSD
- FreeBSD[7]
- Haiku
- illumos (baza lui OpenIndiana, care este bifurcare a lui OpenSolaris[8])
- Linux (majoritatea distribuțiilor — vezi Linux Standard Base)
- Minix (acum Minix 3)
- NetBSD
- NuttX
- OpenBSD
- OpenOS
- OpenVMS
- OpenSolaris
- QNX
- Redox
- RTEMS – suport API POSIX proiectat pentru IEEE Std. 1003.13-2003 PSE52
- Syllable
- VMware ESXi
- VSTa
Compatibile via nivel de compatibilitate
modificareUrmătoarele nu sunt oficial certificate ca compatibile cu POSIX, dar ele se conformează în mare parte standardelor prin implementarea suportului pentru POSIX via unui fel de funcționalitate de compatibilitate (deobicei librării de translare, sau a unui nivel deasupra nucleului). Fără aceste funcționalități, ele deobicei sunt incombatibile.
- eCos – POSIX e parte din distribuția standard, și utilizată de multe aplicații.
- Plan 9 de la Bell Labs APE - ANSI/POSIX Environment[9]
- RIOT (printr-un modul POSIX opțional)
POSIX pentru Windows
modificareWindows implementează parțial aceste standarde, prin intermediul unor API-uri. În plus, pot fi folosite programe care să extindă cu mult compatibilitatea cu POSIX:
- Cygwin: oferă o dezvoltare în mare măsură compatibilă cu POSIX și cu un mediu de rulare pentru Microsoft Windows.
- Microsoft POSIX subsystem: un subsistem livrat cu primele versiuni de Windows NT
- MinGW: fork Cygwin, este un lanț de instrumente GCC complet pentru platforma Windows care compilează și leagă componenta OS Windows Library C Runtime Library din msvcrt.dll.
- MKS Toolkit: pachet software produs și întreținut de PTC care oferă un mediu asemănător Unix pentru scripting, conectivitate și portarea software-ului Unix și Linux la Microsoft Windows.
- Windows Subsystem for Linux (WSL): un nou API prin care se extinde compatibilitatea cu sistemele Linux, practic va ingloba în Windows toate caracteristicile POSIX.
Note
modificare- ^ „POSIX.1 FAQ”. The Open Group. .
- ^ a b „POSIX 1003.1 FAQ Version 1.12”. . Accesat în .
- ^ „P1003.1 - Standard for Information Technology--Portable Operating System Interface (POSIX(TM)) Base Specifications, Issue 8”. IEEE Standards Association.
- ^ „The origin of the name POSIX”. . Accesat în .
- ^ Getting started with POSIX riptutorial.com
- ^ „POSIX Certification”. IEEE.
- ^ Schweikhardt, Jens. „POSIX utilities”. FreeBSD.
- ^ Solter, Nicholas A.; Jelinek, Jerry; Miner, David (). OpenSolaris Bible (în engleză). John Wiley & Sons. ISBN 9781118080313.
- ^ „APE — ANSI/POSIX Environment”. Plan 9. Bell Labs. Arhivat din original la . Accesat în .
Vezi și
modificare- Expresie regulată
- Fir de execuție
- Signale POSIX
- Fire POSIX
- Socketurile POSIX practic sunt socketuri Berkeley
- Common User Access – Standard de interfață al utilizatorului
- Librăria POSIX C
- Sistem de operare în timp real
- Set de caractere portabil, set de 103 caractere care trebuie suportate în orice locală de set de caractere compatibilă cu POSIX
Legături externe
modificare- „POSIX Certification home”. Open Group/IEEE.