GNU/Linux >> Znalost Linux >  >> Linux

Linux – Byly všechny Unixové příkazy přepsány v Linuxu?

Chtěl bych vědět, které příkazy byly přepsány pro Linux a které byly zachovány z Unixu?

Přijatá odpověď:

Zdá se, že si pletete dvě velmi odlišné části operačního systému. Je to pochopitelné, protože se o nich často mluví zaměnitelně, ale je to technicky nesprávné, takže vaše otázka je založena na chybném předpokladu. Abyste mohli plně prozkoumat a doufejme odpovědět na otázku, kterou se pravděpodobně chcete zeptat, je potřeba krátká lekce historie.

Nejprve to byl UNIX. V podstatě tenkrát UNIX znamenal AT&T UNIX System, který byl první. Ale AT&T UNIX se stal nesvobodným, takže Richard Stallman zahájil projekt GNU, aby napsal Unixový systém, který byl svobodný. Odtud název Gnu není Unix , zkráceně GNU. Plány GNU byly zveřejněny v roce 1983 a vývoj začal v roce 1984.

Začátkem 90. let GNU reimplementovala většinu unixových utilit od nuly. Wikipedie uvádí několik komponent celkového systému, které nebyly přepsány (jako příklady komponent, které nebyly přepsány, jsou zmíněny TeX, X Window System a Mach microkernel), ale většinou byly uživatelské nástroje přepsány od začátku, aby vyhovovaly cílem je vyhnout se opětovnému použití jakéhokoli AT&T (nebo spíše nesvobodného) kódu a také rozšířit jejich možnosti přidáním možností příkazového řádku. V důsledku toho byly GNU nástroje pravidelně výkonnější než nástroje, ze kterých čerpaly svou původní inspiraci.

V tu chvíli GNU stále chyběla jedna zásadní součást:jádro operačního systému , což by umožnilo, aby vše fungovalo společně na skutečném počítači, na kterém není spuštěn jiný OS. V roce 1991 začal Linus Torvalds pracovat na projektu hraček, který se nakonec stal známým jako Linux. Byl to v podstatě školní projekt, který se měl dozvědět o tehdy novém 32bitovém CPU Intel 80386, a začal extrémně jednoduše, ale nakonec se začal přetvářet ve skutečně použitelné jádro operačního systému. Ale neměl žádný uživatelský software; Linux sám o sobě neposkytuje žádný shell, žádné možnosti spouštění systému kromě inicializace jádra, žádný textový editor, žádné grafické rozhraní, nic . Jádro je jako motor auta; zásadní k výrobě užitečného auta, ale samo o sobě k ničemu (na užitečné auto potřebujete věci jako kola, převodovku, řízení, místo na sezení řidiče, palivovou nádrž nebo jiný zásobník energie atd.). Linuxové jádro bylo nakonec distribuováno pod licencí GNU General Public License, stejně jako software GNU .

Lidé je tedy začali párovat. Získali byste uživatelskou zemi podobnou Unixu spolu s jádrem založeným na myšlenkách z Unixu (včetně blízké podobnosti s POSIX), kompletní se zdrojovým kódem, který byste mohli hacknout, jakkoli jste chtěli, a nic to nestálo. . Zejména před distribucemi Linuxu se stalo běžným, bylo potřeba trochu šťourat, aby věci fungovaly, ale bylo to dost hotové na to, aby to bylo trochu použitelné pro ty, kteří tomu byli ochotni strávit nějaký čas.

Související:Linux – Instalovat Javu na Ubuntu/Linux?

V dnešní době GNU poskytuje vlastní jádro. Pravděpodobně jste o něm neslyšeli, ale jmenuje se GNU Hurd. Hurd ale nebyl na začátku 90. let, kdy se Linux začal prosazovat mezi fandy a kutily, takže největší pozornost mezi vývojáři vzbudila kombinace linuxového jádra a převážně GNU uživatelského prostředí.

V dnešní době také mnoho unixových systémů instaluje nebo umožňuje administrátorovi snadnou instalaci částí uživatelského prostředí GNU. Na systému, který není GNU, můžete vidět věci jako GNU bash, GNU Compiler Collection, knihovnu GNU C (vanilla nebo patched) a tak dále.

Aby toho nebylo málo, některé systémy používají linuxové jádro, ale vůbec žádnou uživatelskou zemi GNU. Jako široce používaný příklad si vezměme Android OS, což je v podstatě linuxové jádro spojené s vlastní uživatelskou zemí.

To je důležité protože výrazně stírá hranici mezi GNU, Linuxem a různými Unixy (existuje pouze jeden UNIX, ale existuje mnoho Unixů a ještě více operačních systémů podobných Unixu). Když se ptáte na Linux, opravdu se velmi často ptáte na systém GNU/Linux. Ale zvažte Debian GNU/kFreeBSD, který provozuje uživatelskou zemi GNU nad jádrem FreeBSD a vůbec nepoužívá Linux. Nebo třeba Solaris, na který si snadno nainstalujete různé GNU balíčky včetně kupř. coreutils. Myslím, že Mac OS X je dodáván také s částmi uživatelského prostředí GNU. Nebo zvažte výše zmíněný Android.

Nakonec použitelný systém GNU může spouštět kód jiný než GNU a systém jiný než GNU může spouštět kód GNU, ale nástroje GNU neobsahují nekód GNU.


Linux
  1. 5 chyb začátečníků v Linuxu

  2. 5 Příkazy pro odstraňování problémů se sítí Linux

  3. Mých 8 oblíbených praktických linuxových příkazů

  1. Linux – Je Linux Unix?

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

  3. Jak najít všechny soubory vlastněné konkrétním uživatelem v Unixu/Linuxu?

  1. Příkaz Linux pro seznam všech dostupných příkazů a aliasů

  2. Je Linux Unix?

  3. Proč není kompatibilní s GNU/Linux SUS v3+?