Posix

Er Linux POSIX-kompatibel?

Er Linux POSIX-kompatibel?

Software er skrevet af mange udviklere med forskellige baggrunde. Generelle algoritmer er tilgængelige under en gratis licens eller er blevet videnskabeligt offentliggjort, og de kan også være tilgængelige gratis til studiearbejde. Dette resulterer i forskellige implementeringer og softwareversioner, der passer til forskellige behov. En standardisering af grænseflader og dataformater er nødvendig for at gøre disse forskellige implementeringer både udskiftelige og modulære.

Kort sagt gør POSIX [1] nøjagtigt det for UNIX og UNIX-lignende systemer (se Zak Hs artikel [4] for en mere detaljeret historie om dette emne). Den definerer udvekslingsgrænseflader, opkaldsmekanismer og overførte data til softwaren, men overlader den interne implementering til udvikleren eller vedligeholderen af ​​softwaren. Målet er at samle alle de forskellige UNIX gafler og UNIX-lignende systemer på en sådan måde, at forskellige softwareimplementeringer kan interagere med hinanden. Den største fordel ved POSIX er at have en bindende dokumentation for disse komponenter - grænseflader, mekanismer og data - tilgængelig i skriftlig form.

Et operativsystem, der følger POSIX-standarden i sin helhed, klassificeres som værende POSIX-kompatibelt. I denne artikel forklarer vi, hvad POSIX står for, bestemmer, om Linux hører til denne kategori, og viser hvilke Linux-komponenter, der skal udelukkes fra denne klassificering.

Hvad står udtrykket POSIX for?

POSIX er en forkortelse for Portable Operating System Interface. Som kort forklaret ovenfor er POSIX navnet på en samling af standarder, der kræves for at opretholde kompatibilitet mellem operativsystemer. Som anført i [1] definerer “[it] applikationsprogrammeringsgrænsefladen (API) sammen med kommandolinjeskaller og hjælpeprogrammer til softwarekompatibilitet med varianter af Unix og andre operativsystemer.”Den første version af POSIX blev udgivet i 1988. Siden da er POSIX løbende blevet udvidet og opdateret af Austin Common Standards Revision Group (også kendt som The Austin Group) [7].

Fra 2021 indeholder POSIX-standarden følgende dele:

  1. Kernetjenester (Indeholder standard ANSI C) (IEEE std 1003.1-1988) - Oprettelse af proces og kontrol, signaler, fil- og katalogoperationer, rør, C-bibliotek, I / O-portgrænseflade og kontrol, procesudløsere
  1. Udvidelser (Symbolske links)
  2. Realtids- og I / O-udvidelser (IEEE Std 1003.1b-1993) - Prioriteret planlægning, realtidssignaler, ure og timere, semaforer, meddelelsesoverførsel, delt hukommelse, asynkron og synkron I / O, hukommelseslåsende grænseflade
  3. Trådforlængelser (IEEE Std 1003.1c-1995) - Oprettelse af tråd, kontrol og oprydning, trådplanlægning, trådsynkronisering, signalhåndtering
  4. Flere realtidsudvidelser
  5. Sikkerhedsudvidelser (Adgangskontrolister)
  1. Shell og hjælpeprogrammer (IEEE Std 1003.2-1992) - Kommandotolker, hjælpeprogrammer

Standarden gennemgås regelmæssigt for at afspejle tekniske ændringer og forbedringer. Det kan nogle gange tage flere år, før en ny version offentliggøres, og ændringerne indarbejdes. Dette kan være ufordelagtigt, men det er forståeligt i betragtning af standardens omfang.

I de senere år er der tilføjet udvidelser til realtidsbehandling. Den aktuelle version blev frigivet i begyndelsen af ​​2018 [3]. Forfatterne af SibylFS [5] har også offentliggjort mange kommentarer til POSIX-standarden for at bestemme logik og interaktioner med højere ordre.

Hvad betyder det at være POSIX-kompatibel?

Udtrykket "POSIX-kompatibel" betyder, at et operativsystem opfylder alle POSIX-kriterierne. Et operativsystem kan køre UNIX-programmer indbygget, eller en applikation kan overføres fra UNIX-systemet til et andet system. Det er let eller i det mindste lettere at porte en applikation fra UNIX til måloperativsystemet, end hvis den ikke understøtter POSIX. For at være på den sikre side burde et operativsystem med succes have opnået POSIX-certificeringen [2]. Dette trin opnås (til en pris) ved at bestå en automatiseret certificeringstest. Den tilsvarende testpakke kan findes her [11].

Fra 2021 indeholder listen over POSIX-certificerede operativsystemer AIX fra IBM, HP-UX fra HP, IRIX fra SGI, EulerOS [6] fra Huawei, Mac OS X fra Apple (siden 10.5 Leopard), Solaris og QNX Neutrino fra Oracle, Inspurs K-UX [11] og realtids OS INTEGRITY fra Green Hills Software [15]. Det er i øjeblikket uklart, om nyere versioner af de tre Solaris-efterfølgere, OpenSolaris, Illumos og OpenIndiana, også er klassificeret som fuldt POSIX-kompatible. Disse operativsystemer var POSIX-kompatible indtil POSIX 2001.

