GNU/Linux >> Znalost Linux >  >> Linux

Co je POSIX? Proč je to pro uživatele Linuxu/UNIXu důležité?

Zkratku uslyšíte nebo si o ní přečtete:POSIX na různých online nástěnkách a článcích. Zdá se, že největší starosti s tím mají programátoři a vývojáři systémů. Může to znít tajemně, a přestože existuje mnoho dobrých zdrojů na toto téma, některé diskusní fóra (stručnost je součástí jejich povahy) nezacházejí do podrobností, co to je, a to může vést ke zmatku. Co je tedy POSIX skutečně?

Co je POSIX?

POSIX ve skutečnosti není věc. Popisuje věc – podobně jako štítek. Představte si krabici s označením:POSIX , a uvnitř krabice je standard. Standard se skládá ze sad pravidel a instrukcí, kterými se POSIX zabývá. POSIX je zkratka pro Rozhraní přenosného operačního systému . Jde o standard IEEE 1003.1, který definuje jazykové rozhraní mezi aplikačními programy (spolu s shelly příkazového řádku a rozhraními nástrojů) a operačním systémem UNIX.

Soulad se standardem zajišťuje kompatibilitu při přesunu programů UNIX z jedné platformy UNIX na jinou. POSIX se zaměřuje především na funkce ze systémů AT&T System V UNIX a BSD UNIX.

Norma musí být formulována a následována pravidly, jak dosáhnout cíle interoperability mezi operačními systémy. POSIX pokrývá takové věci, jako jsou:Systémová rozhraní a příkazy a nástroje, Přístup k síťovým souborům, abychom jmenovali alespoň některé – v POSIX je toho mnohem víc.

Proč POSIX?

Jedním slovem:přenositelnost.

Před více než 60 lety museli programátoři kompletně přepsat kód, pokud chtěli, aby jejich software běžel na více než jednom systému. To se kvůli vynaloženým nákladům nestávalo tak často, ale přenositelnost se stala funkcí v polovině 60. let – nikoli prostřednictvím POSIX – ale v aréně sálových počítačů.

IBM představilo rodinu sálových počítačů System/360. Různé modely měly své jedinečné specializace, ale hardware byl takový, že mohly používat stejný operační systém:OS/360.

Na různých modelech mohl běžet nejen operační systém, ale také na nich mohly běžet aplikace. Nejen, že to udrželo nízké náklady, ale vytvořilo to počítačové systémy – systémy napříč produktovou řadou, které by mohly spolupracovat. Dnes je to všechno běžné – sítě a systémy, ale tehdy to byl obrovský problém!

Když přišel UNIX, přibližně ve stejnou dobu, ukázal se také slibný v tom, že mohl fungovat na strojích od různých výrobců. Když se však UNIX začal rozšiřovat do různých variant, portování kódu přes tyto varianty UNIXu se stalo obtížným. Příslib přenositelnosti UNIX ztrácel půdu pod nohama.

K vyřešení tohoto problému s přenositelností byl v 80. letech vytvořen POSIX. Standard byl definován na základě AT&T System V UNIX a BSD UNIX, dvou největších variant v té době. Je důležité poznamenat, že POSIX nebyl vytvořen proto, aby kontroloval, jak byly operační systémy sestaveny – každá společnost si mohla svobodně navrhnout svou UNIXovou variantu, jak se jí zlíbí. POSIX se zabýval pouze tím, jak aplikace spolupracuje s operačním systémem. V programátorské řeči je rozhraní způsob, jakým může kód jednoho programu komunikovat s jiným programem. Rozhraní očekává, že program A poskytne konkrétní typ informací programu B. Podobně program A očekává, že program B odpoví konkrétním typem dat.

Například, pokud chci číst soubor pomocí příkazu cat, napsal bych na příkazový řádek něco takového:

cat myfile.txt

Aniž bych se pouštěl do mnoha programátorských řečí, řeknu jen, že příkaz cat zavolá operační systém, aby načetl soubor, aby jej mohl cat přečíst. cat jej přečte a poté zobrazí obsah souboru na obrazovce. Mezi aplikací je mnoho souhry (cat ) a operační systém. To, jak tato souhra funguje, je to, co POSIX zajímalo. Pokud by souhra mohla být stejná napříč různými variantami UNIXu, byla znovu získána přenositelnost – bez ohledu na operační systém, výrobce a hardware.

Specifika toho, jak je toho všeho dosaženo, jsou definována ve standardu.

Dodržování je dobrovolné

Každý z nás alespoň viděl zprávu jako:„pro pomoc zadejte:xxxxx –help“. To je běžné v Linuxu a není kompatibilní s POSIX. POSIX nikdy nevyžadoval dvojitou pomlčku, očekávají jednu pomlčku. Dvojitá pomlčka pochází z GNU, přesto Linuxu neškodí a trochu mu přidává na charakteru. Zároveň je Linux většinou kompatibilní, zejména pokud jde o rozhraní systémových volání. To je důvod, proč jsme schopni spouštět aplikace X, GNOME a KDE na Linuxu, Sys V UNIX a BSD UNIX. Různé příkazy, jako je ls, cat, grep, find, awk a mnoho dalších, fungují v různých variantách stejně.

