Pískoviště

legrační barbel 19. března 2011 ve 23:16 hodin

Jak se Linux liší od UNIXu a co je OS podobný UNIXu?

  • Dřevěná komora *
UNIX
UNIX (Nestojí to za to zaměňována s definicí „operačního systému podobného UNIXu“) – rodina operačních systémů (Mac OS X, GNU/Linux).
První systém byl vyvinut v roce 1969 v Bell Laboratories, bývalé americké korporaci.

Charakteristické rysy UNIXu:

  1. Snadná konfigurace systému pomocí jednoduchých, obvykle textových souborů.
  2. Rozsáhlé používání příkazového řádku.
  3. Použití dopravníků.
V dnešní době se UNIX používá především na serverech a jako systém pro hardware.
Není možné si nevšimnout obrovského historického významu systémů UNIX. Nyní jsou uznávány jako jeden z historicky nejdůležitějších operačních systémů. Během vývoje UNIXových systémů vznikl jazyk C.

Varianty UNIX podle roku

OS podobný UNIXu
OS podobný UNIXu (Někdy použijte zkratku *nix) - systém vzniklý pod vlivem UNIXu.

Slovo UNIX se používá jako značka shody a jako ochranná známka.

Konsorcium Open Group vlastní ochrannou známku „UNIX“, ale je nejlépe známé jako certifikační autorita pro ochrannou známku UNIX. Nedávno The Open Group vrhla světlo na publikaci Single UNIX Specification, což jsou standardy, které musí operační systém splňovat, aby mohl být hrdě nazýván Unix.

Můžete se podívat na rodokmen operačních systémů podobných UNIXu.

Linux
Linux- obecný název pro operační systémy založené na UNIXu, které byly vyvinuty v rámci projektu GNU (open source software development project). Linux běží na obrovském množství architektur procesorů, od ARM po Intel x86.

Nejznámější a nejrozšířenější distribuce jsou Arch Linux, CentOS, Debian. Existuje také mnoho „domácích“, ruských distribucí - ALT Linux, ASPLinux a další.

O pojmenování GNU/Linux se vedou docela spory.
Zastánci „open source“ používají termín „Linux“ a zastánci „svobodného softwaru“ používají „GNU/Linux“. Dávám přednost první možnosti. Někdy se pro usnadnění reprezentace termínu GNU/Linux používají hláskování „GNU+Linux“, „GNU-Linux“, „GNU Linux“.

Na rozdíl od komerčních systémů (MS Windows, Mac OS X) Linux nemá geografické vývojové centrum a konkrétní organizaci, která systém vlastní. Samotný systém a programy k němu jsou výsledkem práce obrovských komunit, tisíců projektů. Kdokoli se může připojit k projektu nebo vytvořit svůj vlastní!

Závěr
Tak jsme se naučili řetězec: UNIX -> OS podobný UNIXu -> Linux.

Abych to shrnul, mohu říci, že rozdíly mezi Linuxem a UNIXem jsou zřejmé. UNIX je mnohem širší pojem, základ pro konstrukci a certifikaci všech systémů podobných UNIXu a Linux je zvláštní případ UNIXu.

Štítky: unix, linux, nix, Linux, unix

Tento článek není předmětem komentáře, protože jeho autor zatím není

Historie UNIX® začíná v roce 1969. Většina moderních UNIXových systémů jsou komerční verze původních UNIXových distribucí. Solaris od Sun, HP-UX od Hewlett-Packard, AIX® od IBM jsou nejlepšími zástupci UNIXu, kteří mají také své vlastní unikátní prvky a vlastní základní řešení. Například Sun Solaris je UNIX, ale obsahuje také mnoho nástrojů a rozšíření navržených speciálně pro pracovní stanice a servery Sun.

Linux® byl vyvinut ve snaze vytvořit bezplatnou alternativu ke komerčním prostředím UNIX. Jeho historie začíná v roce 1991 nebo dokonce 1983, kdy vznikl projekt GNU, jehož původním cílem bylo poskytnout bezplatnou alternativu k UNIXu. Linux běží na mnoha dalších platformách, jako je Intel®/AMD x86. Většina operačních systémů UNIX může běžet pouze na jedné platformě.

Linux a UNIX mají společné historické kořeny, ale existují také důležité rozdíly. Mnoho nástrojů, utilit a bezplatných aplikací, které jsou standardně dodávány s Linuxem, byly původně zamýšleny jako bezplatné alternativy k programům UNIX. Linux často poskytuje podporu pro mnoho možností a aplikací a vypůjčuje si nejlepší nebo nejoblíbenější funkce z UNIXu.

Pro administrátora nebo vývojáře, který je zvyklý pracovat s Linuxem, se může zdát, že použití systému UNIX není příliš pohodlné. Na druhou stranu základ operačního systému podobného UNIXu (nástroje, souborový systém, API) je poměrně standardizovaný. Některé detaily systémů se však mohou výrazně lišit. Tyto rozdíly budou diskutovány dále v článku.

Technické rozdíly

Vývojáři komerčních unixových distribucí spoléhají pro svůj operační systém na specifickou sadu klientů a serverovou platformu. Mají dobrou představu o tom, jakou podporu a optimalizaci aplikací je třeba implementovat. Výrobci UNIX dělají maximum pro zajištění kompatibility mezi různými verzemi. Kromě toho zveřejnili své standardy OS.

Na druhé straně vývoj GNU/Linuxu není specifický pro platformu a klienta a vývojáři GNU/Linuxu mají různé pozadí a pohledy. V linuxové komunitě neexistuje žádná přísná standardní sada nástrojů nebo rámců. K vyřešení tohoto problému byl spuštěn projekt Linux Standards Base (LSB), který však nebyl tak efektivní, jak bychom si přáli.

Tento nedostatek standardizace vede k významným nesrovnalostem v rámci Linuxu. Pro některé vývojáře je výhodou možnost používat to nejlepší z jiných operačních systémů, ale kopírování prvků UNIXu do Linuxu není vždy pohodlné, například když názvy zařízení v Linuxu mohou být převzaty z AIX, zatímco jsou zaměřeny nástroje souborového systému na HP-UX. K nekompatibilitě tohoto druhu dochází také mezi různými distribucemi Linuxu. Například Gentoo a RedHat implementují různé metody aktualizace.

