GNU/Linux >> Znalost Linux >  >> Linux

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

UNIX byl považován za matku většiny operačních systémů. Mezi oblíbené členy této rodiny patří :

  • System V Release 4 (SVR4) vyvinutý společností AT&T.
  • 4.4 BSD z University of California
  • AIX od IBM.
  • HP-UX od společnosti Hewlett-Packard.
  • Solaris od Sun Microsystems.


Linux je relativně novým členem této rodiny. Linux původně napsal Linus Torvalds v roce 1991 pro osobní počítače kompatibilní s IBM. Jako operační systém zaznamenal GNU Linux v posledních 20 letech obrovský úspěch a popularitu, protože většina komerčních serverů nyní používá GNU Linux. Aby se popularita zvýšila, koncoví uživatelé v těchto dnech také začali používat Linux, přičemž většina populárních výrobců notebooků a PC dává GNU Linux jako instalovaný OS.

Pro ty, kteří jsou stále zmateni mezi tím, zda je Linux OS nebo jádro, byl Linux v pravém slova smyslu, jak jej napsal Linus, jádro, které bylo napsáno odkazem na knihu o vnitřních systémech Unixu (I když jádro Linuxu převzalo dobré vlastnosti z mnoha jiných unixových jader, jako jsou jádra také), zatímco komerčně dostupné distribuce, které obsahují nástroje jako grafický desktop, textové editory, kompilátory atd. nad linuxovým jádrem, jsou kompletní operační systémy.

Ačkoli si Linuxové jádro vypůjčuje většinu svých funkcí z jader Unix/Unix-Like, stále existuje mnoho bodů, kde se tyto dva typy jader výrazně liší. V tomto článku se zaměříme především na tyto rozdíly. Seznam není vyčerpávající, ale obsahuje hlavní rozdíly.

1. Monolitický vs mikrojádrový přístup

Monolitická jádra jsou ta, kde veškerý kód jádra běží jako jeden proces, zatímco mikrojádra jsou jádra, kde jádro jádra (které řídí různé části OS) běží v jednom procesu, zatímco ostatní služby, jako jsou ovladače zařízení atd., běží jako odlišné. procesy. Linux se řídí monolitickým přístupem, zatímco v unixových jádrech existuje několik výjimek, které se řídí přístupem Micro-kernel.

2. Přidání/odebírání funkcí do jádra

Zatímco tradiční unixové/unixové systémy vyžadují statické propojování nových modulů, Linux podporuje výkonnou funkci, kde lze dynamicky načítat a uvolňovat komponenty jádra, jako jsou ovladače zařízení atd. Tato funkce je známá jako Loadable kernel modules (LKM). Jakoukoli novou komponentu lze přidat/odebrat jako LKM do jádra. To znamená, že není potřeba znovu kompilovat celé jádro. Pokud komponenta není potřeba, lze ji také snadno vyjmout. Tato funkce činí jádro Linuxu velmi flexibilní.

3. Jádro Threading

Mnoho unixových jader je organizováno jako sada jaderných vláken. Vlákno jádra lze považovat za nezávislý tok provádění. Vlákno jádra může spouštět uživatelský proces nebo nějaký kód jádra. Základní myšlenkou je přepínání kontextu mezi vlákny jádra, což je levnější než přepínání kontextu mezi procesy, protože vlákna pracují ve stejném adresním prostoru. Zatímco mnoho unixových operačních systémů používá vlákna jádra pro přepínání kontextu procesu, Linux používá vlákna jádra pouze pro pravidelné spouštění nějakého kódu jádra.

4. Podpora vícevláknových aplikací

Téměř všechny moderní OS, ať už se jedná o distribuce Unix-Like nebo Linux, podporují multi-threading. Vícevláknová aplikace je taková, která vytváří více než jeden spouštěcí tok. Tyto nezávislé spouštěcí toky jsou známé jako vlákna. Nitě jsou procesy s nízkou hmotností. Ve většině unixových systémů jsou lehké procesy založeny na vláknech jádra, zatímco v Linuxu jsou tyto LWP vytvořeny voláním funkce clone(), což aplikaci umožňuje vytvořit samostatný proces, jako to dělá fork(), ale rozdíl je že pomocí clone() může nově vygenerovaný proces sdílet svou fyzickou paměť, otevřené soubory, adresní prostor atd. Protože tyto nově vytvořené procesy fungují ve sdíleném prostředí, dostanou jiný název 'vlákna'. Vidíme tedy, že Linux a Unix/Unix-Like se liší ve způsobu, jakým je interně zpracováváno vícevláknové prostředí.

5. STREAMY

I/O subsystém Streams je součástí většiny unixových jader a stal se preferovaným rozhraním pro psaní ovladačů zařízení, ovladačů terminálů atd. Na druhou stranu v Linuxu neexistuje nic jako Streams.

6. Preemptivní vs nepreemptivní jádra

Preemptivní jádra jsou jádra, která mohou zabránit právě probíhajícímu procesu. To znamená, že proces, který se právě provádí, může být násilně přerušen, pokud je proces s vyšší prioritou připraven ke spuštění. Na druhou stranu, Nepreemptivní jádra jsou ta, kde běžící proces nemůže být násilně přerušen, i když je proces s vyšší prioritou připraven ke spuštění. Normálně Linux OS není preemptivní, zatímco některé unixové systémy jako Solaris 2.x atd. jsou plně preemptivní. Obvykle Real time OS mají plně preemptivní jádra. V současné době máme Linux Real time OS, který má plně preemptivní jádra.

Vidíme tedy, že ačkoli se Linux zrodil ze základní myšlenky Unixu, přesto se v mnoha ohledech liší od jader Unix/Unix-Like. Navzdory těmto rozdílům Linux stále hodně dědí od Unixu a je stále považován za člena rodiny unixových jader.


Linux
  1. Linux – Kernel:Podpora jmenných prostorů?

  2. Linux – Jsou různá jádra Linux/unix zaměnitelná?

  3. Je Linux Unix?

  1. Linux – Je Linux Unix?

  2. Linux – Kernel IP Forwarding?

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

  1. Linux – Tty hlavní číslo vašeho Unixu?

  2. Linux – poskvrněné jádro v Linuxu?

  3. Služba Linux / UNIX OS:autofs