Andre operativsystemer, der ses som mest (men ikke fuldt ud) POSIX-kompatible, inkluderer Android, BeOS, FreeBSD, Haiku, Linux (se nedenfor) og VMWare ESXi. For Microsoft Windows leverer Cygwin et stort set POSIX-kompatibelt udviklings- og runtime-miljø.

Er Linux POSIX-kompatibel?

Udtrykket “Linux” henviser til hele Linux-operativsystemet, uanset smag, såsom Debian GNU / Linux, RedHat Linux, Linux Mint, Ubuntu Linux, Fedora og CentOS, for eksempel. For at være præcis er Linux bare navnet på kernen, der er kernekomponenten i dette gratis operativsystem.

Som Linus Torvalds beskrev i bogen "Just For Fun" [8], for at udvikle Linux-kernen, anmodede han om en kopi af POSIX-standarden. Dette hjalp ham med at implementere de samme mekanismer, der bruges i kommercielle UNIX-systemer. Desuden tillod dette ham at linke Linux-kernen med GNU-værktøjerne, der primært fulgte den samme tilgang. For at være retfærdig er softwaren på et Linux-system bidraget fra en række kilder, der respekterer POSIX-standarden, men som også nogle gange implementerer deres egne koncepter. Samtidig viser dette imidlertid også mangfoldigheden, der udgør Linux som et operativsystem.

Et eksempel på dette er den måde, hvorpå kommandolinjeargumenter skrives. Argumenter med to bindestreger (f.eks.g., “-Help”) er GNU-konventioner, hvorimod POSIX-kommandoer aldrig bruger to bindestreger, men i stedet kun en enkelt (e.g., "-Hjælp"). Lige fra starten blev Linux designet med GNU i tankerne, og det er derfor, kommandoerne indeholder GNU-stil

argumenter. For at opnå POSIX-overholdelse er POSIX-stil-argumenter tilføjet trin for trin. Stadig er den endelige beslutning taget af udvikleren. Fra i dag accepterer de fleste kommandoer både korte og lange argumenter eller endda argumenter uden bindestreger, såsom "find" -kommandoen, for eksempel. For at være retfærdig er der ingen sammenhæng mellem kommandoerne på et system, og dette kan være et problem, når du har til hensigt at bruge den samme kommando på et andet UNIX-baseret system, især når du skifter mellem Linux, OS X og Solaris.

For øjeblikket er Linux ikke POSIX-certificeret på grund af høje omkostninger, bortset fra de to kommercielle Linux-distributioner Inspur K-UX [12] og Huawei EulerOS [6]. I stedet ses Linux som værende mest POSIX-kompatibel.

Denne vurdering skyldes, at større Linux-distributioner følger Linux Standard Base (LSB) i stedet for POSIX [9]. LSB sigter mod "at minimere forskellene mellem individuelle Linux-distributioner" [14]. Dette refererer til softwaresystemstrukturen inklusive Filesystem Hierarchy Standard (FHS), der bruges i Linux-kernen. LSB er baseret på POSIX-specifikationen, Single UNIX Specification (SUS) [10] og flere andre åbne standarder, men udvider dem også inden for visse områder.

LSB-baserede Linux-distributioner inkluderer RedHat Linux, Debian GNU / Linux (2002-2015) og Ubuntu (indtil 2015), for at nævne nogle få.

Udvikling med POSIX i tankerne

For at forstå POSIX mere detaljeret anbefaler vi at få en kopi af POSIX-standarden og læse den fuldt ud. Du kan få bogen fra Open Group-webstedet. Dette kræver et registreringsgebyr, men giver dig fuld adgang til denne værdifulde ressource. Standarder hjælper, da de giver dig mulighed for at udvikle software på en sådan måde, at den opfører sig på samme måde på alle UNIX-platforme.

Links og referencer

Tak skal du have

Forfatteren vil gerne takke Axel Beckert og Veit Schiele for deres hjælp og råd under udarbejdelsen af ​​denne artikel.

Sådan downloades og afspilles Sid Meiers Civilization VI på Linux
Introduktion til spillet Civilization 6 er et moderne udtryk for det klassiske koncept, der blev introduceret i serien af ​​Age of Empires-spil. Ideen...
Sådan installeres og afspilles Doom på Linux
Introduktion til undergang Doom-serien opstod i 90'erne efter frigivelsen af ​​den originale Doom. Det var et øjeblikkeligt hit, og fra den tid af har...
Vulkan til Linux-brugere
Med hver nye generation af grafikkort ser vi spiludviklere skubbe grænserne for grafisk troskab og komme et skridt tættere på fotorealisme. Men på tro...