Pro srovnání, každé nové vydání systému UNIX přichází s dobře zdokumentovaným popisem nových funkcí a změn v systému UNIX. Příkazy, nástroje a další prvky se mění jen zřídka a často stejné argumenty příkazového řádku pro aplikace zůstávají stejné v mnoha verzích tohoto softwaru. Když dojde k významným změnám těchto prvků, prodejci komerčních systémů UNIX často poskytují obal potřebný k zajištění kompatibility s dřívějšími verzemi nástroje.

Tato kompatibilita znamená, že nástroje a aplikace lze používat na nových verzích operačních systémů bez kontroly nebo změny jejich zdrojového kódu. Přechod na novou verzi UNIXu, která obvykle nemá žádné zásadní rozdíly od staré verze, je proto pro uživatele nebo administrátory mnohem menší námaha než přechod z jedné linuxové distribuce na druhou.

Hardwarová architektura

Většina komerčních verzí UNIXu je vytvořena pro jednu nebo malý počet hardwarových architektur. HP-UX běží pouze na platformách PA-RISC a Itanium, Solaris běží na SPARC a x86 a AIX běží pouze na procesorech POWER.

Kvůli těmto omezením mohou dodavatelé UNIXu relativně volně upravovat svůj kód pro tyto architektury a využívat všech výhod jejich architektury. Protože mají důvěrné znalosti o podporovaných zařízeních, jejich ovladače fungují lépe a nemusí se potýkat s omezeními BIOSu specifických pro PC.

Na druhou stranu Linux byl historicky navržen pro maximální kompatibilitu. Linux je dostupný na různých architekturách a počet I/O zařízení a dalších periferií, které lze s tímto OS použít, je téměř neomezený. Vývojáři nemohou předem vědět, jaký konkrétní hardware bude v počítači nainstalován, a často nemohou zajistit jeho efektivní využití. Jedním z příkladů je správa paměti v Linuxu. Dříve Linux používal model segmentované paměti původně vyvinutý pro x86. Nyní byla upravena pro použití stránkované paměti, ale stále si zachovává některé požadavky na segmentovanou paměť, což způsobuje problémy, pokud architektura segmentovanou paměť nepodporuje. Pro prodejce UNIX to není problém. Přesně vědí, na jakém hardwaru jejich UNIX poběží.

Jádro

Jádro je srdcem operačního systému. Zdrojový kód jádra komerčních unixových distribucí je majetkem jejich vývojářů a není distribuován mimo společnost. U Linuxu je situace zcela opačná. Postupy pro kompilaci a záplatování jader a ovladačů se velmi liší. Pro Linux a další operační systémy s otevřeným zdrojovým kódem lze opravu vydat ve formě zdrojového kódu a koncový uživatel ji může nainstalovat, otestovat a dokonce upravit. Tyto záplaty obvykle nejsou tak důkladně testovány jako záplaty od komerčních prodejců OS UNIX. Protože neexistuje žádný úplný seznam aplikací a prostředí, které musí být testovány, aby správně fungovaly na Linuxu, vývojáři Linuxu závisí na koncových uživatelích a dalších vývojářích, aby zachytili chyby.

Prodejci komerčních unixových distribucí uvolňují jádra pouze jako spustitelný kód. Některá vydání jsou monolitická, zatímco jiná umožňují aktualizovat pouze konkrétní modul jádra. Ale v každém případě je toto vydání poskytováno pouze ve formě spustitelného kódu. Je-li nutná aktualizace, musí správce počkat, až prodejce uvolní opravu v binárním kódu, ale může se uklidnit tím, že dodavatel důkladně zkontroluje zpětnou kompatibilitu jejich opravy.

Všechny komerční verze UNIXu se do určité míry vyvinuly v modulární jádro. Ovladače a jednotlivé funkce operačního systému jsou k dispozici jako samostatné součásti a lze je podle potřeby načíst nebo uvolnit z jádra. Ale otevřená modulární architektura Linuxu je mnohem flexibilnější. Flexibilita a přizpůsobivost Linuxu však také znamená neustálé změny. Zdrojový kód Linuxu se neustále mění a podle rozmaru vývojáře se může měnit i API. Když je modul nebo ovladač napsán pro komerční verzi UNIXu, vydrží mnohem déle než stejný ovladač pro Linux.

Podpora souborového systému

Jedním z důvodů, proč se Linux stal tak výkonným operačním systémem, je jeho široká kompatibilita s jinými operačními systémy. Jednou z nejviditelnějších vlastností je množství dostupných souborových systémů. Většina komerčních verzí systému UNIX podporuje dva nebo tři typy systémů souborů. Linux však podporuje většinu moderních souborových systémů. ukazuje, které systémy souborů jsou podporovány OS UNIX. Kterýkoli z těchto souborových systémů lze připojit na Linux, i když ne všechny tyto systémy plně podporují čtení a zápis dat.

Tabulka 1. Souborové systémy, které jsou standardní pro UNIX

Většina komerčních verzí UNIXu podporuje žurnálování souborových systémů. Například HP-UX používá jako svůj standardní souborový systém hfs, ale podporuje také žurnálovací souborový systém vxfs. Solaris podporuje ufs a zfs. Žurnálovaný souborový systém je nezbytnou součástí jakéhokoli podnikového serverového prostředí. Linux byl pozdním osvojitelem podpory žurnálovacích souborových systémů, ale nyní existuje několik možností, od klonů komerčních souborových systémů (xfs, jfs) po linuxové specifické souborové systémy (ext3, reiserfs).

Mezi další funkce souborových systémů patří podpora kvót, seznamy řízení přístupu k souborům, zrcadlení, systémové snímky a změna velikosti. Jsou v té či oné podobě podporovány systémy souborů Linux. Většina těchto funkcí není v Linuxu standardní. Některé funkce mohou fungovat na jednom systému souborů, zatímco jiné budou vyžadovat jiný systém souborů. Některé z těchto funkcí jednoduše nejsou dostupné na určitých souborových systémech Linuxu, zatímco jiné vyžadují instalaci dalšího nástroje, jako je konkrétní verze LVM nebo podpora diskových polí (balíček softwarových raidů). Historicky měl Linux potíže s dosažením kompatibility mezi programovacími rozhraními a standardními nástroji, takže mnoho souborových systémů implementuje tyto funkce odlišně.