Dodržování je zpravidla dobrovolným krokem. Když je kód v souladu, je snazší přejít na jiný systém; bylo by nutné velmi malé přepsání kódu, pokud vůbec nějaké. Když kód může fungovat na různých systémech, jeho použití se rozšiřuje. Lidé používající jiné systémy mohou těžit z používání programu. Nadějnému programátorovi může učení, jak psát programy, které jsou kompatibilní s POSIX, jen pomoci v jejich kariéře. Pro ty čtenáře, kteří se zajímají o oblast Linuxu, mnoho dobrých informací lze nalézt na:Linux Standard Base.

Ale já nejsem programátor ani systémový návrhář…

Mnoho lidí, kteří pracují na počítačích, nejsou programátoři nebo návrháři operačních systémů. Jsou to lékaři pro přepisy, sekretářky, které vypisují dopisy, seznamy úkolů, diktované poznámky a tak dále. Jiní dělají čísla, shromažďují a masírují data, provozují internetové obchody, píší knihy a články (a někteří z nás je čtou). Téměř v každé práci je pravděpodobně poblíž počítač.

POSIX ovlivňuje i tyto uživatele, ať už to vědí nebo ne. Uživatelé nemusí splňovat standard, ale očekávají, že jejich počítače budou fungovat. Když operační systémy a programy odpovídají standardu POSIX, získávají výhodu interoperability. Budou moci přecházet z jednoho systému do druhého s rozumným očekáváním, že stroje budou fungovat podobně jako jiné. Jejich data budou stále přístupná a budou je moci i nadále měnit.

POSIX, stejně jako další standardy, se neustále vyvíjejí. Jak roste technologie, roste i standard. Normy jsou vlastně dohodnutý systém používaný lidmi, výrobci, organizacemi atd. k efektivnímu provádění úkolů. Zařízení jednoho výrobce mohou spolupracovat se zařízeními jiného výrobce. Přemýšlejte o tom:Vaše Bluetooth sluchátko lze používat na Apple iPhone stejně dobře jako na telefonu Android. Naše televize se může připojit a streamovat videa a pořady z různých sítí, jako je Amazon Prime, BritBox, Hulu – abychom jmenovali alespoň některé. Nyní můžeme dokonce sledovat srdeční frekvenci pomocí našich telefonů. To vše je možné, z velké části zčásti, od dodržování norem.

Spousta výhod. To se mi líbí.

A co X?

Přiznávám, nikdy jsem neřekl, k čemu bylo „X“ v POSIXu. Opensource.com má vynikající článek, kde Richard Stallman vysvětluje, co znamená „X“ v POSIX. Tady to je, jeho slovy:

IEEE dokončila vývoj specifikace, ale neměla pro ni žádný výstižný název. Název říkal něco jako „rozhraní přenosného operačního systému“, i když si nepamatuji přesná slova. Výbor uvedl „IEEEIX“ jako výstižný název. Nemyslel jsem si, že to byla dobrá volba. Je to ošklivé vyslovovat – znělo by to jako výkřik hrůzy „Ayeee!“ – takže jsem čekal, že lidé místo toho nazvou specifikaci „Unix.“

Protože GNU není Unix a bylo zamýšleno nahradit Unix, nechtěl jsem, aby lidé nazývali GNU „systém Unix“. Proto jsem navrhl výstižný název, který by lidé mohli skutečně používat. Bez konkrétní inspirace jsem si vytvořil jméno nešikovným způsobem:vzal jsem iniciály „přenosný operační systém“ a přidal „ix“. IEEE to dychtivě přijalo.

Závěr

Standard POSIX umožňuje vývojářům vytvářet aplikace, nástroje a platformy na mnoha operačních systémech pomocí velké části stejného kódu. V žádném případě není požadavkem psát kód podle standardu, ale ve velkém to pomáhá, když chcete svůj kód přenést do jiných systémů.

POSIX je v zásadě zaměřen na návrháře operačních systémů a vývojáře softwaru, ale jako uživatelé systému jsme ovlivněni POSIXem, ať už si to uvědomujeme nebo ne. Je to díky standardu, že jsme schopni pracovat na jednom systému UNIX nebo Linux a přenést tuto práci na jiný systém a pracovat na něm bez zádrhelů. Jako uživatelé získáváme četné výhody v použitelnosti a opětovném použití dat napříč systémy.

Původní článek


Linux
  1. Linux vs. Unix:Jaký je rozdíl?

  2. Jaká je aktuální úroveň běhu systému Linux?

  3. Proč Unixový čas začíná na 1970-01-01?

  1. Co je umask v UNIX/Linux

  2. jaká je maximální délka hesla v systému unix/linux?

  3. Proč je Linux podobný Unixu, když je jeho jádro monolitické?

  1. Co je to linuxový server a proč jej vaše firma potřebuje?

  2. Co je Linux? Průvodce pro netechnické uživatele

  3. Migrace Unixu na Linux