POSIX

POSIX (forkortelse for Portable Operating System Interface) er et sett med standarder som definerer et operativsystemuavhengig programmeringsgrensesnitt.
Før 1997 ble POSIX utviklet av IEEE og Open Group, og standardisert av ISO/IEC/IEEE 9945. I 1997 ble arbeidet overtatt av Austin Group, en arbeidsgruppe som er tilknyttet de nevnte standardorganisasjoner. Austin Group publiserer i dag nye revisjoner som en del av Single UNIX Specification, før de godkjennes av ISO som en POSIX-revisjon.
Første versjon ble publisert 1. januar 1988, og den foreløbig siste versjonen ble publisert 31. januar 2018.
POSIX er et programkodelag mellom operativsystemet og applikasjonsprogrammene, som lar programmene kalle opp POSIX-funksjoner i stedet for operativsystemspesifikke funksjoner. Dette medfører at et applikasjonsprogram kan benyttes på flere forskjellige operativsystem, ved å rekompilere det. POSIX ble utviklet for UNIX, men finnes også for flere andre operativsystem.


== Bakgrunn ==

Bakgrunnen for POSIX var de såkalte Unix-krigene som pågikk fra 1983 til 1993, hvor ulike leverandører av Unix kjempet for å etablere sin egen Unix-avart som en industristandard. POSIX var i så måte det første forsøket på å standardisere Unix, men standarden gjelder også for andre operativsystemer.
På midten av 1980-tallet, fantes det tre grunnleggende avarter av Unix: AT&T's UNIX System III (som var basis for Microsoft's Xenix, PC/IX som ble støttet av IBM og flere), AT&T's UNIX System V, som prøvde å etablere en ny Unix-standard, og Berkeley Software Distribution (BSD). Alle tre var utgått fra forsknings-Unix, men hadde divergert betraktelig. I tillegg var det også innbyrdes forskjeller på ulike varianter av Unix innad i disse tre «familiene».


== Navn ==
Opprinnelig refererte navnet POSIX til IEEE Std 1003.1-1988, som ble publisert 1. januar 1988. POSIX-standardene er formelt betegnet som IEEE 1003 og det internasjonale standardnavnet er ISO/IEC 9945.
Standardene utgikk fra et prosjekt som begynte omkring 1985. GNU-prosjektets leder Richard Stallman, som var medlem av IEEE Computer Society's Portable Applications Standards Committee (PASC) på 1980-tallet, foreslo navnet POSIX (Portable Operating System Interface) overfor PASC i stedet for det tidligere navnet IEEE-IX. Komitéen fant det lettere å uttale og huske, og adopterte derfor navnet.


== Egenskaper og bruksområder ==


== Versjoner ==
POSIX-standarden har blitt revidert og utvidet flere ganger.
Før 1997 ble POSIX utviklet av IEEE og Open Group, og standardisert av ISO/IEC/IEEE 9945. I 1997 ble arbeidet overtatt av Austin Group, en arbeidsgruppe som er tilknyttet de nevnte standardorganisasjoner. Austin Group publiserer i dag nye revisjoner som en del av Single UNIX Specification, før de godkjennes av ISO som en POSIX-revisjon.


=== POSIX.1 (IEEE Std 1003.1-1988) ===
Tjenester av operativsystemkjernen, publisert 1. januar 1988
oppretting og kontroll av prosesser
signaler
behandling av flytekommafeil
behandling av minnesegmentsfeil
behandling av illegale instruksjoner
behandling av bussfeil
timerbehandling
datafil- og katalogbehandling
Pipeline
C-standardbiblioteket slik det er spesifisert i ANSI C
I/O og port-kontroll
Prosesstriggere


=== POSIX.1b (IEEE Std 1003.1b-1993) ===
Sanntidsoperativsystemer, publisert 1. januar 1993
prioritet av skedulering
sanntidssignaler
klokker og tellere
semaforer
meldingsoverføring
delt minne
asynkron og synkron kommunikasjon
grensensitt til minnelås


=== POSIX.1c (IEEE Std 1003.1c-1995) ===
Tråder, publisert 1. januar 1995
Oppretting, kontroll og sletting av tråder
trådallokering
trådsynkronisering
signalbehandling


=== POSIX.2 (IEEE Std 1003.2-1992) ===
Unix-skall og systemverktøy, publisert 1. januar 1992
Unix-skall, kommandotolker og kommandolinjer
systemverktøy


=== POSIX.1-2001 (IEEE Std 1003.1-2001) ===
Identisk med Single UNIX Specification version 3, publisert 6. desember 2001
Basedefinisjoner, utgave 6
Systemgrensesnitt og hedere, utgave 6
Kommandoer og systemverktøy, utgave 6


=== POSIX.1-2004 (IEEE Std 1003.1-2004) ===
En mindre oppdatering, publisert 1. januar 2004
To mindre oppdateringer eller errata, referert til som Technical Corrigenda (TC)


=== POSIX.1-2008 (IEEE Std 1003.1-2008) ===
Identisk med Single UNIX Specification version 4, publisert 1. desember 2008
Basedefinisjoner, utgave 7
Systemgrensesnitt og hedere, utgave 7
Kommandoer og systemverktøy, utgave 7


=== POSIX.1-2008 (IEEE Std 1003.1-2008), 2013-utgaven ===
Identisk med Single UNIX Specification version 4, 2013-utgaven, publisert 19. april 2013
The Technical Corrigendum 1, og merkenavnet UNIX V7


=== POSIX.1-2008 (IEEE Std 1003.1-2008), 2016-utgaven ===
Identisk med Single UNIX Specification version 4, 2016-utgaven, publisert 30. september 2016
The Technical Corrigendum 2


=== POSIX.1-2008 (IEEE Std 1003.1-2008), 2017-utgaven ===
Mindre oppdatering, publisert 31. januar 2018


== Referanser ==


== Eksterne lenker ==
POSIX - Austin Joint Working Group (en)
The Open Group Base Specifications (en)