Nejlepší přítel člověka
Operační systém

Jaroslav Zapletal
Tento článek je takovým tichým voláním do boje proti současným nedostatkům operačních systémů osobních počítačů. My si to přece všechno nemusíme dát líbít! Současně by měl být malým popíchnutím, co bychom si něli přát pod stromeček do příštího roku. Někde tam venku jsou možnosti a je řada věcí, které by nám mohly bát zatraceně prospěšné, kdybychom vůbec tušili o jejich existenci.

          Operační systém je zaručeně první věcí, s níž se u počítače setkáte po jeho zapnutí. A to není setkání poslední. Takový systém (OS) totiž má dokonalé mimikry a nalezneme jej schovaný za všemi činnostmi, které vás kdy s počítačem napadlo provádět. Pro většinu uživatelů sice platí rovnice OS = uživatelské rozhraní, tak tomu ale vůbec není. Rozhraní totiž pouze představuje virtuální páky a táhla vedoucí ke skutečným funkcím systému, schovaným v doslova tisících obslužných rutinách. Používané aplikace, programy a utility nejsou zase ničím jiným než seskládanými ozubenými kolečky, která místo uživatele v rychlejším rytmu s těmito rutinami komunikují a využívají jejich služeb. Při práci v textovém editoru nebo prezentačním softwaru tedy procesor většinu času tráví louskáním kódu patřícího do vlastnictví systému. Některé programy, např. hry, bývají docela soběstačné a systé využívají jen minimálně - to je ale špatný příklad. Vede to k nestandardnímu ovládání, potenciálním budoucím nekompatibilitám a ignoraci případného nového akceleračního hardwaru.

          Mluvili jsme tady o prvém Setkání. Jeho podoba již závisí na daném OS, ale většinou rozhodne o tom, jaký bude mít uživatel po mnoho let vztah k výpočetní technice. Prvním projevem počítače může být pouhé zapípání, garantující, že něco s hardwarem není v pořádku, v o něco lepším případě je to textové chybové hlášení. To by již mělo zvládnout předání konkrétní informace, kde to zaskřípalo. Většinou ale obdržíte poměrně složitě kódovanou zprávu, která může znamenat cokoliv - třeba doporučení na změnu vašeho psychoanalytika.
          Teprve ve zbývajících případech můžeme předpokládat, že vše nastartovalo správně - i když je to příliš kladné slovo pro něco takového, jako je počítač. Na obrazovce vám naskočí nějaká nápomocná grafika, která by měla reprezentovat a zprostředkovávat základní funkce přistaveného počítače.
          Rození se nového uživatele je velmi bolestný proces, je to stejné jako u zrodu dítěte. Po tlačenici v temném prostoru, kde se nedá dělat nic rozumného, následuje stresující cesta tunelem za bílým světlem, kde nás ale nečeká nic jiného než pár facek.
          Jestliže ponecháte školenou pracovnici napospas DOSu či UNIXu a umožníte jí neodvratnně smazat pár důležitých souborů pouhým odklepnutím nějakého příkazu, je ztracena. Pro příště odmítne třeba jen formátovat diskety a zaměstná tím dalšího pracovníka, natož aby využila pomoci počítače při osobních záležitostech (anonymní pomluvení sousedky).
          Bohužel je pravdou, že dnešní operační systémy nejsou nejlepší - a to prosím bez výjimky. Padají, samy o sobě zavádějí nekompatibility, předpokládají u uživatele naprosto neuvěřitelné myšlenkové a pracovní posutpy. Nejhorší je, že díky lidským chybám, obsaženým v kódu zbývajícím z předchozích verzí OS, se situace přiliš nezlepší s příchodem nových. Platí programátorské pravidlo, že opravením každé chyby vznikají dvě nové. Větičky o službách jsou hezké, ale smutným faktem je, že 40-60% kódu OS ošetřuje spolupráci mezi částmi počítače a odchytává případné kolize zbývajícího softwaru/systému. Všechna ta mikrokernelová jádra, vrstevnatá struktura, virtuální počítače, o nichž se pořád mluví, slouží právě těmto účelům.
          Teoreticky by to vše, včetně nutnosti myslet, měla od uživatele odstínit decentní zástěna grafického uživatelského rozhraní (GUI). Prakticky se tak neděje a v mnoh případech je GUI jen další vrstvou softwaru, brutálně a na podslední chvíli naroubovanou na živoucí strom operačního systému.
          Máte-li nějakého favorita na post ideálního operačního systému, můžete se nyní podívat na vložené články. Jejich úkolem je krátce glosovat chování konkrétních exemplářů OS. Rozhodně nejsou určeny pro slabé povahy a fanoušci dané softwarové platformy by si měli před čtením zajistit lékařský dozor. Uklidnit by je měl fakt, že konkurence nedopadla o nic lépe.
          Všechny dnešní systémy (BeOS je nepodstatnná výjimka) nesou v sobě dědictví minulosti v podobě nezbytné - a zase nikoli dokonalé - zpětné kompatibility a starších částech nevyužívající celkových možnostech systému. Každé uživatelské rozhraní obsahuje spoustu názorů o tom, jaký způsob práce je pro člověka přirozený. Nejvhodnější by bylo "namixovat" si vlastní personální systém z částí všech existujících.

