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...
|
|