Vad är POSIX?

Portable Operating System Interface for Computing Environments (POSIX®) är en uppsättning standarder och specifikationer som definierar sätt för datorprogram att interagera med ett operativsystem. Applikationer som överensstämmer med dessa standarder kan lättare portas till andra plattformar som också stödjer specifikationerna. Dessa specifikationer har antagits officiellt internationellt och har blivit nödvändiga av vissa speciella kunder inom myndigheter, försvar och flyg. Det finns olika nivåer av överensstämmelse med familjen av standarder, som starkt påverkades av designen av UNIX®-plattformen.

Det har gjorts många försök att underlätta svårigheterna med att utveckla programvara för mer än en datorplattform. Skillnader i operativsystemdesign, tillgängliga programspråk och hårdvara skapar kompatibilitetsproblem som inte är lätta att övervinna. Det finns många olika åsikter om hur man bäst kan hantera utmaningarna med plattformsoberoende datoranvändning. POSIX® har ett regelbaserat tillvägagångssätt som styr hur applikationer interagerar med deras underliggande plattform, samt kräver inkludering av ett fåtal verktyg. Dessa regler gäller för både applikationer och operativsystem och tillhandahåller ett standardsätt för kommunikation mellan de två.

Målet med POSIX® är att tillhandahålla något som kallas källkodsportabilitet. Källkod, den mänskliga läsbara versionen av ett datorprogram som används för att bygga applikationer, ”kompileras” till maskinkod som kan förstås av mikroprocessorerna inuti alla datorer. Olika processorer innehåller olika typer av maskinkod; detta betyder att ett program inte bara måste skrivas med ett operativsystem i åtanke, utan med den speciella hårdvara som programmet ska köras på. Källkodsportabilitet innebär att ett programs källkod kan kompileras för olika plattformar med liten eller ingen ansträngning, vilket gör det mer effektivt att återanvända befintlig kod än att återskapa programmet från början.

Många stora organisationer som köper en mängd olika hårdvara och mjukvara har kommit att se POSIX®-familjen av standarder som en viktig eller till och med väsentlig funktion för produkter de köper. Institute of Electrical and Electronics Engineers (IEEE), International Organization for Standardization (ISO) och International Electrotechnical Commission (IEC) har godkänt POSIX®-standarderna som IEEE 1003 och ISO/IEC 9945. Detta internationella antagande har gjort standarderna populära bland statliga kunder. Vissa militär- och flygkunder kräver standarderna för att göra det lättare att anpassa applikationer till specialiserade datorplattformar som används inom dessa områden. US Navy, till exempel, har införlivat standarderna i sin Open Architecture Computing Environment, ett initiativ som syftar till att upprätthålla interoperabilitet i programvaran som driver krigsfartyg, obemannade flygfarkoster och undervattensfarkoster.

POSIX® är en familj av relaterade standarder snarare än en enda specifikation. Vissa får bra stöd medan andra inte är det. Det finns också olika nivåer av support, med ”överensstämmande” mjukvaruprodukter som strikt följer standarderna och ”kompatibla” produkter stöder bara några av dem. Många av POSIX®-specifikationerna var baserade på UNIX®-operativsystemen, så ett antal UNIX®- och UNIX®-liknande plattformar stöder standarderna direkt. Vissa andra plattformar stöder IEEE 1003 genom användning av ytterligare programvara.