POSIX: En översikt
Portable Operating System Interface (POSIX) är en IEEE-standard som hjälper kompatibilitet och bärbarhet mellan operativsystem. Teoretiskt sett bör POSIX-kompatibel källkod vara smidigt bärbar. I den verkliga världen stöter applikationsövergången ofta på systemspecifika problem. Men POSIX-efterlevnad gör det enklare att porta applikationer som kan leda till tidsbesparingar. Så utvecklare bör bekanta sig med grunderna i denna allmänt använda standard.
POSIX: s historia
Tidiga programmerare var tvungna att skriva om sina applikationer från grunden för varje ny datormodell. Men IBM System / 360 ändrade det. 1964 introducerade operativsystemet OS / 360. IBM började använda samma hårdvaruarkitektur för att göra det möjligt för de nya modellerna att återanvända samma operativsystem. Närvaron av ett vanligt operativsystem på flera datorer skapar det första steget för applikationsportabilitet.
I slutet av 1960-talet öppnade UNIX nya möjligheter. AT & T: s Bell Labs ansvarade för den första utvecklingen av detta nya operativsystem. Det kan köras över maskiner från flera leverantörer. Men UNIX började smeka på olika smaker. Förutom AT & T: s System V fanns det Berkeley Software Distribution (BSD), Xenix och mer. Det var inte lätt att porta över dessa smaker. Löftet om applikationsportabilitet drabbade en vägstöt. Under de kommande decennierna skulle införandet av nya operativsystem bara göra det mer komplicerat för portapplikationer över hårdvara, operativsystem och leverantörer.
POSIX-standarden utvecklades på 1980-talet för att lösa problemet med bärbarhet. Standarden definierades baserat på System V och BSD Unix. POSIX definierar inte operativsystemet, det definierar bara gränssnittet mellan en applikation och ett operativsystem. Programmerarna har friheten att skriva sitt operativsystem och applikation hur som helst de vill så länge som gränssnittet mellan de två respekteras. Eftersom POSIX är oberoende av hårdvara, operativsystem eller leverantör är det lättare att uppnå applikationsportabilitet.
Den första POSIX-standarden släpptes 1988. Formellt kallades det IEEE Standard 1003.1-1988 Portabelt operativsystemgränssnitt för datormiljöer ”. 1990 släpptes en internationell version av samma standard med små variationer som ISO / IEC 9945-1: 1990 Informationsteknik - Portabelt operativsystemgränssnitt (POSIX) - Del 1: System Application Program Interface (API).
Ursprungligen delades POSIX upp i flera standarder:
POSIX.1: Kärn tjänster
POSIX.1b: Realtidstillägg
POSIX.1c: Trådförlängningar
POSIX.2: Skal och verktyg
Efter 1997 tog Austin-gruppen all standard under ett paraply. Sedan dess har versionerna POSIX.1-2001 (även känd som IEEE Std 1003.1-2001), POSIX.1-2004 (även känd som IEEE Std 1003.1-2004) och POSIX.1-2008 (även känd som IEEE Std 1003.1-2008) har släppts.
Exempel på vissa POSIX-kompatibla system är AIX, HP-UX, Solaris och MacOS (sedan 10.5 Leopard). Å andra sidan, Android, FreeBSD, Linux-distributioner, OpenBSD, VMWare, etc., följer det mesta av POSIX-standarden, men de är inte certifierade.
Grunderna i POSIX
POSIX.Standarden 1-2008 behandlar fyra huvudområden:
- Basdefinitionsvolym: Allmänna villkor, begrepp och gränssnitt.
- Systemgränssnittsvolym: Definitioner av systemtjänstfunktioner och underrutiner. Inkluderar också bärbarhet, felhantering och felåterställning.
- Skal och verktygsvolym: Definition av gränssnitt för alla applikationer till kommandoskal och vanliga verktygsprogram.
- Motivvolym: Innehåller information och historik om tillagda eller kasserade funktioner och resonemang för besluten.
Standarden täcker inte grafiska gränssnitt, databasgränssnitt, portabilitet för objekt / binär kod, systemkonfigurationer, I / O-överväganden eller tillgång till resurser.
Några av de vägledande principerna bakom POSIX-design är:
- POSIX är skapat för att göra applikationsportabilitet enklare. Så det är inte bara för UNIX-system. Icke-UNIX-system kan också vara POSIX-kompatibla.
- Standarden dikterar inte utvecklingen av applikationen eller operativsystemet. Det definierar bara avtalet mellan dem.
- POSIX-kompatibel applikationskällkod bör kunna köras över många system eftersom standarden definieras på källkodsnivå. Standarden garanterar dock ingen portabilitet för objekt eller binär kodnivå. Så den binära körbara filen kanske inte körs ens på liknande maskiner med identisk hårdvara och operativsystem. Endast källkodsportabilitet behandlas i standarden.
- POSIX är skrivet enligt standard C. Men utvecklare kan implementera det på vilket språk de vill.
- Standarden behandlar endast aspekter av operativsystemet som interagerar med applikationer.
- Standarden hålls kortfattad i termer av längd och bred när det gäller omfattning för att täcka ett stort antal system.
- POSIX designades för att förenkla bärbarheten. Så det kommer att spara tid och pengar på lång sikt. Men om dina applikationer inte är POSIX-kompatibla kan det kräva betydande tid och resursinvesteringar i början.
POSIX applikationsutveckling
Syftet med POSIX var att förbättra bärbarheten. När din källkod följer standarden kan du enkelt kompilera och köra koden på en annan maskin. Om POSIX definieras som ett allmänt krav för en applikation kan det dock orsaka förvirring. Hela POSIX-standarden är på 4000 sidor med mer än 1350 gränssnitt. Det är inte meningsfullt att genomföra allt. Så varje projekt bör definiera de aspekter av POSIX som uppfyller särskilda krav.
Det finns missuppfattningar i utvecklingssamhället att POSIX-standarden är gammal och irrelevant. Det är inte sant. POSIX är ett levande dokument som regelbundet uppdateras av Austin Group. Vem som helst kan gå med i gruppen och delta i att förbättra standarden. Standarden används aktivt i dagens servrar, arbetsstationer, routrar, mobila enheter, inbäddade system och mer. Den används för UNIX- och Linux-maskiner.
Utvecklare bör dock vara medvetna om att POSIX-standarden har problem. Du kan rapportera alla fel som du upptäcker till Austin Group och det kommer att undersökas för nästa revision.
Slutsats
POSIX kan tyckas skrämmande först. Ändå bör applikationsutvecklare bekanta sig med grunderna eftersom det kommer att dyka upp som ett krav då och då. På grund av standardens stora omfattning är det inte möjligt att bli expert på hela dokumentet. Utvecklare kan nå UNIX- och Linux-samhällen för att lära sig mer. Gemenskaperna kan svara på dina frågor och ge dig en bättre uppfattning om vilken del av standarden som är relevant för ditt projekt.
Ytterligare studier:
- POSIX fullständigt dokument
- Vanliga frågor om POSIX
- The Austin Common Standards Revision Group
Referenser:
- POSIX FAQ, Austin Group
- Austin Group
- Dokument 7542098 /
- POSIX och UNIX System Services-koncept
- OpenGroup Doc 9699919799
- Vad är POSIX?, Indiana University
- Standarder Docs @ open-std.org
- Bill Gallmeister, Posix Programmeringsguide
- POSIX Programmers Guide, Donald Lewine
- StackOverflow Vad är Posix
- Uniux historia, darwinsys.com
- Austin Open Group, Posix-papper
- Wikipedia POSIX