POSIX: En oversigt
Portable Operating System Interface (POSIX) er en IEEE-standard, der hjælper kompatibilitet og bærbarhed mellem operativsystemer. Teoretisk set skal POSIX-kompatibel kildekode være problemfrit bærbar. I den virkelige verden løber applikationsovergang ofte ind i systemspecifikke problemer. Men POSIX-overholdelse gør det nemmere at porte applikationer, hvilket kan resultere i tidsbesparelser. Så udviklere bør gøre sig bekendt med det grundlæggende i denne almindeligt anvendte standard.
POSIX historie
Tidlige programmører måtte omskrive deres applikationer fra bunden til hver nye computermodel. Men IBM System / 360 ændrede det. I 1964 introducerede det operativsystemet OS / 360. IBM begyndte at bruge den samme hardwarearkitektur for at gøre det muligt for de nye modeller at genbruge det samme operativsystem. Tilstedeværelsen af et fælles operativsystem på tværs af flere maskiner oprettede det første trin til applikationsportabilitet.
I slutningen af 1960'erne åbnede ankomsten af UNIX nye muligheder. AT & T's Bell Labs var ansvarlig for den indledende udvikling af dette nye operativsystem. Det kunne køre på tværs af maskiner fra flere leverandører. Men UNIX begyndte at forkaste forskellige varianter. Udover AT & T's System V var der Berkeley Software Distribution (BSD), Xenix og mere. Det var ikke let at porte på tværs af disse varianter. Løftet om applikationsportabilitet ramte en vejbump. I de kommende årtier ville introduktionen af nye operativsystemer kun gøre det mere komplekst til portapplikationer på tværs af hardware, operativsystemer og leverandører.
POSIX-standarden blev udviklet i 1980'erne for at løse problemet med bærbarhed. Standarden blev defineret baseret på System V og BSD Unix. POSIX definerer ikke operativsystemet, det definerer kun grænsefladen mellem en applikation og et operativsystem. Programmørerne har friheden til at skrive deres operativsystem og applikation alligevel, de ønsker, så længe grænsefladen mellem de to er beæret. Da POSIX er uafhængig af hardware, operativsystem eller leverandør, er det lettere at opnå applikationsportabilitet.
Den første POSIX-standard blev udgivet i 1988. Formelt blev det kaldt IEEE Standard 1003.1-1988 Bærbart operativsystemgrænseflade til computermiljøer ”. I 1990 blev en international version af den samme standard med små variationer frigivet som ISO / IEC 9945-1: 1990 Informationsteknologi - Portable Operating System Interface (POSIX) - Del 1: System Application Program Interface (API).
Oprindeligt blev POSIX opdelt i flere standarder:
POSIX.1: Kernetjenester
POSIX.1b: Realtidsudvidelser
POSIX.1c: Trådforlængelser
POSIX.2: Shell og hjælpeprogrammer
Efter 1997 bragte Austin Group hele standarden under en enkelt paraply. Siden da har versionerne POSIX.1-2001 (også kendt som IEEE Std 1003.1-2001), POSIX.1-2004 (også kendt som IEEE Std 1003.1-2004) og POSIX.1-2008 (også kendt som IEEE Std 1003.1-2008) er frigivet.
Eksempler på nogle POSIX-kompatible systemer er AIX, HP-UX, Solaris og MacOS (siden 10.5 Leopard). På den anden side er Android, FreeBSD, Linux-distributioner, OpenBSD, VMWare osv., følger det meste af POSIX-standarden, men de er ikke certificeret.
Grundlæggende om POSIX
POSIX.1-2008-standarden beskæftiger sig med fire hovedområder:
- Basisdefinitionsvolumen: Generelle vilkår, koncepter og grænseflader.
- Systeminterfaces-volumen: Definitioner af systemtjenestefunktioner og underrutiner. Omfatter også bærbarhed, fejlhåndtering og fejlgendannelse.
- Skal og hjælpeprogrammer: Definition af grænseflader til ethvert program til kommandoskaller og almindelige hjælpeprogrammer.
- Begrundelsesvolumen: Indeholder information og historie om tilføjede eller kasserede funktioner og begrundelsen for beslutningerne.
Standarden dækker ikke grafiske grænseflader, databasegrænseflader, objekt / binær kodeportabilitet, systemkonfigurationer, I / O-overvejelser eller ressourcetilgængelighed.
Nogle af de vejledende principper bag POSIX-design er:
- POSIX er oprettet for at gøre applikationsportabilitet lettere. Så det er ikke kun til UNIX-systemer. Ikke-UNIX-systemer kan også være POSIX-kompatible.
- Standarden dikterer ikke udviklingen af applikationen eller operativsystemet. Det definerer kun kontrakten mellem dem.
- POSIX-kompatibel applikationskildekode skal kunne køre på tværs af mange systemer, fordi standarden er defineret på kildekodeniveauet. Standarden garanterer dog ikke nogen portabilitet af objekt eller binær kodeniveau. Så den binære eksekverbare kører muligvis ikke engang på lignende maskiner med identisk hardware og operativsystemer. Kun kildekodeportabilitet er adresseret i standarden.
- POSIX er skrevet i henhold til standard C. Men udviklere kan implementere det på ethvert sprog, de kan lide.
- Standarden behandler kun aspekter af operativsystemet, der interagerer med applikationer.
- Standarden holdes kortfattet med hensyn til længde og bred med hensyn til omfang for at dække et stort udvalg af systemer.
- POSIX blev designet til at forenkle bærbarhed. Så det vil spare tid og penge i det lange løb. Men hvis dine applikationer ikke er POSIX-kompatible, kan det kræve betydelig tid og ressourceinvestering i starten.
POSIX applikationsudvikling
Formålet med POSIX var at forbedre bærbarheden. Når din kildekode følger standarden, kan du nemt kompilere og køre koden på en anden maskine. Men hvis POSIX er defineret som et generelt krav til en applikation, kan det forårsage forvirring. Den fulde POSIX-standard er 4000 plus sider med mere end 1350 grænseflader. Det giver ikke mening at implementere alt. Så hvert projekt skal definere de aspekter af POSIX, der opfylder særlige krav.
Der er misforståelser i udviklingssamfundet om, at POSIX-standarden er gammel og irrelevant. Det er ikke sandt. POSIX er et levende dokument, der opdateres regelmæssigt af Austin Group. Alle kan deltage i gruppen og deltage i at forbedre standarden. Standarden bruges aktivt i nutidens servere, arbejdsstationer, routere, mobile enheder, indlejrede systemer og mere. Det bruges til UNIX- og Linux-maskiner.
Udviklere skal dog være opmærksomme på, at POSIX-standarden har problemer. Du kan rapportere enhver fejl, du opdager, til Austin Group, og den vil blive undersøgt til næste revision.
Konklusion
POSIX kan virke skræmmende i starten. Alligevel skal applikationsudviklere stifte bekendtskab med det grundlæggende, da det vil dukke op som et krav fra tid til anden. På grund af det store omfang af standarden er det ikke muligt at blive ekspert på hele dokumentet. Udviklere kan nå ud til UNIX- og Linux-samfundene for at lære mere. Samfundene kan besvare dine spørgsmål og give dig en bedre fornemmelse af, hvilken del af standarden der er relevant for dit projekt.
Yderligere studier:
- POSIX fuld dokument
- POSIX FAQ
- Austin Common Standards Revision Group
Referencer:
- POSIX FAQ, Austin Group
- Austin Group
- Dokument 7542098 /
- POSIX og UNIX System Services-koncepter
- OpenGroup Doc 9699919799
- Hvad er POSIX?, Indiana University
- Standarder Docs @ open-std.org
- Bill Gallmeister, Posix Programmeringsvejledning
- POSIX Programmers Guide, Donald Lewine
- StackOverflow Hvad er Posix
- Uniux historie, darwinsys.com
- Austin Open Group, Posix papir
- Wikipedia POSIX