Protože komerční systémy UNIX podporují omezený počet souborových systémů, jejich nástroje a techniky pro práci s nimi jsou standardizovanější. Protože například Irix podporoval pouze jeden hlavní souborový systém, existoval pouze jeden způsob, jak definovat seznamy řízení přístupu. To je mnohem pohodlnější pro koncového uživatele a pro další podporu tohoto OS.

Dostupnost aplikace

Většina základních aplikací je stejná na UNIXu i Linuxu. Například příkazy cp , ls , vi a cc jsou dostupné v systémech UNIX a Linux a jsou velmi podobné, ne-li přesně totožné. Linuxové verze těchto nástrojů jsou založeny na GNU verzích těchto nástrojů, zatímco UNIXové verze těchto nástrojů jsou založeny na tradičních UNIXových nástrojích. Tyto UNIXové nástroje mají dlouhou historii a jen zřídka se měnily.

To ale neznamená, že komerční verze UNIXu nelze používat s nástroji GNU. Ve skutečnosti mnoho komerčních prodejců OS UNIX zahrnuje do svých distribucí mnoho nástrojů GNU nebo je nabízí jako bezplatné doplňky. Nástroje GNU nejsou jen standardní nástroje. Některé z těchto bezplatných nástrojů nemají žádné komerční ekvivalenty (emacs nebo Perl). Většina výrobců tyto programy předinstalovává a buď se instalují automaticky se systémem, nebo jsou k dispozici jako další součást.

Bezplatné a open source aplikace jsou téměř vždy zabudovány do všech distribucí Linuxu. Pro Linux je k dispozici velké množství svobodného softwaru a mnoho z těchto aplikací bylo přeneseno do komerčních verzí OS UNIX.

Komerční a/nebo uzavřené aplikace (CAD, finanční programy, grafické editory) nemusí mít v Linuxu ekvivalenty. Ačkoli někteří výrobci uvolňují verze svých aplikací pro Linux, většina výrobců s tím váhá, dokud se Linux nestane mezi uživateli populárnější.

Na druhou stranu komerční verze UNIXu historicky podporovaly velké množství podnikových aplikací, jako je Oracle nebo SAP. Linux velmi trpí kvůli potížím s certifikací velkých aplikací, zatímco komerční verze UNIXu se od vydání k vydání příliš nemění. Linux se může hodně změnit nejen s každou novou distribucí, ale někdy i mezi vydáními stejné distribuce. Pro výrobce softwaru je proto velmi obtížné přesně pochopit, v jakém prostředí bude jeho aplikace používána.

Správa systému

Ačkoli některé linuxové distribuce přicházejí se standardní sadou nástrojů pro správu systému, jako je YaST od SUSE, neexistuje žádný společný linuxový standard pro nástroje pro správu systému. Textové soubory a nástroje příkazového řádku jsou k dispozici, ale jejich použití může být někdy těžkopádné. Každá komerční verze UNIX má své vlastní rozhraní pro správu systému. Pomocí tohoto rozhraní můžete spravovat a měnit prvky systému. Níže je uveden příklad Správce správy systému pro HP-UX.

Tento SAM obsahuje následující moduly:

  • Uživatelé nebo skupiny ke správě.
  • Parametry jádra, které lze změnit.
  • Konfigurace sítě.
  • Nastavení a inicializace disků.
  • Konfigurace X serveru.

Kvalita tohoto balíčku nástrojů je vynikající a tento balíček nástrojů dobře spolupracuje s textovými soubory. Pro Linux neexistuje ekvivalent tohoto nástroje. Dokonce ani YaST v SUSE nemá stejnou funkcionalitu.

Dalším aspektem UNIXu a Linuxu, který se podle všeho mění s téměř každou verzí OS, je umístění systémových init skriptů. Naštěstí /sbin/init a /etc/inittab jsou standardní adresáře. Ale spouštěcí skripty systému jsou umístěny v různých adresářích. zobrazuje umístění, kde jsou uloženy inicializační skripty systému pro různé distribuce UNIX a Linux.

Tabulka 2. Umístění inicializačních skriptů systému pro různé verze systému UNIX
HP-UX/sbin/init.d
AIX/etc/rc.d/init.d
Irix/etc/init.d
Solaris/etc/init.d
Červená čepice/etc/rc.d/init.d
SUSE/etc/rc.d/init.d
Debian/etc/init.d
Slackware/etc/rc.d

Vzhledem k velkému počtu linuxových distribucí a téměř nekonečnému počtu aplikací dostupných (i s mnoha verzemi této aplikace) pro tento OS se správa programů na Linuxu stává obtížným úkolem. Výběr správného nástroje závisí na tom, s jakou distribucí pracujete. Další nepříjemnost pramení ze skutečnosti, že některé distribuce používají formát souborů Redhat Package Manager (RPM), zatímco jejich programy jsou nekompatibilní. Toto oddělení má za následek obrovské množství možností práce s balíčky a není vždy jasné, jaký systém je v konkrétním prostředí použit.

Na druhou stranu komerční UNIXové distribuce obsahují standardní správce balíčků. Přestože existují různé verze aplikací a specifické formáty pro různé verze UNIXu, prostředí správy aplikací je stejné. Například Solaris od svého vzniku používá stejné nástroje pro správu balíků aplikací. A s největší pravděpodobností zůstanou prostředky identifikace, přidávání nebo odebírání softwarových balíků v Solarisu nezměněny.

Výrobci komerčních unixových distribucí také dodávají hardware, pro který je jejich OS navržen, takže mohou do svého OS zavádět nová zařízení, což je s Linuxem mnohem obtížnější. Například v posledních verzích Linuxu došlo k pokusům implementovat podporu pro komponenty vyměnitelné za provozu (s různou mírou úspěchu). Komerční verze UNIXu mají tuto schopnost již mnoho let. Komerční verze UNIXu mají také lepší monitorování hardwaru než Linux. Výrobci mohou zapsat ovladače a implementovat je do svého operačního systému, který bude sledovat stav systému, jako je počet chyb paměti ECC, parametry spotřeby energie nebo jakékoli jiné hardwarové komponenty. Tento druh podpory pro Linux se očekává až ve vzdálené budoucnosti.

Hardware pro komerční systémy UNIX má také pokročilejší možnosti spouštění. Před spuštěním operačního systému existuje mnoho možností, jak nakonfigurovat, jak se bude spouštět, zkontrolovat stav systému nebo upravit nastavení hardwaru. BIOS standardního PC má několik těchto možností, pokud vůbec nějaké.