Od zítřka nečarujte!
          Dobrá, shodli jsme se na tom, že ovládání počítače prostřednictvím operačního systému se podobá řízení bojového letadla. Je to podobně složité, při prudkých změnách směru logiky programátorů máte rudo před očima, a co udělá neřízený počítač s poli dat, darmo mluvit...
          Popovídejme si teď, co bycho vlastne chtěli. To, co nám je vnucováno a je k dispozici, bylo již v PC Wordu mnohokrát popsáno v popisnějších a nepochybně erudovanějších článcích. Zamysleme se nad možnostmi uživatelského rozhraní, ale také architektury systému, pokud možno bez demonstrace nějakých monstrózních znalostí informatiky a počítačových systémů.
          Začneme architekturou: její dobrý návrh musí zajistit stabilitu a především potenciál pro další růst systému. Padl tady příměr o rostoucím stromu operačního systému, proto začneme od jádra, přesněji řečeno od mikrokernelového jádra. Jde o velmi malou množinu specializovaných rutin, kterou si můžeme představit jako hřídel napevno spojenou s motorem - hlavním procesorem počítače. Poskytované služby jsou skutečně jen ty nejzákladnější, jako spustit a ukončit obecný proces, apod. Tato hřídel pohání větší ozubená kolečka složitejších vrstev rutin, spravujících prostředky počítače (paměť, čas procesoru...).
          Jádro musí být 100% spolehlivé: pokud se některá vyšší servisní služba v průběhu práce zhroutí, bude bez restartu počítače prostě spuštěna znovu. Vedlejším výsledkem existence jádra je odstínění zbytku systému od procesoru, prakticky nezbytné je pro případ multiprocesorových řešení - pro aplikace se bude hřídel prostě točit rychleji a počet motorů je nemusí zajímat.
          V případě správy procesů se dostáváme k další kritické vlastnosti - preemptivnímu multitaskingu. Jde o přítup přiřazování a odebírání procesoru běžícím procesorům, a to na základě časových a prioritních kritérií, nikoli na základě doprošování se náladovějších rutin. Tak by mělo být zajištěno optimální využití výkon počítače: na pozadí může vždy běžet nějaký nespěchající projekt, jako renderování, které dostane více výkonu, jakmile stroj přestane být vytěžován jinými, prioritnějšími činnostmi. Při psaní dopisu mezi stisknutím kláves uběhnou pro procesor hotová milenia a takto je může rozumně zužitkovat.
          Ochrana paměti je potom metodika, kterou jsou běžící aplikace navzájem izolovány. Není přípustné, aby program A poškodil data uložená na hrací ploše (RAM) aplikace B. Používané metody bývají velmi složité a využívají hardwarových možností daného procesoru, případně pomocných paměťových obvodů, což zamezuje degradaci výkonu vyplýtvaného na kontrole přístupových práv k daným adresám paměťi.
          Správný paměťový management je velmi důležitý, programy by měly být zcela izolovány od fyzicky skutečně existující paměti. Virtuální paměť dokáže ošálit běžící programy a díky odkladovému prostoru na pevném disku je "prostřídávat" v jinak nedostačující RAM. Její konkrétní implementace je naprosto kritická pro výslednou výkonnost počítače.
          Multithreading souvisí opět se správou procesů, a na rozdíl od předchozích páček a koleček je již viditelný pro danou aplikaci. Dobře vytvořený program je samostatně schopen jistého multitaskingu, paralelního provádění rutin a tudíž i služeb. Např. při psaní tohoto textu v textovém editoru současně vyhledávám na pozadí ve speciální utilitě výskyty slova thread v mé databázi článků. Pokud by můj editor byl multithreadingový, mohl bych vše dělat pohodlněji v rámci jedné aplikace - program byvyhledával na pozadí mého datlování. Multithreading nevyžaduje předcházející prvky moderní architektury OS, ale pracuje pod nimi mnohemlépe. Je závislý na dobré programátorské práci autorů používaných programů a přináší masivní zvýšení produktivity práce a ještě lepší využití výkonu počítače, zvláště Multiprocesorových modelů.
          Postupem času roste výskyt skupin počítačů, které hlavně ve větších firmách bývají špatně využity, většinou 80 % stojí a 20 % pracuje. Již po mnoho let se u grafických firem používá distribuované renderování, 3D program rozděluje práci svým klonům na ostatních počítačích a výkon se samozřejmě sčítá. To je ale nepohodlné a příliš specializované řešení. Nověji se používá šetřičů obrazovky, které zmíněným klonům povolují práci jen v případě nečinnosti daného počítače.
          Jedinýcm správným řešením je ale splynutí všech sesíťovaných počítačů; jednotlivé procesy (thready) všech běžících aplikací budou přerozdělovány mezi dostupné procesory, samozřejmě podle priority a výkonnosti procesorů. Tak dochází k ideálnímu přerozdělení výkonu a využití investic do hardwaru, pochopitelně se zvyšují nároky na rychlé síťové propojení. Ke zrovnoprávnění disků sdílených na síti již došlo dávno, a tak ve výše popisovaném příkladě může multithreadingovaný a clustrovaný textový editor přiřadit jeden thread vstupu textu od uživatele a druhý vyhledávání v databázi umístěné na disku. To nové ale následuje - podstatě náročnější a zpomalující thread, provádějící obsluhu skeneru - to znamená rozpoznávání textu na zpracovaných stránkách a jeho začleňování do prohledávané databáze - může poslat sousednímu počítači bez uživatele.
          Nejde o nic hypoteického, obecně sí%tové distribuování threadů bylo u osobních systémů předvedeno nedávno systémem BeOS (viz. PCW 11/96). Akademické úvahy dnes probíhají na téma sdílení paměti, obdobně při sdílení procesorů sui může strádající počítač A chybějící paměť zapůjčit od nevyužitého "Béčka" - jakási forma síťové virtuální paměti, která může být v závislosti na hardwarovém prostředí výhodnější, zejména s ohledem na nedávný rozvoj bezdiskových internetovských stanic...
          V budoucnosti si můžeme takto představit situaci, kdy levný domácí počítač v nouzové situaci (vyřešení hypermnožinového domácího úkolu dcerky nebo slovního umravnění zloděje) si zapůjčí pro svou umělou inteligenci něco výkonu a paměti od místního provozovatele Internetu - samozřejmě na dobu několika vteřin - a bude to vzhledem k okolnostem zaplaceno z povinného pojištění domácnosti.
          Popisovaný vývoj operačních systémů ovšem vyžaduje jejich komponentnost. Skokové a zaručené nekompatibilní upgrady nejsou pro rostoucí uživatelskou základnou populární a je třeba jednotlivé části systému vyměňovat nezávisle na ostatních a bez ovlivnění jejich funkce. Dnes tento přístup částečně demonstrují technologie OpenDoc a OLE, které ve své podstatě představují funkce (reprezentované částmi a editory), jež jsou skokově dostupné všem dosavadním (kompatibilně naprogramovaným) programům. Je to jistá variace na multithreadingové aplikace: v tomto případě textový procesor neobsahuje vyhledávací funkce v sobě, ale zprostředkuje přístup k datům kódu, obsaženého v OLE či OpenDoc editoru, který se dočasně stane součástí textového procesoru.
          To se již od architektury OS dostáváme k principům GUI. Počet nezbytných programů ke splnění určitého úkolu by se měl co nejvíce zmenšit, nikoli ale cestou makabrózního růstu služeb aplikací typu MS Word 10 (80 MB RAM, 780 MB disk). V případě potřeby si program funkce jen zapůjčí (dočasně začlení do svého kódu). Jedinou možnou extrapolací do budoucnosti je potom eliminace všech programů, až na Manager reprezentující vlastní systém (Finder u MacOS, Windows Manager...). Softwarové domy se budou pochopitelně živit prodejem funkčních částí místo celých programů. Něco podobného předvedl Microsoft ve své beta-verzi Internet Exploreru 4.0, který otevírá svá WWW okna přímo v rámci W95 a neobtěžuje se vůbec s image aplikace se samostaným menu a okny.
          Další úvahy nad možnostmi rozvoje GUI již mnohokrát padly v jiných článcích, třeba v souvislosti s 3D grafikou, rozpoznáváním řeči nebo dokonce virtuální realitou. Nové funkce a principy budou souviset s rozšiřujícím se používáním počítačů v nových oblastech.
          Nepochybně se budou hledat nové prostředky abstraktizace reality, zejména s ohledem na zpracování velkého množství informací. Již nyní se objevují útoky na tradiční a příliš unifikující reprezantaci bloků dat formou souborů, nové systémové databáze umožňují vedle sebe klást nejrůzněji strukturované objekty bez přihlížení k nepodstatné formě uložení na disku. Výsledkem je jednoduché třídění, indexování, komplexní vyhledávání a zpracovávání částí dat množinovými operacemi. Rychlostní posun v běžných úlohách je očividný (viz. opět BeOS).
          Současné práce společností Apple, MetaTools či Microsoft ukazují i na další bezprostřední pokroky v produktivitě a formách GUI. Nové systémové vyhledávání firmy Apple např. podporuje automatické indexování souborů při nečinnosti počítače, jakékoli kontextové vyhledávání na discích je tak prakticky okamžité.
          Současné grafické programy již standardně podporují několikanásobné Undo (Zpět, odvolání operace). A co myšlenka spojitého Undo? V programu PowerGoo můžeme provést na obrázku řadu efektových deformací a táhlem GUI výsledek "umírnit?". A co takhle kouzelníka či wizarda, který by navrhnul DTP rozvržení stylem Seriózní (řekněme silně pravoúhlé rozmístění odstavců a obrázků), uživatel by jej změnil na Propagační (řekněme pravý opak) a pomocí spojitého Undo by "on fly" přelil layout textových rámečků do něčeho "mezi?".
          A to jsem se ani nedotal k úvahám o multirezolučních obrázkových formátech, které naznačují možnosti grafické práce a rozpoznávání obrazu - včetně zatřídění do tematického archivu - v reálném čase okolo konce roku.
          Téma možnosti osobních OS samozřejmě vydá na mnoho stránek textu, a na celé knihy. Tento článek byl jen malým připomenutím, že současné systémy jsou pouze potácející se a nevychovaní kojenci, kteří mají ještě něco růstu před sebou. Ten nepochybně přinese změny v přístupu i používání počítačového hardwaru budoucnosti, který nebude tak sobecký, neproduktivní a nekooperativní jako dnes.

