POSIX er en familie av tekniske standarder som er definert siden 1988 av Institute of Electrical and Electronics Engineers (IEEE), og formelt referert til som IEEE 1003 . Disse standardene har dukket opp av et foreslått standardisert programmeringsgrensesnitt for programvare designet for å kjøre på varianter av operativsystemet UNIX .
Begrepet POSIX ble foreslått av Richard Stallman , som var i komiteen som skrev den første versjonen av standarden. IEEE valgte å beholde den fordi den lett ble husket. De første fire bokstavene står for bærbart operativsystemgrensesnitt , og X står for UNIX-arv.
POSIX spesifiserer brukergrensesnitt og programvaregrensesnitt i sytten forskjellige dokumenter . Standard kommandolinje og skriptgrensesnitt som er Bourne-skallet . Andre kommandoer, tjenester og verktøy inkluderer awk , echo , ed og hundrevis mer. Grunnleggende inngangs- / utgangstjenester ( filer , terminaler , nettverk ) må være tilstede; systemet må støtte noen spesifikke attributter for filer. POSIX definerer også et standard programmeringsgrensesnitt , og dette støttes av de nyeste operativsystemene.
En testpakke for POSIX følger med standarden. Det kalles PCTS ( POSIX Conformance Test Suite ).
Siden IEEE selger POSIX-dokumentasjon til høye priser og ikke tillater publisering på Internett , har noen henvendt seg til Single UNIX Specification- standarden . Faktisk er sistnevnte åpen, godtar forslag fra alle som ønsker å bidra, og er tilgjengelig gratis på Internett. Dette arbeidet dateres tilbake til begynnelsen av 1998 , da en felles arbeidsgruppe, Austin Group (in) , begynte å utvikle en standard som ble den eneste UNIX-spesifikasjonen versjon 3 .
Selv om den hovedsakelig er implementert på UNIX-lignende systemer, kan POSIX-standarden brukes av ethvert annet operativsystem. For eksempel er Microsoft Windows NT 3.x og 4 sertifisert som POSIX.1: 1990-kompatibel, noe som er tilstrekkelig for relativt enkle POSIX-applikasjoner. Imidlertid trenger mer komplekse programmer bredere kompatibilitet. Ekstra programvare som tjenester for UNIX eller Cygwin kan tilby dette nivået av kompatibilitet for Windows. UWIN tilbyr POSIX-kompatibilitet, inkludert filstier.
The Linux Standard Base konsortium utgir flere utvidelser og de facto standarder for Linux- baserte driftssystemer . Det er usannsynlig at de blir overtatt av andre UNIX-lignende systemer, som følger andre eldre standarder, selv om Linux Standard Base i mange tilfeller gjør det .
Mye av POSIX API ble definert på et tidspunkt da maskinadressering ble utført på maksimalt 32 bits . For å bevare kompatibilitet mellom de forskjellige systemene, ble det på det tidspunktet anbefalt å ikke overstige størrelsen på 2 GB for filene, dette i tilfelle der standardtypen "size_t" definert i standard C-biblioteket "stddef.h" ble definert som et 31-biters usignert heltall (returverdien av noen funksjoner som signeres fordi de bruker den POSIX-signerte typen "ssize_t", og returnerer et negativt tall ved feil). Dette symbolet ble faktisk brukt av de fleste definisjonene av C-språkfiltilgangsgrensesnittet (IEEE std 1003.1-1990). Foreløpig er denne grensen ofte ikke lenger relevant, siden systemer vanligvis bruker en usignert type på minst 63 bits for "size_t".
For tiden er POSIX-dokumentasjonen delt inn i tre deler:
POSIX-standarden har kjent flere versjoner:
Enkelte POSIX-systemer kan ha begrensninger som kan få brukerne til å føle at de blir utsatt for kjente og kjente feil. Dette er spesielt tilfelle i løpet av skuddsekunder eller når man ser bort fra den mulige tilstedeværelsen av UTF-8 bytebestillingsindikatoren i shebangen .
Den POSIXLY_CORRECT miljøvariabelen Administrasjonskommandoer påvirkes ikke av denne variabelen.
Flere titalls kommandoer tilpasser driften i henhold til verdien av POSIXLY_CORRECT; de mest typiske eksemplene er grep og find- kommandoer , men det er mange flere: apropos, at, df, ..., rgrep, setfacl , etc.
Denne miljøvariabelen brukes for eksempel til å definere om en kommando skal bruke dataformatet som er i samsvar med POSIX eller det som brukes som standard av denne kommandoen.
/ Unifix Linux 2.0 fra det tyske selskapet Unifix og Linux-FT fra Lasermoon er POSIX.1 FIPS 151-2- sertifisert . Kjerne 1.2.13
Debians nettsted forklarer at "[...] POSIX.1 (og FIPS 151-2) -sertifisering er veldig kostbar [og] gjør det lite sannsynlig at Debian vil oppnå offisiell sertifisering av samsvar . "