Podpěra, podpora

Jedním z nejvýznamnějších rozdílů mezi Linuxem a UNIXem je cena. Prodejci komerčních systémů UNIX nastavili za svůj UNIX vysokou cenu, i když jej lze použít pouze s jejich hardwarovými platformami. Linuxové distribuce jsou na druhou stranu relativně levné, ne-li zdarma.

Když si zakoupíte komerční verzi systému UNIX, výrobci obvykle poskytují technickou podporu. Většina uživatelů Linuxu nemá podporu od výrobce OS. Podporu mohou získat pouze prostřednictvím e-mailu, fór a různých komunit uživatelů Linuxu. Tyto skupiny však nejsou určeny pouze uživatelům Linuxu. Mnoho správců komerčních operačních systémů UNIX se účastní těchto otevřených skupin podpory, aby mohli poskytnout pomoc a v případě potřeby ji využít. Mnoho lidí považuje tyto svépomocné skupiny za ještě užitečnější než systém podpory nabízený výrobcem OS.

Závěr

Základy UNIXu a Linuxu jsou velmi podobné. Pro uživatele nebo správce systému přinese přechod z Linuxu na UNIX určité nepříjemnosti, ale celkově bude přechod bezbolestný. I když se jejich systémy souborů a jádra liší a jejich zvládnutí nějakou dobu trvá, nástroje a API zůstávají stejné. Obecně platí, že tyto rozdíly nejsou o nic významnější než rozdíly mezi hlavními verzemi UNIXu. Všechny větve UNIXu a Linuxu se postupně vyvíjejí a budou se od sebe mírně lišit, ale vzhledem k vyspělosti unixových konceptů se základy OS příliš nezmění.

UNIX vznikl v Bell Labs společnosti AT&T před více než 20 lety.

UNIX je víceuživatelský, víceúlohový OS, který zahrnuje poměrně výkonné prostředky k ochraně programů a souborů různých uživatelů. Je napsán v jazyce C a je strojově nezávislý, což zajišťuje jeho vysokou mobilitu a snadnou přenositelnost aplikačních programů na PC různých architektur. Důležitým rysem rodiny operačních systémů UNIX je modularita a rozsáhlá sada obslužných programů, které umožňují vytvořit příznivé operační prostředí pro uživatele programátorů.

Podporuje hierarchickou strukturu souborů, virtuální paměť, rozhraní s více okny, víceprocesorové systémy, systém správy databází pro více uživatelů, heterogenní počítačové sítě.

UNIX OS má následující hlavní vlastnosti:

Přenosnost;

- Preemptivní multitasking založené na procesech běžících v izolovaných adresových prostorech ve virtuální paměti;

Podporuje současnou práci mnoha uživatelů;

Podpora asynchronních procesů;

Hierarchický souborový systém;

Podpora I/O operací nezávislých na zařízení (prostřednictvím speciálních souborů zařízení);

Standardní rozhraní pro programy (programové kanály, IPC) a uživatele (interpret příkazů, není součástí jádra OS);

Vestavěné nástroje pro účtování využití systému.

Architektura OS UNIX- víceúrovňové. Pracuje na nižší úrovni jádro operační systém. Funkce jádra (správa procesů, správa paměti, obsluha přerušení atd.) jsou přístupné prostřednictvím rozhraní systémového volání, tvořící druhou úroveň. Systémová volání poskytují softwarové rozhraní pro přístup k procedurám jádra. Na další úrovni fungují příkazové tlumočníky , příkazy a utility pro správu systému, komunikaci Řidiči A protokoly , - vše, co se obvykle připisuje systémový software . Vnější úroveň je tvořena aplikační programy uživatelské, síťové a další komunikační služby, DBMS a utility.

Operační systém plní dva hlavní úkoly: manipulaci s daty a jejich ukládání. Většina programů primárně manipuluje s daty, ale nakonec jsou někde uložena. V systému UNIX je toto umístění úložiště souborový systém. Navíc v UNIXu všechna zařízení, se kterými operační systém pracuje, jsou také prezentovány jako speciální soubory v souborovém systému.

Logický souborový systém v OS UNIX (nebo jednoduše souborový systém ) je hierarchicky organizovaná struktura všech adresářů a souborů v systému, počínaje vykořenit katalog. Souborový systém UNIX poskytuje jednotné rozhraní pro přístup k datům umístěným na různých médiích a k periferním zařízením. Logický souborový systém se může skládat z jednoho nebo více fyzické souborové (sub)systémy, což jsou části fyzických médií (disky, CD-ROM nebo diskety).


Systém souborů řídí oprávnění k souborům, provádí operace vytváření a mazání souborů a zapisuje/čte data souborů. Souborový systém zajišťuje přesměrování požadavků adresovaných periferním zařízením odpovídajícím modulům I/O subsystému.

Hierarchická struktura souborového systému UNIX usnadňuje navigaci. Každý adresář počínaje kořenem ( / ), obsahuje soubory a podadresáře.

V UNIXu neexistují žádná teoretická omezení na počet podadresářů, ale existují omezení na maximální délku názvu souboru, který je uveden v příkazech - 1024 znaků.

V UNIXu existuje několik typů souborů, které se liší funkčností:

Běžný soubor - Nejběžnější typ souboru, který obsahuje data v nějakém formátu. Pro operační systém jsou takové soubory jednoduše sekvencí bajtů. Tyto soubory zahrnují textové soubory, binární data a spustitelné programy.

Katalog- toto je soubor obsahující názvy souborů v něm obsažených a také odkazy na další informace, které operačnímu systému umožňují provádět akce s těmito soubory. Adresáře se používají k vytvoření logického stromu systému souborů.

Speciální soubor zařízení - Poskytuje přístup k fyzickým zařízením. Zařízení jsou přístupná otevřením, čtením a zápisem do speciálního souboru zařízení.

FIFO - pojmenovaná dýmka. Tento soubor se používá pro komunikaci mezi procesy na základě fronty.

Zásuvka- umožňují reprezentovat síťové připojení jako soubor.

Každý soubor v systému UNIX obsahuje sadu oprávnění, která určují, jak uživatel se souborem interaguje.