Proč nemít rád...
Mac OS
Nejvíce nerad má daný operační systém vždy jeho pravidelný uživatel. Vždyť kdo jiný by znal lépe jeho chyby a zálůudnosti, kdo jiný denně řeší tisíce oříšků a ořechů, jak tohle a tohle nejvíce efektivně řešit, kdo shání tisíce systémových a aplikačních aktualizací?
Já osobně, než se rozčilovat nad ovládáním jiných OS, raději běsním nad nepružností Mac OS.
Bez pomoci tisíců sharewarů je minimálně uzpůsobitelný, management paměti je vhodný jen pro 32 a více MB RAM. Stabilita systému je úplně hrozná, při zkoušení neověřeného sharewaru ale uživatele dříve nebo později (téhož dne) nevyhnutelně čeká restartování. Bez ochrany paměti není bezpečných hrátek s neznámým softwarem.
Zle je, když se nějaká aplikace rozhodne, že se do pozadí odstrčit nedá. Najednou musíte čekat, než se na popředí nějaká nepodstatná databáze sesynchronizuje s pomalým CD-ROMem, přičemž by váš superrychlý risc zbytkem výkonu klidne splivnul simulaci kolize galaxií. Ostatně okamžitá aktualizace obsahu otevřených oken/direktorářů je hezká věc, musí ale strávit tolik času ověřováním změn na nezměnitelném CD.ROMu?
Člověk by řekl, že po 12 letech vývoje bude alespoň dvakrát zgruntu přepracován.
Proč nemít rád...
DOS
Fascinujícím jevem je, jak uživatlům DOS splývá s Norton Commanderem, bez kterého je pro ně nemožné i překopírovat pár souborů. Parádním číslem je potom správa paměti, jejíž studium dodnes naplňuje stránky počítačových časopisů. Je to skutečně úžasné: člověk má 16 MB, ale musí nacvičovat, jak ušetřit 16KB, aby si mohl spustit hru bez odinstalovávání síťových ovladačů.
Míra podpory dostupných možností architektury PC, včetně plného počtu paměťových modulů a procesorů, je prostě bez konkurence. Tento "operační systém" prakticky nenabízí žádné z běžných systémových služeb, kterými bývá tato kategorie softwaru definována. Verze 4 a výše už prostě nikdy neměly vzniknout.
Proč nemít rád...
WINDOWS 3.1
Windows 3.1 je operační systém, který není jednoduché pochopit. Já vím, že většina amerických supermanů trpí schizofrenií, rozpadem osobnosti a ztrátou osobnosti, tohle ale není tento omluvitelný případ. Cokoliv je to dvojnásobně zpracované. Začne to tím, že se bootuje přes archaický textový DOS, potom začnou nabíhat pseudovymyšlená Windows.
Na grafický systém inspirovaný Macem je to hodně nesmělý začátek. Neskutečné je rozpolcení File Manageru a Windows Manageru, které můj mozek prostě odmítá akceptovat. Proč musím kvůli typickým systémovým operacím spouštět zvláštní aplikace?
O nic lepší není další rozdělení disku na "reálné" zobrazení ve File Manageru, a na jakési pseudoadresáře mající pouze jedno vnoření. Proč musí být všechno dvakrát a vždycky špatně?
Moc šikovné je využití obrovského desktopu pro ukládání ikon spuštěnýcj programů, viditelně se tady počítalo se stovkami současně běžících aplikací. A kdo vymyslel, že okénka nelze přemisťovat mimo hlavní okno aplikace? Pravděpodobně se musí někomu platit za každé využité místečko monitoru.
Vzhledem ke stáří tohoto systému, kdyby to byl kůň, řeknu - zastřelit.
Proč nemít rád...
WINDOWS 95
Obrovské zlepšení proti Windows 3.1, pro nezbytné nekompatibility s některým starším softwarem ale zřejmě mnoho uživatelů odolá. Mouchy GUI tu pořád ješte jsou: ujistit se, zda se kopírovaný soubor na místo vejde, je příliš velký luxus. Podle řady uživatelů to nikomu nevadí - skutečně to přináší nesmírné zvýšení produktivity, všechno kopírovat nadvakrát a mezitím hledat, kam se mi to vejde. Nevím jak nejnovější verze Windows 95, ale ta má oblíbená, tzn. finalizovaná, neuměla mazat koš na pozadí a při kopírování zablokovala cílový adresář (proč ne zdrojový?).
Stabilita je hezká věc, když je. Mimochodem, to má být mikrokernelové jádro, co tak často padá s ohlášením jako Chyba xx v kernelu? Celé to má v sobě spoustu přežívajícího 16bitového kódu, takže čeká Microsoft řada postupných upgradů k něčemu lepšímu. Co takhle raději začít rovnou u Windows NT?
Proč nemít rád...
WINDOWS NT
Člověk by si řekl: konečně pořádný operační systém, stabilní a bezpečný. Proč ale nemůže být nic dokonalé a bez diskuse nejlepší? Preemptivní multitasking je hezká věc, jenže to by uživatelé museli být ochotni se vzdát hrátek s DOSem. Pusťte si dosovskou aplikaci a výkon stroje je pryč. Uživatelské rozhraní je standardní - všichni si "pochvalují" práci s Windows 95, al epracují s rozhraním Windows 3.1 ve Windows NT 3.5. A Windows NT 4.0 vystrkují na svět uživatelské rozhraní WIndows 95, al ejeho Plug and Play ještě ne...
Celé je to chvalitebně multithreadové, ale File Manager není schopen více současné práce. Jeden úkol jej dokonale zablokuje, a spustit nový nejde - skončíte v tomtéž. Proč j epro všechny takový problém naprogramovat kompatibilní a nový File Manager?
Bezpečnost kategorie C2 je problematická u všech systémů, když je v kdejaké internetové zásuvce návod, jak je shodit během 30 sekund.
Multimediální propustnost bude mizerná, dokud rozhraní DirectAPI nedorazí, nejdříve ale pro ně bude muset softwarový průmysl něco naprogramovat, a to chce čas. Dobrým indikátorem jsou hry: dokud budeme muset bootovat z DOSu, něco není v pořádku.
Proč nemít rád...
OS/2 Warp
Pro kritizování by se určitě našla řada chyb, kdyby bylo kde hledat. Uživatelů je ještě méně než macovského šafránu.
Ovládání ikon na desktopu je sice podivné, jinak se toho Warpu nedá moc vytknout. Na rozhraní vypadá skoro jako Mac a běží to přitom na kvalitním mikrokernelovém jádře, které garantuje bezpečný preemptivní multitasking. Kdyby nebyl ten problém s ovladači...
Nejhorším nepřítelem Warpu je IBM sama. Je neuvěřitelné, že dodnes nebyla schopna distribuovat verzi pro vlastní procesor PowerPC. Když jsem ji chtěl na ještě na Invexu 95 vidět, prohlíželi si mne, jako bych byl úchylný. Jediný, kdo drží svými odběry výrobu PowerPC čipů nad vodou, je Apple. IBM vyrobila pár strojů Power série s Warpem a potom ho nahradila AIXem.
IBM je tak svázána konkurenčním bojem svých divizí, kde zřejmě jen lidé za RS 6000 mají volební právo, že není schopna plynule realizovat své plány. A přitom produkují patentů pro celý zbývající počítačový průmysl. Chtělo by to takové malé "Comming Out!". Co takhle dokončit Warp for PowerPC, Taligent, Kaleidu a řadu dalších slibných projektů, které skončily na filosofických tahanicích? Potom si můžou hrát s hlasovým ovládáním...