Věřím čemu? Že by se měl u OS provádět design s tužkou v ruce, a ne s editorem zdrojáku? Tomu samozřejmě věřím. Že David Cutler je příkladem člověka, který je schopen OS dobře navrhnout? Ano, tomu také věřím. Že Windows NT je zřejmě nejúspěšnější systém na světě? Můžeme o tom diskutovat, ale podle mě to tak je. Vezměte si množství instalací Windows desktopů a serverů. Jestli se s tím může měřit někdo jiný, rád se dozvím podrobnosti.
Možná narážíte na ty první verze Linuxu. Ty ale byly opravdu hrozné. Linus psal terminálový emulátor, a u toho občas přepsal nějaké API starých UNIXů podle jejich dokumentace. Nakonec spatlal monolitický kernel s podporou až 64 procesů a s hromadou kódu v ASM, nad jehož designem by slabší jedinci mohli zvracet. Teprve léta šlechtění (Linuse i Linuxu) vedly k zavedení portability, kernelových modulů, částečné preempce kernelu (PREEMPT_VOLUNTARY je tuším až v kernelu 2.6, PREEMPT je dodnes v produkci nepoužívaný a nepoužitelný), multithreadingu atd. Přitom stačilo na začátku navrhovat a plánovat, a nebylo by pak nutné řadu věcí přepisovat. Implementace preempce kernelu nebo multithreadingu je logicky daleko složitější, když se pro ní rozhodnete až po pár letech. I dnes by řada věcí na kernelu zasloužila přepsat, ale čím déle se to odkládá, tím víc to pak bolí.
Nevěříte? Méně věřte legendám, a více faktům. Přečtěte si třeba zde: Linus představuje Linux, srovnání Linuxu a FreeBSD tady na rootu. Podívejte se na historii preempce kernelu (PREEMPT_VOLUNTARY byla pěkná řezničina), nebo na multithreading (vycházel původně z volání clone()). Srovnání architektury Linuxu se Solarisem nebo NT vyznívá pro Linux dost mizerně. Ale vyprávějte to lidem, pro které je operační systém náboženstvím.
Názor k článku
Programujeme OS: jak na GDT a IDT
Lael Ophir (neregistrovaný)
---.net.upc.cz
16. 8. 2009 14:15