Každý pevný disk se skládá z jedné nebo více logických částí – oddílů. Umístění a velikost oddílu se určuje při formátování disku. V UNIXu fungují oddíly jako nezávislá zařízení, ke kterým se přistupuje jako k různým úložným médiím. Sekce může obsahovat pouze jednu fyzický souborový systém.

Existuje mnoho typů fyzických souborových systémů, jako jsou FAT16 a NTFS, s různými strukturami. Kromě toho existuje mnoho typů fyzických souborových systémů UNIX ( ufs, s5fs, ext2, vxfs, jfs, ffs atd.).

Navíc každý z nich může provádět mnoho různých výpočetních procesů, které budou využívat zdroje tohoto konkrétního počítače.

Druhou kolosální předností Unixu je jeho multiplatformní charakter. Jádro systému je navrženo tak, že jej lze snadno přizpůsobit téměř každému mikroprocesoru.

Unix má další charakteristické vlastnosti:

  • používání jednoduchých textových souborů pro konfiguraci a správu systému;
  • široké použití nástrojů spouštěných z příkazového řádku;
  • interakce s uživatelem prostřednictvím virtuálního zařízení – terminálu;
  • reprezentace fyzických a virtuálních zařízení a některých prostředků meziprocesové komunikace ve formě souborů;
  • pomocí kanálů několika programů, z nichž každý provádí jeden úkol.

aplikace

Unixové systémy jsou v současnosti běžné především mezi servery, ale také jako vestavěné systémy pro různý hardware, včetně smartphonů. Na superpočítačích také dominují unixové systémy, konkrétně 100 % superpočítačů z hodnocení TOP500 má nainstalovaný OS Linux.

První verze Unixu byly napsány v jazyce symbolických instrukcí a neměly vestavěný překladač jazyka na vysoké úrovni. Kolem roku 1969 Ken Thompson s pomocí Dennise Ritchieho vyvinul a implementoval jazyk Bi (B), což byla zjednodušená verze (pro implementaci na minipočítačích) jazyka BCPL vyvinutého v tomto jazyce. Bi, stejně jako BCPL, byl interpretovaný jazyk. Vyšlo v roce 1972 druhé vydání Unix přepsán v jazyce Bi. V letech 1969-1973 Na základě Bi byl vyvinut kompilovaný jazyk nazvaný C (C).

Rozdělit

Důležitým důvodem pro rozdělení Unixu byla implementace zásobníku protokolů TCP/IP v roce 1980. Předtím byla komunikace mezi stroji v Unixu v plenkách - nejvýznamnější způsob komunikace byl UUCP (prostředek pro kopírování souborů z jednoho unixového systému do druhého, který původně fungoval přes telefonní sítě pomocí modemů).

Byla navržena dvě rozhraní pro programování síťových aplikací: Berkley sockets a TLI (Transport Layer Interface).

Rozhraní soketů Berkley bylo vyvinuto na univerzitě v Berkeley a využívalo tam vyvinutý zásobník protokolů TCP/IP. TLI bylo vytvořeno společností AT&T podle definice transportní vrstvy modelu OSI a poprvé se objevilo ve verzi System V 3. Tato verze sice obsahovala TLI a streamy, ale zpočátku neměla implementaci TCP/IP ani jiných síťových protokolů, ale např. implementace byly poskytnuty třetími stranami .

Implementace TCP/IP byla oficiálně a definitivně zařazena do základní distribuce System V verze 4. To spolu s dalšími ohledy (většinou tržními) způsobilo konečné vymezení mezi dvěma větvemi Unixu - BSD (Berkeley University) a System V (komerční verze od AT&T). Následně mnoho společností, které získaly licenci System V od AT&T, vyvinulo své vlastní komerční varianty Unixu, jako je AIX, CLIX, HP-UX, IRIX, Solaris.

Moderní implementace Unixu obecně nejsou čisté systémy V nebo BSD. Implementují funkce System V i BSD.

Bezplatné operační systémy podobné Unixu

V současné době GNU/Linux a členové rodiny BSD rychle přebírají trh z komerčních unixových systémů a současně pronikají jak do stolních počítačů koncových uživatelů, tak do mobilních a vestavěných systémů.

Proprietární systémy

Po rozdělení AT&T se ochranná známka Unix a práva na původní zdrojový kód několikrát změnily, zejména dlouho patřily Novellu.

Vliv Unixu na vývoj operačních systémů

Unixové systémy mají velký historický význam, protože daly vzniknout některým konceptům a přístupům OS a softwaru, které jsou dnes populární. Také během vývoje unixových systémů vznikl jazyk C.

Jazyk C, který je široce používán v systémovém programování, původně vytvořený pro vývoj Unixu, překonal Unix v popularitě. Jazyk C byl prvním „tolerantním“ jazykem, který se nesnažil programátorovi vnutit ten či onen programovací styl. C byl první vysokoúrovňový jazyk, který poskytoval přístup ke všem funkcím procesoru, jako jsou odkazy, tabulky, bitové posuny, přírůstky atd. Na druhou stranu, svoboda jazyka C vedla k chybám přetečení vyrovnávací paměti ve funkcích standardní knihovny C jako get a scanf. Výsledkem bylo mnoho notoricky známých zranitelností, jako je ta, kterou využívá slavný červ Morris.

První vývojáři Unixu pomohli zavést principy modulárního programování a opětovného použití do inženýrské praxe.

Unix umožnil používat protokoly TCP/IP na relativně levných počítačích, což vedlo k rychlému růstu internetu. To zase přispělo k rychlému odhalení několika hlavních zranitelností v zabezpečení, architektuře a systémových utilitách Unixu.

Postupem času přední unixoví vývojáři vyvinuli kulturní normy pro vývoj softwaru, které se staly stejně důležité jako Unix samotný. ( )

Některé z nejznámějších příkladů operačních systémů podobných Unixu jsou macOS, Solaris, BSD a NeXTSTEP.

Sociální role v komunitě IT profesionálů a historická role

Původní Unixy běžely na velkých víceuživatelských počítačích, které také nabízely proprietární OS od výrobce hardwaru, jako je RSX-11 a jeho potomek VMS. Navzdory tomu, že podle řady názorů [ jehož?] Tehdejší Unix měl oproti těmto OS nevýhody (např. nedostatek seriózních databázových strojů), byl: a) levnější a někdy zdarma pro akademické instituce; b) byl přenosný ze zařízení na zařízení a byl vyvinut v přenosném jazyce C, který „oddělil“ vývoj programů od konkrétního zařízení. Navíc se ukázalo, že uživatelská zkušenost byla „odpojena“ od hardwaru a výrobce - člověk, který pracoval s Unixem na VAX, s ním mohl snadno pracovat na 68xxx a tak dále.

