GNU/Linux >> Znalost Linux >  >> Linux

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

Věřím, že odpověď spočívá v tom, jak definujete "Unix-like". Podle záznamu na wikipedii pro "Unix-like" se nezdá, že by existovala standardní definice.1

Operační systém podobný Unixu (někdy označovaný jako UN*X nebo *nix) je takový operační systém, který se chová podobně jako unixový systém, přičemž nemusí nutně vyhovovat jakékoli verzi specifikace jednotného UNIXu a nemusí být certifikován.

Neexistuje žádný standard pro definici tohoto termínu a je možný určitý rozdíl v názorech na to, do jaké míry je daný operační systém „unixový“.

Tento termín může zahrnovat svobodné a open-source operační systémy inspirované Unixem Bell Labs nebo navržené tak, aby emulovaly jeho funkce, komerční a proprietární podobná díla a dokonce verze založené na licencovaném zdrojovém kódu UNIX (který může být dostatečně „unixový“, aby mohl projít certifikací). a nést ochrannou známku „UNIX“).

Pravděpodobně nejzřetelnějším důvodem je, že UNIX a MINIX jsou předchůdci Linuxu a inspirovaly jeho vytvoření.2

Torvalds zahájil vývoj linuxového jádra na MINIXu a aplikace napsané pro MINIX byly také používány v Linuxu. Později Linuxmatured a další vývoj linuxového jádra probíhal na Linuxsystems.

Linus Torvalds chtěl svůj vynález nazvat Freax, portmanteauof „free“, „freak“ a „x“ (jako narážka na Unix).

Zda je systém monolitický nebo mikrokernel, se nezdá být brán v úvahu, když se operační systém nazývá „Unix-like“. Alespoň ne tak často, jako zda je systém kompatibilní s POSIX nebo většinou s POSIX.


"Způsob UNIX" skutečně odkazuje na zkušenost uživatele. K vytvoření efektivního příkazového řádku operačního systému lze zkombinovat malou sadu nástrojů. V souvislosti s tím nejsou nástroje operačních systémů v žádném případě "speciální" ani nemají moc nad programy, které si můžete napsat sami.

V dnešní době je to těžké, protože UNIX byl v tomto ohledu tak úspěšný, že se stal způsobem, jakým se od operačních systémů očekává, že budou prezentovat svá rozhraní příkazového řádku. To nejlépe ilustruje protipříklad:zde je postup cp a.txt b.txt na sálovém počítači IBM:

//COPY     JOB ,CLASS=E,MSGCLASS=X,NOTIFY=&SYSUID
//cp       EXEC PGM=IEBGENER
//SYSIN    DD DUMMY
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD DSNAME=a.txt,DISP=SHR
//SYSUT2   DD DSNAME=b.txt,DISP=(NEW,CATLG),UNIT=SYSDA

Tím se ani nezkopírují všechny typy souborů.

UNIX vytvořil řadu předpokladů, které zjednodušují použitelnost na úkor výkonu. Souborové kanály 1 (stdin), 2 (stdout) a 3 (stderr) jdou do az terminálu a odstraňují spoustu standardního obsahu z JCL výše. Souborový systém podporuje jeden typ dat -- bajty -- a jeden přístupový režim -- sekvenční (ačkoli ukazatel, kam lze sekvenční data číst nebo zapisovat, lze přesunout, aby se implementoval jakýsi „náhodný přístup“). To znamená, že systémové nástroje potřebují k pokrytí všech souborů a datových typů pouze jeden typ souboru a jeden typ dat. Souborový systém nevyžaduje předběžné přidělení. Přidání souborů do adresáře (neboli "katalog disků" na sálových počítačích IBM) se děje automaticky, pokud operační systém zná název souboru.

Tyto předpoklady byly tak úspěšné, že o nich v dnešní době ani nepřemýšlíme. Zatímco v té době by vypadali prostopášně – představte si naprostou režii souborového systému, kterému nebyla předem sdělena maximální velikost souboru.

Tím ale UNIX neskončil. Propagoval přístup „souboru nástrojů“ k systémovým utilitám. IEBGENER sálového počítače může tisknout soubory, přeskupovat pole v záznamech, pouštět záznamy, vytvářet prázdné záznamy. Naproti tomu v UNIXu cp kopíruje soubory, cat vypisuje obsah souboru, zpracovává pole cut. Existuje úhledná syntaxe pro řetězení stdout příkazu do stdin dalšího souboru, vše na jednom terminálovém řádku. Pomocí této "roury" syntaxe a těchto malých příkazů můžeme dělat vše, co umí IEBGENER. A věci, o kterých se autorům IEBGENER ani nesnilo.

Kernighan a Plauger napsali o tomto přístupu v roce 1976 vlivnou knihu -- Softwarové nástroje -- a to je skutečně první expozice "UNIXovy cesty". Kernighan a Pike zopakovali tento přístup ve své knize z roku 1984 Programovací prostředí UNIX .


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

  2. Jak zvládnout paniku linuxového jádra

  3. Jak zkontrolovat verzi jádra v Linuxu

  1. Linux – Proč v systému není přítomen žádný souborový systém Rootfs?

  2. Hlavní rozdíly v jádře Linuxu a UNIXu

  3. Nejrychlejší systémové volání Linuxu

  1. Linux – Je Linux Unix?

  2. Linux – Proč nemůže jádro spustit inicializaci?

  3. Proč se telefonní čísla systému Linux v x86 a x86_64 liší?