Rozhovor s legendou - Pohľad systémového architektaANDREJ BUNTA
...a sme vo finále. Minule sme rozhovor prerušili pri spoločnosti Gateway
2000 polemizovaním o možnej budúcnosti Amigy pod vedením Jima Collasa. Tentokrát
sa budete môcť oboznámiť s názormi Davea Haynieho na operačné systémy z hľadiska
systémového architekta v súvislosti s nedávnym rozhodnutím vedenia Amigy. Amiga je pre mňa v podstate súborom základných princípov návrhu stelesnených
v počítačoch Amiga. To znamená HW aj SW, nemôžete (a nemali by ste) sa pokúšať
ich od seba oddeliť, pre každého dobrého systémového návrhára sú súčasťou tej
istej veci. Asi každý vie, že si jeden z najlepších odborníkov na hardware, akého
Amiga kedy mala. Čo znamená, že musíš rozumieť aj softwaru nízkej úrovne ako je
firmware, ovládače zariadení, HAL...
Prirodzene. Veľmi skoro som zistil, že HW aj SW sú naozaj dve strany tej
istej mince. O oboch som sa veľa naučil čítaním starých hobby časopisov zo
sedemdesiatich rokov ako napríklad BYTE, Kilobaud Microcomputing, Creative
Computing, atď. Vtedy, keď stavanie počítačov bolo nie nepodobné stavaniu vášho
vlastného HAM rádia, ste sa nešpecializovali na HW alebo SW, museli ste poznať a
využívať obidve.
Druhou fázou bola univerzita. Naozaj som si nebol istý, či chcem, aby moje
zameranie bolo Elektroinžinierstvo (HW) alebo Informatika (SW). Takže som
nakoniec skončil tak, že som robil obe. Zaumienil som si nájsť prácu, ktorá by
zahŕňala oboje. Čo bolo ťažšie, ako som si myslel, pretože na mnohých miestach
na svete hardware a software žijú na opačných stranách nejakej zvláštnej, umelej
hranice. V skutočnosti, po skončení školy som sa zamestnal v General Electric,
na oddelení nazvanom „Computational Design“. Boli sme jediní ľudia v tej celej
spoločnosti, ktorí mali dovolené siahnuť na HW aj SW. V poriadku, GE bolo
mizerné miesto, vydržal som tam štyri mesiace. Odtiaľ do Commodoru.
Potom Commodore. Pri práci na projektoch ako C128 mi začalo byt jasné, dokonca
aj vtedy, keď som robil iba HW, že tie dve veci spolu tak úzko súvisia, že keby
ste ich nepovažovali za jedno a to isté, robili by ste veľmi zlú prácu. Ak by
som navrhol čip bez toho, aby som zvážil, ako sa bude programovať, bude sa
určite zle programovať. V našich zemepisných šírkach sa nájdu ľudia (sú to najmä takí, čo skôr či
neskôr presedlali z AmigaOS na Linux), ktorí tvrdia, že na AmigaOS nie je nič
zvláštne, že je to viac-menej zle implementovaný mutant UNIXu z polovice
osemdesiatych rokov - častou argumentáciou je neexistujúca ochrana pamäti,
medziprocesová komunikácia (IPC) pomocou ukazovateľov ako úplne chorá myšlienka
a „device drivery bežiace ako nezávislé tasky síce vyzerajú pekne, ale nie je to
až taká veľká výhoda“.
Ľudia si môžu hovoriť, čo chcú, ale to ešte neznamená, že majú pravdu.
AmigaOS nemá absolútne nič spoločné s UNIXom - nie sú si podobné ani v jedinom
maličkom bite. Každý, kto má na to vyššie uvedený názor, nemá ani poňatia o
AmigaOSe a/alebo UNIXe. Napríklad, čo sa toho posledného týka, argumentujú tým, že linuxový model
ovládačov priamo v kernele je efektívnejší a rýchlejší...
Nie. V skutočnosti, je omnoho, omnoho pomalší. Pozrite sa, tu je jeden príklad
ignorancie z ich strany. V unixových systémoch sa stráca výkon najrozličnejšieho
druhu pri prepínaní kontextu. Takže mikrokernelový OS ako Mach, ktorého veľká
časť beží v užívateľskom móde, je zákonite pomalší, ak všetko ostatné je
rovnaké. To je kvôli zmenám kontextu - vaše I/O volanie skočí do priestoru
kernelu, potom do užívateľského, potom opäť do kernelu a naspäť do užívateľského
priestoru.
V AmigaOSe sa nič podobné nedeje. Žiadna veľká zmena kontextu, jednoducho preto,
že neprenášate ten obrovský ochranný kontext. Systémové volania v UNIXe (a jeho
klonoch) sú vždy nákladné, pretože vždy volajú kernel. V AmigaOSe sa mnoho
volaní Execu vykonáva v rámci kontextu užívateľa, a ak aj nastane prepnutie do
privilegovaného módu, nie je také ťažkopádne. To je dôvod, prečo aj na pomalých
Amigách dostanete 25 tisíc správ za sekundu, zatiaľ čo pod Linuxom to bude skôr
niekoľko tisíc, a to i na oveľa rýchlejšom hardware. Pod AmigaOS je všetko
správa, nie volanie kernelu. Tí, čo toto nechápu, nemajú ani zdania, ako funguje
AmigaOS. ...a AK sú ovládače dobre napísané, aj bezpečnejší...
To je tiež veľmi ignorantské. Ak sú ovládače dobre napísané, sú rovnako
bezpečné pod Linuxom i AmigaOS. Sú menej bezpečné ako ovládače pod Machom (alebo
niečím podobným) z tých istých, vyššie uvedených dôvodov: ovládače pod Machom
zvyčajne bežia (alebo prevažne bežia) v užívateľskom móde, takže ak sa zrútia,
nebudú nikomu na obtiaž. Ako by si na to reagoval - obhajoval by si vôbec AmigaOS?
Pochopiteľne, že obhajujem AmigaOS, ale mojím poslaním nie je konvertovať
ľudí iného vyznania. A verte mi, ľudia berú svoj vzťah k určitému OS (niekedy
dokonca aj k textovému editoru) s tou najväčšou vážnosťou, akej je človek
schopný. Žiadna skutočnosť, ktorú by som spomenul, nezmení názor dotyčných na
AmigaOS, pokiaľ nepočúvajú a nerozumejú faktom. Mohol by si prosím zhrnúť kde AmigaOS ukázal, ako robiť veci správne?
Thready a správy! Keď máte efektívny mechanizmus zasielania správ a
nenákladné thready, stanú sa základnými stavebnými kameňmi dobrého OS. Linux sa
tak veľmi drží 30-ročnej tradície UNIXu, že si ešte musí veľa osvojiť z toho, čo
bolo vymyslené od dôb Bell Labs, keď rozhodujúcou otázkou sa stalo „čo urobíme
teraz, keď s Multicsom je koniec“.
BeOS je dobrým príkladom moderného operačného systému, ktorý sa poučil z
AmigaOSu. Iste, má rozhranie POSIX, aby na ňom bez problémov mohli bežať
programy z UNIXov, ale vo vnútri oveľa viac pripomína niečo ako AmigaOS s
ochranou pamäti všade samé thready a správy.
Linux teraz už má ozajstné thready, ale len v užívateľskom móde (BeOS poskytuje
thready v kernel-móde, čo je veľmi potrebné, ak ako v prípade oboch operačných
systémov - množstvo vecí beží v kernel-móde). Avšak pretože kernel Linuxu nie je
reentrantný, thready v kernele blokujú iné thready, podobným spôsobom ako tasky
v 16-bitovom Windows blokujú ostatné tasky. Čítal som komentáre typu „žiadny
seriózny program pre Linux nepoužíva thready“, čo vyzerá byť pravda, aspoň v
súčasnosti.
Taktiež, AmigaOS naučil svet dynamickému dizajnu. UNIX/Linux, Windows a väčšina
primitívnych operačných systémov je statická. Vopred si zakompilujú všetko, čo
budú potrebovať: ovládače zariadení, počet taskov, atď. Toto môže byt výborné
pre OS, ktorý je určený pre hriankovač a bolo to výborné v praveku, keď 64 kB vo
vašom starom PDP-8 bolo množstvo pamäti. Ale už nie sme v dobách temna, a teda
nie je žiadny dôvod robiť niečo metódami UNIXu, keď existujú lepšie a už overené
metódy (napríklad, nemusíte prejsť na niečo bizarné ako KOSH, The Hurd alebo
Plan 9, aby ste vystúpili z tieňa UNIXu samozrejme, zapamätáte si, čo ste z neho
naučili). Slabé miesta AmigaOSu?
Dve najzávažnejšie slabé miesta dizajnu AmigaOSu sú nedostatok ochrany a
(len na niekoľkých miestach) nedostatok abstrakcie. Problém ochrany je
delikátny, pretože hoci každý by chcel ochranu, asi by ste ju nechceli
implementovať spôsobom, ktorý by skutočne znižoval výkon. Existujú spôsoby, ako
by sa to dalo vyriešiť v rámci Execu - ľudia z Amigy (napr. Dave Morse, =RJ=
Mical a Dale Luck pozn. aut.), ktorí pracovali na operačnom systéme pre 3DO, to
dokázali. A čo adoptovali z AmigaOSu ostatné operačné systémy (čo by mohlo znamenať
že v AmigaOS to bolo vyriešené správne) ako Linux a iné klony UNIXu, BeOS alebo
dokonca Windows?
No, zatiaľ stále čakám na niekoho, kto by správne spravil autokonfiguráciu.
Možno to bude BeOS, nie som si istý. Čo sa týka ostatných, zabudnite na ne.
Windows je o pol kroka pred Linuxom, ale len o pol kroka. Užívatelia si MYSLIA,
že Windows robí ozajstnú autokonfiguráciu, ale nie je to tak. Je to len dymová
clona. Po resete sa Windows naštartuje a načíta nastavenia ovládačov z registra
(to je ten obrovský súbor, do ktorého Windows všetko natlačí), vytvorí jediný
image obsahujúci všetky ovládače a pokračuje. Preto je, takmer ako v UNIXe,
driver-binding statický, len Windows robí binding bez vytvárania úplne nového
OS-image. Linux sa pravdepodobne k tomuto niekedy dostane (áno, som oboznámený s
hackom dynamického nahrávania ovládačov od Red Hate; to nie je ono, je to len
zakompilovanie špecifických stubs ovládačov do kernelu namiesto zakompilovania
kompletných ovládačov, čo na veci nič nemení).
Čítal som, že pod Linuxom 2.2 existuje lepší prostriedok - „module loader“ -
ktorý na požiadanie dokáže nahrávať; ak nie odstraňovať; ovládače podlá názvu.
Zatiaľ som sa na to nepozrel, a i keď toto samotné ešte neprináša
autokonfiguráciu, je to určite potrebný komponent všeobecného autokonfiguračného
systému a možno aj prekonanie dnešnej úrovne Windows.
Dôvod prečo sa zdá, že Windows robí autokonfiguráciu (a tento jednoduchý model
by mohli použiť ľudia z Linux-komunity) je taký, že niekedy veľmi skoro počas
bootovacieho procesu spustí špeciálny program, ktorý sliedi po zariadeniach. To
je tá vec, ktorá vám v skutočnosti nájde nový hardware, priradí IRQ a DMA
kanály, atď. Celá jeho práca spočíva v tom, že umiestni ovládače na správne
miesto a pridá ich názvy do registra. Samozrejme, toto je dôvod, prečo musíte
rebootovať, aby ste ich mohli použiť (musia sa najskôr zrolovať do toho
gigantického súboru s ovládačmi). A to je taktiež dôvod, prečo Windows šalie,
keď spravíte niečo také jednoduché ako prehodenie dvoch kariet PCI.
AmigaOS vykonáva plne dynamický device-binding. Jednoducho, to znamená, že
ovládače sú samostatné moduly, ktoré je možné nahrávať počas runtime. BeOS robí
to isté - ovládače sú implementované ako pluginy (využíva sa generický plug-in
systém BeOSu), ktoré je možné kedykoľvek nahrať alebo odstrániť. Ovládače nízkej
úrovne sú pluginmi do kernelu (kvôli efektívnosti a la UNIX, keď to má význam).
Na vyššej úrovni, podobne ako v AmigaOS, sú veci implementované ako
klient/server, napríklad grafika, ale tak to je i v UNIXe, ak používate iXy, a
všeobecne sa to považuje za výhodné. Kam by sa mal v budúcnosti vyvíjať AmigaOS a čo by mali byť kľúčové
aspekty AmigaOSu ďalšej generácie (NG, 5.x)?
Myslím si, že by mal byt zachovaný celý súbor optimalizácií pre domáce
počítače a na tom by sa malo ďalej stavať. Linux nie je pre začiatočníkov a
nikdy nebude. Má tu svoje miesto, tak ako má AmigaOS, aspoň filozoficky. Systémy
s AmigaOS sa budú vždy ľahšie používať ako napríklad Windows, jednoducho preto,
že sú oveľa viac dynamické, oveľa viac logické a márnotratne neplytvajú vždy
obmedzenými výpočtovými prostriedkami typického domáceho počítača. Dúfam, že
obohatia AmigaOS o nejaké nové vlastnosti, ale zachovajú jeho elementárnu
povahu.
Azda „nikdy“ je tu príliš silné slovo. Ale v princípe dnešný Linux, poznačený
tradíciami UNIXu starými 30 rokov, nie je pre začiatočníkov. Hoci je možné
nanovo navrhnúť a úplne prerobiť systém, nepokladám to za pravdepodobné.
Taktiež, okolo Linuxu sa vytvorila open-source kultúra - všetko sa dodáva v
zdrojovom kóde, binárky nie sú dôležité. To nemôže nahrávať trhu začiatočníkov a
zároveň z dlhodobého hľadiska by kompatibilné binárky mohli uškodiť tomu, čo je
v prostredí Linuxu dobré. Po prvé, keď je všetko dostupné v zdrojovom kóde,
nemusíte sa skoro vôbec obávať nekompatibilných upgradov. Z tohto však vznikla
tradícia. Napríklad, linuxové ovládače sa musia rekompilovať; ak nastanú v
kernele závažnejšie zmeny, pretože v include-súboroch kernelu je rad napevno
zadefinovaných konštánt, s ktorými je treba počítať. Vytvorenie dlhodobo
kompatibilných ovládačov by si vyžiadalo zmeniť API, ktoré by ovládačom umožnilo
dynamicky komunikovať s kernelom o dôležitých konštantách. A tak ďalej. Nakoľko
a či vôbec sa niekedy Linux stane vhodným pre začiatočníkov závisí od ochoty
vývojárov Linuxu rozlúčiť sa s UNIXom a vydať sa do končín im neznámym.
Čo sa týka Amigy a Linuxu, kernel Linuxu sa musí určite upraviť. Ale podľa ich
vyjadrení je cieľom, aby všetko na užívateľskej úrovni v „AmigaNG“ programoch
bolo napísané pre ich objektové API a nie pre kernel Linuxu. Takže, ak sa budete
držať iba programov pre NG Amigu, mnohé z problémov Linuxu ostanú na úrovni
užívateľa skryté. Pokým však kernel nebude upravený, nebudete mať ozajstnú
autokonfiguráciu alebo ozajstné multimédia. Jim Collas hovorí, že práca na
kernele bude odvedená a že vedia, čo majú zmeniť. Takže, až keď uvidíme, ako
dodržali slovo, budeme môcť posúdiť použitie Linuxu v NG Amige. Zhrnutie
Myslím si, že majú pred sebou kamenistú cestu. Na druhej strane,
Amigifikácia Linuxu, zvlášť ak sa na poli Linuxu rozšíri, by bola dobrou
satisfakciou pre Amiga-komunitu. A nakoniec, Linuxu dáte šancu konkurovať
Windows na stolných počítačoch jednoducho tak, že budete robiť veci lepšie - čo
definitívne je nutnou podmienkou správne vedenej vojny proti Microsoftu. KOSH
Projektu KOSH sa v našej krajine nedostalo veľkej odozvy – niektorí ľudia sú
presvedčení, že niečo ako KOSH sa malo objaviť omnoho skôr, v období vákua po
páde ESCOMu, iní tvrdia, že KOSH je evolúciou iniciatív Arise, Second Wind (2W)
a nakoniec Industrial Council and Open Amiga (ICOA), ale na druhej strane majú
sklon vyhlasovať, že je to len výkrik do tmy, ktorý nebude dlho trvať.
Bez vyleštenej gule z krištáľu kremíka nemôžem povedať, kam to smeruje.
Domnievam sa, že KOSH má zmysel pre každého, kto niekedy pracoval na operačnom
systéme, jednoducho pretože predstava „čo keby sme všetko hodili za hlavu a
začali od nuly s tým všetkým, čo už dnes vieme“ je v oblasti HW alebo SW
zábavná. To je v princípe spôsob, akým vznikajú projekty ako Amiga sama - je to
vznešené dobrodružstvo, i keď často ústi do prázdna. Prosím skús niekoľkými vetami charakterizovať čo je vlastne ideou projektu
KOSH, aká je jeho filozofia.
Idea KOSHu je jednoduchá: vytvoriť nový operačný systém podporovaný
komunitou (a snáď aj hardware, hoci som trochu skeptický, čo sa týka schopnosti
komunity financovať vývoj čipov :-))
Roky som nosil v hlave myšlienku nového spôsobu, ako postaviť operačný systém,
ktorý som pomenoval „The Object Sea“. Toto sa v rámci projektu KOSH uchytilo,
hoci je asi zrejmé, že to nie je KOSH a KOSH nie je tým. Som tam hlavne preto,
aby som rozširoval myšlienky ako táto a videl, či sú užitočné. Najmä kvôli
nedostatku alternatívnych softwarových projektov je predstava vytvoriť iný
operačný systém, urobiť ho správne a zariadiť to spôsobom, ktorý by neumožnil
nejakému chamtivému alebo ignorantskému manažérovi zničiť ho, neodolateľná. Je teda KOSH evolúciou iniciatív Arise, 2W a ICOA?
Ja to naozaj nevidím v týchto súvislostiach. Určite to spadá pod patronát
organizácie JMS, ktorá propaguje progresívne domáce počítače. Ale v skutočnosti
KOSH neveľmi súvisí s Amigou, až na to, že mnohí zainteresovaní sú Amigisti a že
na cestu by sme si chceli so sebou zobrať to všetko dobré, čo v AmigaOS je. Jednou z vecí, ktorú si na tebe veľmi cením je, že sa vždy snažíš
komunikovať s ľuďmi, dokonca vo viacerých diskusných skupinách a taktiež osobne,
keď máš čas. Prečo to vlastne robíš, čo ťa stále poháňa?
No, asi sa na to pozerám takto: ak dáte niekomu rybu, nakŕmite ho na deň, ak
ho naučíte chytať ryby, nakŕmite ho na celý život. Je spústa vecí, ktoré by som
chcel robiť a ktoré by som rád videl hotové. Hlavne v tomto období, keď trávim
veľa času prácou pre Met@box, som naozaj nemal čas na hobby. Ak by som mal, asi
by som kutil okolo prototypov objektového manažéra pre KOSH a tak podobne. Ale
to nie som ani tak veľmi ja, skôr myšlienky, ktoré takýto projekt potrebuje, aby
sa odlepil od zeme. Ak ja budem mať nejaké, fleecy bude mat nejaké a niektorí
ďalší tiež, veľmi skoro sa zmiešajú. Skončí to buď synergickým efektom, čiže
niečím lepším ako suma častí, alebo komisiou a kompromisom. Pointou je, že toto
nie je biznis - ak to zdegeneruje na komisiou prijatý bordel, zahubí sa to samo.
Takže takéto typy projektov nie sú veľmi riskantné.
Čo sa týka iba samotnej Amigy, vždy som sa snažil podať pomocnú ruku, pretože
aspoň časť minulosti Amigy je aj moja minulosť, nie je možné nás oddeliť a ja
chcem vidieť, ako ľudia svoje počítače používajú a nie preklínajú.
Je to len rozhodnutie, ktoré som spravil už dávno - byt dobrým občanom
Amiga-komunity. Ako v hocijakej inej komunite, sú tu tí, ktorí potrebujú ochranu
a tí, ktorí potrebujú zdvihnúť mandle. Som schopný niečo z toho urobiť: naučiť
vás niečo o autokonfigurácii alebo ochrániť vás pred potenciálnym podvodom. Bol
by som slabá osobnosť a nešťastný sám zo seba, keby som si na niečo z toho
nenašiel čas.
Poznámka: Odpovede vytlačené kurzívou sú z 22. júla, ostatné sú zo začiatku
júna. Interview bolo pre veľký rozsah krátené. Úplnejšiu anglickú verziu nájdete
v blízkej budúcnosti na stránkach Czech Amiga News.
END! I got the chicken lips bues
I got a computer
I can no longer use
I got the chicken lips blues
I got a computer
I can no longer use
Except of for those of you who
already know how to do
somethig with it
Well, what do i do,
if my 8520s blow?
Well, what do i do,
now that my 8520s have blown
Well, as god,
I`ve got to buy a PC
OH NO!
-
The Chicken-Lips Blues
text: účastníci na Deathbed Vigil
hudba: Mike Rivers Vytlačiť článok
Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.
Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing
none
|