Výrobci hardwaru v té době měli často chladný přístup k Unixu, považovali ho za hračku a nabízeli svůj proprietární OS pro seriózní práci - především DBMS a na nich založené obchodní aplikace v komerčních strukturách. Jsou známy komentáře k této záležitosti od DEC ohledně jeho VMS. Korporace na to poslouchaly, nikoli však akademické prostředí, které mělo v Unixu vše, co potřebovalo, často nevyžadovalo oficiální podporu výrobce, řídilo se samo a cenilo si nízkou cenu a přenositelnost Unixu. Unix byl tedy možná prvním OS přenositelným na jiný hardware.

Druhým velkým vzestupem Unixu bylo zavedení procesorů RISC kolem roku 1989. Ještě před tím existovaly tzv. pracovní stanice jsou vysoce výkonné osobní jednouživatelské počítače, které mají dostatečnou paměť, pevný disk a dostatečně vyvinutý OS (multitasking, ochrana paměti) pro práci se seriózními aplikacemi, jako je CAD. Mezi výrobci takových strojů vyčnívala Sun Microsystems, která si na nich udělala jméno.

Před příchodem procesorů RISC tyto stanice obvykle používaly procesor Motorola 680x0, stejný jako v počítačích Apple (i když s pokročilejším operačním systémem než Apple). Kolem roku 1989 se na trhu objevily komerční implementace procesorů architektury RISC. Logickým rozhodnutím řady společností (Sun a dalších) bylo portovat Unix na tyto architektury, což okamžitě znamenalo převod celého softwarového ekosystému pro Unix.

Proprietární seriózní operační systémy, jako je VMS, započaly svůj úpadek právě od tohoto okamžiku (i když bylo možné převést samotný OS na RISC, vše bylo mnohem složitější s aplikacemi pro něj, které byly v těchto ekosystémech často vyvíjeny v jazyce symbolických instrukcí). nebo v proprietárních jazycích jako BLISS) a Unix se stal OS pro nejvýkonnější počítače na světě.

V této době se však ekosystém začal přesouvat do GUI v podobě Windows 3.0. Obrovské výhody GUI a také například jednotnou podporu pro všechny typy tiskáren ocenili vývojáři i uživatelé. To značně podkopalo pozici Unixu na trhu PC – implementace jako SCO a Interactive UNIX nebyly schopny podporovat aplikace Windows. Pokud jde o GUI pro Unix, nazvané X11 (existovaly i jiné implementace, mnohem méně oblíbené), nemohlo kvůli paměťovým nárokům plně fungovat na běžném uživatelském PC - pro běžný provoz potřeboval X11 16 MB, zatímco Windows 3.1 s ním fungoval dostatečně dobře spustit současně Word i Excel v 8 MB (to byla standardní velikost paměti PC v té době). Při vysokých cenách pamětí to byl limitující faktor.

Úspěch Windows dal impuls internímu projektu Microsoftu s názvem Windows NT, který byl API kompatibilní s Windows, ale zároveň měl všechny stejné architektonické rysy seriózního OS jako Unix – multitasking, plnou ochranu paměti, podporu pro víceprocesorové stroje, přístupová práva k souborům a adresářům, systémový log. Windows NT také představil žurnálovaný souborový systém NTFS, který v té době svými schopnostmi převyšoval všechny souborové systémy standardně dodávané s Unixem - analogy pro Unix byly pouze samostatnými komerčními produkty od Veritas a dalších.

Ačkoli Windows NT nebyl zpočátku populární, kvůli vysokým nárokům na paměť (stejných 16 MB), umožnil společnosti Microsoft vstoupit na trh serverových řešení, jako jsou systémy pro správu databází. Mnozí v té době nevěřili, že Microsoft, tradičně softwarová společnost pro stolní počítače, může být hráčem na trhu podnikového softwaru, který už měl velká jména jako Oracle a Sun. K těmto pochybnostem přispěla skutečnost, že Microsoft DBMS - SQL Server - začal jako zjednodušená verze Sybase SQL Server, licencovaná od Sybase a 99% kompatibilní ve všech aspektech práce s ním.

V druhé polovině 90. let začal Microsoft na trhu podnikových serverů tlačit Unix.

Kombinace výše uvedených faktorů, stejně jako propad cen 3D video ovladačů, které přešly od profesionálního vybavení k domácímu vybavení, v podstatě zabily samotný koncept pracovní stanice na počátku 21. století.

Systémy Microsoft se navíc snáze spravují, zejména v případech běžného použití.

Ale v tuto chvíli začal třetí prudký vzestup Unixu.

Stallman a jeho soudruzi si navíc dobře uvědomovali, že proprietární vývojové nástroje nejsou vhodné pro úspěch nefiremního softwaru. Proto vyvinuli sadu kompilátorů pro různé programovací jazyky (gcc), které spolu s dříve vyvinutými GNU utilitami (nahrazujícími standardní unixové utility) tvořily pro vývojáře nezbytný a poměrně výkonný softwarový balík.

Vážným konkurentem Linuxu v té době bylo FreeBSD, nicméně „katedrální“ styl řízení vývoje na rozdíl od „bazarového“ stylu Linuxu, stejně jako mnohem větší technický archaismus v otázkách, jako je podpora víceprocesorových strojů a spustitelných souborů. formátů, značně zpomalil vývoj FreeBSD ve srovnání s Linuxem, čímž se stal vlajkovou lodí světa svobodného softwaru.

Následně Linux dosahoval nových a nových výšin:

  • převod seriózních proprietárních produktů, jako je Oracle;
  • vážný zájem IBM o tento ekosystém jako základ pro její vertikální řešení;
  • vznik analogů téměř všech známých programů ze světa Windows;
  • odmítnutí některých výrobců zařízení vyžadovat předinstalaci Windows;
  • vydání netbooků pouze s Linuxem;
  • použít jako jádro v Androidu.

V současné době je Linux zaslouženě oblíbeným operačním systémem pro servery, i když mnohem méně populární na desktopech.

Některé architektonické prvky operačního systému Unix

