GNU/Linux >> Znalost Linux >  >> Linux

Je pravda, že první verze Linuxu byla založena na částech Unixu?

I když byl Linux systém napsaný od začátku, první verze Linuxu byla velmi podobná minixu, což je „mini-Unix“. Je to v Linusově oznámení.

Wikipedia poskytuje krátký popis historie Linuxu. Pokud se chcete o tomto tématu dozvědět více, tato kniha je to, co potřebujete. Dozvíte se tam, že Linus Torvalds používal unixové manuálové stránky, aby věděl, jaká systémová volání musí implementovat a jak musela fungovat.


První linuxová jádra musela být zavedena s MINIXem, který byl vyvinut s ohledem na design podobný UNIXu. Nyní Linus používal knihy o UNIXu, když navrhoval své jádro. Datum jeho knižní objednávky je dokonce archivováno.

K dnešnímu dni není Linux plně kompatibilní s UNIXem, proto je označen jako "UNIX-Like" (Mac OS X je na druhé straně (plný) UNIX).

Název vaší otázky uvádí jednoduše „Linux“, což znamená nejen jádro, ale také jeho další části. Tvrdil bych, že když vezmete v úvahu věci mimo jádro a porovnáte jej s UNIXem, je to ještě podobnější. Vzhledem k věcem jako X atd. Linuxové jádro samotné se blíží UNIXu, ale když vezmete v úvahu části GNU, dostane se ještě blíž.

Verzi 0.01 jádra lze stále stáhnout. I když jsem netestoval, zda se kompiluje, natož běží.


Ne.

Nedává smysl říkat, že konkrétně první verze Linuxu byla „založena na částech“ Unixu. Nebyl to port unixového jádra. V prvních verzích nezačal unixovým kódem [procházet zdroj] a časem jej nahradil. Linus neměl přístup ke zdrojovému kódu Unix [rozhovor].

Z čeho to zkopírovalo je API. Stejné API je v nejnovější verzi Linuxu a zůstane navždy. Linux zpravidla neodstraňuje žádné API, protože by to rozbilo nějakou aplikaci. Co je zkopírováno, je nezbytné minimum, když byl Linux (a první verze Linux libc) napsán pro běh existujících unixových aplikací. To je dobře známá základní schopnost Linuxu. Můžete to popsat různými způsoby, ale tady vlastně není o čem polemizovat.

Např. stejné API je zkopírováno v GNU libc (která je starší než Linux). IIRC Linux efektivně zkopírován z dokumentace API (man stránky).

Nerad to říkám dokonce kvůli nejlepší části návrhu rozhraní mezi unixovým jádrem a aplikacemi, jako je gcc; "všechno je soubor". Základní operace se soubory byly standardizovány jako součást programovacího jazyka C . Moje manuálové stránky navrhují C89, tedy o rok nebo tak dříve. Např. Windows implementuje stejné C API. To však zamlčuje příliš mnoho nemotorných bitů, které nejsou soubory a/nebo které C nezahrnulo do standardu, takže musíme uznat Linux jako specificky unixový.

Konkrétně API v této "první" verzi Linuxu je 70 systémových volání, jejich seznamy argumentů, 40 chybových kódů... a převažující jeden z nich, 200 řádků definujících ovládací prvky terminálu, což je přesně to, na co jsem myslel, když jsem napsal "nešikovné bity“. Ale určitě je toho později také víc.

Jak bylo naznačeno jinde, je to trochu bolavé místo. Od té doby, co se objevila ve „studii“ financované Microsoftem, a poté byla léta vedena soudním sporem (SCO vs IBM) bez jakýchkoli důkazů. IIRC nakonec ukázali několik řádků kódu. Ukázalo se, že všechny „porušující IP“ (o kterých tvrdili, že IBM přidala do Linuxu) byla jen nějaká API. Navzdory četným precedentům v tomto bodě, které umožňují kopírování API, neboli reverzní inženýrství pro čisté prostory.

Jak zmínili jiní, vztah s Minixem byl těsnější. Věřím ve formát souborového systému byl převzat z Minixu. Datové struktury jsou více specifické pro implementaci než většina abstraktních API, a pokud jste řekli „založené na částech“ Minixu nemusíte nutně lhát.

Minix je také popisován jako Unix-like (nebo „klon Unixu“, což znamená OS podobný Unixu, ale nezaložený na jeho kódu). V každém smyslu je Linux založen na Unixu, totéž by mělo platit pro Minix. (Existují také některé další klony Unixu; Wikipedia uvádí některé proprietární a různé vrstvy kompatibility pro Windows).

Dělám (zdarma) operační systém (jen koníček, nebude velký a profesionální jako gnu) pro klony 386(486) AT. To se vaří od dubna a začíná se připravovat. Chtěl bych jakoukoli zpětnou vazbu k věcem, které se lidem na minixu líbí/nelíbí, protože můj operační systém se mu trochu podobá (mimo jiné stejné fyzické rozložení souborového systému (z praktických důvodů).)

Momentálně jsem přenesl bash(1.08) a gcc(1.40) a zdá se, že věci fungují. To znamená, že během několika měsíců získám něco praktického a rád bych věděl, jaké funkce by většina lidí chtěla. Jakékoli návrhy jsou vítány, ale neslibuji, že je provedu :-)

Linus ([email protected])

PS. Ano – neobsahuje žádný minix kód a má vícevláknový fs. NENÍ přenosný (používá přepínání úloh 386 atd.) a pravděpodobně nikdy nebude podporovat nic jiného než pevné disky AT, protože to je vše, co mám :-(.


Linux
  1. 17 skutečných příběhů o přechodu na Linux

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

  3. Je filozofie Linuxu v roce 2019 stále aktuální?

  1. Budování důvěry v linuxovou komunitu

  2. Poprvé s Linuxem:30 instalačních příběhů

  3. První, který se vysílal úplně na Linuxu

  1. Jak zkontrolovat verzi OS a Linuxu

  2. Linux – Jak lze zkontrolovat informace o struktuře adresářů souboru Unix/linux?

  3. Jak zkontrolovat verzi MySQL v Linuxu