LINUX
^^^^^
Avoid the Gates of Hell. Use linux...
Linus Torvalds ve škole pracoval na UNIXu. Ten se mu tak
zalíbil, že na něm chtěl pracovat i doma. Ale závratné ceny UNIXu
(2000Kč) mu vadily. Unix se vpodstatě nedal sehnat. Proto se rozhodl
napsat si vlastní. Linux nevznikal pod GNU. Linus byl hacker a o GNU
možná ani neveděl. V té době GNU nebylo moc rozšířené. Jádro 0.0 se
ještě kompilovalo pod dosem. Brzo ale objevil gcc a začal pracovat
pod ním. První použitelné verze se vyšly v roce 1991. Nebyly sice
ještě nic moc ale setkaly se z velkým ohlasem. Od okamžiku, kdy byl
linux schopen spustit gcc a zkompilovat tak další GNU programy (
ty v té době už uměly skoro všechno co operační systém potřebuje )
bylo vyhráno. Funkční UNIXový systém byl na světě. Mně se jako první
dostala do ruky verze 0.99.13 z roku 1992. V té době už chodilo
skoro všechno - byla k dispozici slušná instalace, všechny GNU
programy pěkně chodily, filesystém měl dlouhé názvy. (První verze
používala XeniXový filesystém. Ten byl ale omezen na 80 MB a tuším
12 znaků v názvu). Chodily dokonce i X window - grafika.
Linux se velice rozšířil. Hodně dalších lidí se připojilo k
vývoji a z Linuxu se stal velice slušný kernel. První verze sice
nebyly napsány zrovna nejlépe-Linus se až moc držel původního návrhu
jádra UNIXu z roku 1972. Navíc jádro napsal dost natvrdo na intely a
některé části - jako filesystem, nebo swapování byly vyloženě slabé.
To už dneska není pravda. Linux byl přeportěn na hodně platform
- alpha, sun, amiga, atari, mac, powerpc a další. Filesystém je
vpodstatě nejlepší co znám (a to znám dos fat, vfat, xenix fs, hfs,
hpfs, amiga fs, extfs, ext2fs, xiafs, BSD fast filesystem a další)
Je sice trochu marnotratný ale mockrát méně než dos - používa bloky
velikosti většinou 4KB. Má speciální algoritmy, aby se co nejméně
fragmentoval - za 5 let používání mám fragmentaci okolo 8%. Tabulky
nemá pohromadě ale rozptýlené po disku tak, aby byly co nejblíže
datům. Navíc to zvyšuje bezpečnost. Dlouhé názvy až to 256 znaků
atd. Linux samozdřejmě umí použít i jiné filesystémy.
Memory management má taky velice dobrý. Cache je přez veškerou
volnou paměť. Když jsou spustěny dva stejné programy, sdílí stejný
kód. Různé programy potom alespoň knihovny. Ty jsou samozdřejmě na
disku jenom jednou a nelinkujou se do každého programu. Ten samý kód
použije i cache, kdyby snad někdo chtěl číst ten exáč. Když proces
provede fork - rozdělí se na dva identické procesy, paměť se
nekopíruje ale sdílí se dokud jeden z procesů do ní nezapíše - potom
se ta stránka rozdělí (copy on write). Když se program spustí, jeho
kód se nezavede do paměti ale jenom první stránka, kam se skočí a
když proces chce další, tak se načte z disku (page demand loading).
Swapování zařizuje speciální proces, takže běží úplně asynchroně.
Když se swapuje ven kód, tak se neuloží do swapáče ale prostě se
později zase načte z původního exáče. Samozdřejmě, že má i
readahead, které třeba načítá stránky, kde předpokládá, že je proces
bude potřebovat a tak proces na to vůbec nemusí čekat, až se celý
zavede do paměti. Tohle všechno zařizuje fce mmap, kterou proces
může použít i pro jiné účely. Protože Linux nepoužívá bios je celé
I/O několikanásobně rychlejší a při plné práci zabere tak asi 10%
času procesoru.
Jádro navíc zvládá velice slušně sítě - má hodně protokolů
(tcp/ip4, tcp/ip6, ipx, apletalk, ppp, slip, cslip a další), je
posixově kompatibilní, má drivery na většinu SCSI, zvukovek,
síťovek, IDE/ATAPI, portů a některá nestandardní CD. Poslední jádra
zvládají i více procesorů atd.
Narozdíl od normálních UNIXů swapování procesů běží na 100Hz a
to je dost na to, aby člověk mohl kompilovat a k tomu hrát akční hru
- třeba doom, který byl samozdřejmě přeportěn.
Ale hlavně to je inteligentní OS a tak člověk nemusí strávit
veškerý čas jeho obcházením ale může ho využít. Třeba když chce něco
zahrát - tak to zapíše do /dev/audio (to je zařízení..něco jako com
nebo prn v dosu..taky lomítka jsou v unixu obráceně :) Já když něco
vyvíjím, tak to vždycky píšu pod Linuxem - třeba i tento text -
protože to je inteligentní, rychlé a stabilní prostředí pro vývoj
programů a portění třeba do dosu moc času nezabere, protože je tam
stejný kompiler i knihovny. To, že linux spadne při běžném používání
je tak výjmečná věc, že to každý uživatel jde hned hlásit. ale to se
děje opravdu zřítka. Na jádrech označených jako stabilní skoro
vůbec.
Pod Linuxem je dneska skoro všechno, co potřebuju. Do dosu lezu
jen, když si chci pustit nejakou tu hru nebo demíčko, které nechodí
pod dosemulátorem. Každému to doporučuju zkusit, protože tak pozná,
jak vypadá operační systém. A to stojí za to.
Linux je také geniální jako síťový server. Zvládá nejen
internetové služby, firewallování, massquerading (přez jeden modem a
jednu ip adresu zapojí do inetu celou síť) ale třeba i emulovat
novelácký server, windowsí smb protokol atd. Pod emulátorem dneska
chodí věci jako doom, second reality, windows 3.1 atd...
Poslední verze RedHatu a podobných distribucí linuxu už mají
hodně user friendly hejblátek, instalátorů apod a tak pomalu mizí i
pověstná složitost unixu na používání. A nainstaluje to skoro každý.
Jenom nakonec malé varování, že přechod je možný jenom jedním
směrem, kdo se jednou naučil z UNIXem už nikdy nebude chtít dělat v
M produktech...
výheň