Vlastnosti Unixu, které odlišují tuto rodinu od jiných operačních systémů, jsou uvedeny níže.

  • Systém souborů je stromový, rozlišuje velká a malá písmena v názvech a existují velmi slabá omezení týkající se délky jmen a cest.
  • Jádro OS nepodporuje strukturované soubory, na úrovni systémového volání je soubor proudem bajtů.
  • Příkazový řádek je v adresovém prostoru spuštěného procesu a není načten systémovým voláním z procesu příkazového interpretu (jak se to děje například v RSX-11).
  • Pojem "proměnné prostředí".
  • Spouštění procesů voláním fork(), tedy schopností klonovat aktuální proces s celým stavem.
  • Koncepty stdin/stdout/stderr.
  • I/O je pouze přes deskriptory souborů.
  • Tradičně extrémně slabá podpora pro asynchronní I/O ve srovnání s VMS a Windows NT.
  • Příkazový interpret je běžná aplikace, která komunikuje s jádrem pomocí běžných systémových volání (v RSX-11 a VMS byl příkazový interpret spouštěn jako speciální aplikace, speciálně umístěná v paměti, pomocí speciálních systémových volání; byla podporována i systémová volání, povolení aplikace přistupovat k příkazům nadřazeného tlumočníka).
  • Příkaz z příkazového řádku není nic jiného než název souboru programu, není vyžadována žádná speciální registrace nebo speciální vývoj programů jako příkazů (což byla běžná praxe u RSX-11, RT-11).
  • Přístup s programem, který se ptá uživatele na své provozní režimy, není akceptován, místo toho se používají parametry příkazového řádku (ve VMS, RSX-11, RT-11 programy také pracovaly s příkazovým řádkem, ale v jeho nepřítomnosti vyzváni k zadání parametrů).
  • Jmenný prostor diskového zařízení v adresáři /dev, který může spravovat administrátor, na rozdíl od přístupu Windows, kde je jmenný prostor umístěn v paměti jádra a správa tohoto prostoru (například nastavení přístupových práv) je extrémně obtížná. na nedostatek trvalého uložení na disky (vytvořené při každém spuštění).
  • Rozsáhlé používání textových souborů k ukládání nastavení, na rozdíl od databáze binárních nastavení, jako je tomu ve Windows.
  • Rozsáhlé používání nástrojů pro zpracování textu k provádění každodenních úkolů pod kontrolou skriptů.
  • „Propagace“ OS po načtení jádra spuštěním skriptů pomocí standardního příkazového interpretu.
  • Široké použití

První Význam tohoto termínu spočívá na zvážení struktur, do kterých lze soubory na paměťových médiích organizovat. Existuje několik typů takových struktur: lineární, stromové, objektové a další, ale v současné době jsou široce používány pouze stromové struktury.

Každý soubor ve stromové struktuře je umístěn v určitém úložišti souborů - katalog, každý adresář je zase umístěn v určitém adresáři. Podle principu vnořování prvků souborového systému (souborů a adresářů) do sebe se tedy sestaví strom, jehož vrcholy jsou neprázdné adresáře a listy jsou soubory nebo prázdné adresáře. Kořen takového stromu se nazývá kořenový adresář a je označeno nějakým speciálním znakem nebo skupinou znaků (například „C:“ v operačním systému Windows). Každý soubor odpovídá nějakému název, definující jeho umístění ve stromu souborového systému. Úplný název souboru se skládá z názvů všech vrcholů stromu souborového systému, přes které je možné procházet z kořene do daného souboru (adresáře), zapisovat je zleva doprava a oddělovat je speciálními oddělovacími znaky.

V současné době existuje obrovské množství souborových systémů, z nichž každý se používá pro určitý účel: pro rychlý přístup k datům, pro zajištění integrity dat v případě selhání systému, pro snadnou implementaci, pro kompaktní ukládání dat atd. Mezi celou řadou souborových systémů však můžeme rozlišit ty, které mají řadu podobných vlastností, a to:

Soubory a adresáře nejsou identifikovány jmény, ale podle indexové uzly (i-node) – indexy v obecném poli souborů pro daný souborový systém. Toto pole ukládá informace o použitých datových blocích na médiu, stejně jako délku souboru, vlastníka souboru, přístupová práva a další servisní informace pod obecným názvem „ metadata o souboru" Logická spojení jako „name–i-node“ nejsou nic jiného než obsah adresářů.

Každý soubor je tedy charakterizován jedním i-uzlem, ale může být spojen s několika jmény - v UNIXu se tomu říká pevné odkazy (Viz obrázek 1.22 – „Příklad pevného odkazu“). V tomto případě je soubor odstraněn, když je odstraněn poslední pevný odkaz na tento soubor.

Důležitou vlastností takových souborových systémů je, že názvy souborů rozlišují velká a malá písmena, jinými slovy, soubory test.txt a TEST.txt se liší (tj. jsou to různé řádky v souboru adresáře).

V určitých (pro daný souborový systém pevně stanovených) blocích fyzického paměťového média se nachází tzv. superblok. Superblok je nejkritičtější oblastí souborového systému, která obsahuje informace pro provoz souborového systému jako celku i pro jeho identifikaci. Superblok obsahuje " magické číslo" – identifikátor systému souborů, který jej odlišuje od jiných systémů souborů, seznam volných bloků, seznam volných i-uzlů a některé další informace o službě.

  • kromě katalogy A běžné soubory pro ukládání informací může FS obsahovat následující typy souborů:

    Speciální soubor zařízení

    Poskytuje přístup k fyzickému zařízení. Při vytváření takového zařízení je určen typ zařízení (blok nebo znak). seniorské číslo – index ovladače v tabulce ovladačů operačního systému a juniorské číslo – parametr předaný ovladači, který podporuje více zařízení, aby bylo jasné, o jakém „podzařízení“ mluvíme (například o kterém z několika zařízení IDE nebo COM portech).

    Pojmenovaná dýmka Symbolický odkaz

    Zvláštní typ souboru, jehož obsahem nejsou data, ale název nějakého jiného souboru (viz Obrázek 1.23 – „Příklad symbolického odkazu.“ Pro uživatele je takový soubor nerozeznatelný od souboru, na který odkazuje.

    Symbolický odkaz má oproti pevnému odkazu řadu výhod: lze jej použít k propojení souborů v různých souborových systémech (ostatně čísla inodů jsou jedinečná pouze v rámci jednoho souborového systému) a mazání souborů je také transparentnější – odkaz může být odstraněn zcela nezávisle na hlavním souboru.

    Zásuvka
  • Takové souborové systémy zdědí vlastnosti původního UNIXu. Patří mezi ně například: s5 (používá se ve verzích UNIX System V), ufs (BSD UNIX), ext2, ext3, reiserfs (Linux), qnxfs (QNX). Všechny tyto systémy souborů se liší ve formátech svých vnitřních struktur, ale jsou kompatibilní z hlediska základních konceptů.

    Strom adresářů

    Ohleduplnost druhý Význam pojmu FS nás vede k dříve definovanému souboru postupů, které přistupují k souborům na různých médiích. Rysem rodiny operačních systémů UNIX je existence jediného stromu souborového systému pro libovolný počet úložných médií se stejnými nebo různými typy systémů souborů. Toho je dosaženo pomocí montáž – dočasné nahrazení adresáře jednoho souborového systému stromem jiného souborového systému, v důsledku čehož systém nemá několik stromů, které spolu nijak nesouvisí, ale jeden velký rozvětvený strom s jedním kořenovým adresářem .

    Souborový subsystém operačního systému UNIX má jedinečný systém pro zpracování požadavků na soubory - přepínač souborového systému nebo virtuální souborový systém (VFS). VFS poskytuje uživateli standardní sadu funkcí (rozhraní) pro práci se soubory bez ohledu na jejich umístění a příslušnost k různým souborovým systémům.

    Ve světě standardů UNIX je stanoveno, že kořenový adresář jednoho stromu souborového systému musí být pojmenován / , stejně jako oddělovací znak při vytváření plně kvalifikovaného názvu souboru. Úplný název souboru pak může být například /usr/share/doc/bzip2/README . Úkolem VFS je najít jeho umístění ve stromu souborového systému pomocí úplného názvu souboru, určit jeho typ na tomto místě ve stromu a „přepnout“, tzn. přenést soubor k dalšímu zpracování do ovladače konkrétního souborového systému. Tento přístup umožňuje používat téměř neomezené množství různých souborových systémů na jednom počítači s jedním operačním systémem a uživatel ani nepozná, že soubory jsou fyzicky umístěny na různých paměťových médiích.

    Použití společných názvů hlavních souborů a adresářové struktury značně usnadňuje práci v operačním systému, jeho správu a přenositelnost. Některé z těchto struktur se používají při startu systému, některé se používají během provozu, ale všechny mají velký význam pro OS jako celek a porušení této struktury může vést k nefunkčnosti systému nebo jeho jednotlivých komponent.

    Obrázek 1.24. Standardní adresáře v systému souborů UNIX

    Zde je stručný popis hlavních adresářů systému, formálně popsaných speciálním standardem pro hierarchie souborového systému (Standard hierarchie souborového systému). Všechny adresáře lze rozdělit do dvou skupin: pro statické (zřídka se měnící) informace - /bin, /usr a dynamické (často se měnící) informace - /var, /tmp. Na základě toho mohou administrátoři umístit každý z těchto adresářů na vlastní médium s odpovídajícími vlastnostmi.

    Kořenový adresář

    Kořenový adresář / je základem jakéhokoli souborového systému UNIX. Všechny ostatní adresáře a soubory jsou umístěny ve struktuře (stromu) generované kořenovým adresářem, bez ohledu na jejich fyzické umístění.

    /zásobník

    Tento adresář obsahuje často používané příkazy a nástroje veřejného systému. To zahrnuje všechny základní příkazy, které jsou dostupné, i když byl připojen pouze kořenový souborový systém. Příklady takových příkazů jsou: ls , cp , sh a tak dále..

    /boot

    Adresář obsahuje vše potřebné pro proces spouštění operačního systému: program bootloader, obraz jádra operačního systému atd.

    /dev

    Adresář obsahuje speciální soubory zařízení, které slouží jako přístupové rozhraní k periferním zařízením. Mít takový adresář neznamená, že speciální soubory zařízení nelze vytvářet jinde, jen je vhodné mít jeden adresář pro všechny soubory tohoto typu.

    /atd

    Tento adresář obsahuje konfigurační soubory systému. Příklady zahrnují soubory /etc/fstab, které obsahují seznam souborových systémů, které mají být připojeny, a /etc/resolv.conf, který specifikuje pravidla pro vytváření lokálních DNS dotazů. Mezi nejdůležitější soubory patří inicializační a deinicializační skripty systému. V systémech, které zdědí vlastnosti systému UNIX System V, jsou jim přiděleny adresáře z /etc/rc0.d do /etc/rc6.d a soubor popisu společný pro všechny - /etc/inittab.

    /home (volitelné)

    Adresář obsahuje domovské adresáře uživatelů. Jeho existence v kořenovém adresáři není nutná a jeho obsah závisí na vlastnostech konkrétního operačního systému typu UNIX.

    /lib

    Adresář pro statické a dynamické knihovny potřebný ke spouštění programů umístěných v adresářích /bin a /sbin.

    /mnt

    Standardní adresář pro dočasné připojení souborových systémů, jako jsou diskety, flash disky, CD-ROM atd.

    /root (volitelné)

    Adresář obsahuje domovský adresář superuživatele. Jeho existence v kořenovém adresáři není nutná.

    /sbin

    Tento adresář obsahuje příkazy a nástroje pro správce systému. Příklady takových příkazů jsou: trasa , Stůj , init atd. Pro podobné účely se používají adresáře /usr/sbin a /usr/local/sbin.

    /usr

    Tento adresář má strukturu kořenového adresáře – obsahuje adresáře /usr/bin, /usr/lib, /usr/sbin, které slouží podobným účelům.

    Adresář /usr/include obsahuje hlavičkové soubory C pro různé knihovny umístěné v systému.

    Adresář /usr/local je další úrovní opakování kořenového adresáře a kromě standardní distribuce operačního systému slouží k ukládání programů nainstalovaných správcem.

    V adresáři /usr/share jsou uložena neměnná data pro nainstalované programy. Zvláště zajímavý je adresář /usr/share/doc, který obsahuje dokumentaci ke všem nainstalovaným programům.

    /var , /tmp

    Slouží k ukládání dočasných dat procesů – systémových a uživatelských.