AMIGA REVIEW online
  Uvodná stránka     Software     Hry     Obaly     Download     Amiga na PC     Amiga Forever  

Rozhovor s legendou - Pohľad systémového architekta

ANDREJ 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


© ATLANTIDA Publishing Všechna práva vyhrazena.
Žádna část nesmí být reprodukována nebo jinak šířena bez písemného svolení vydavatele.



Amiga na Vašem PC rychle, snadno a zdarma!


none

AMIGA REVIEW

57 ( 11-12 / 2000 )
56 ( 9-10 / 2000 )
55 ( 7-8 / 2000 )
54 ( 5-6 / 2000 )
53 ( 3-4 / 2000 )
52 ( 1-2 / 2000 )
 
51 ( 12 / 1999 )
50 ( 11 / 1999 )
49 ( 10 / 1999 )
48 ( 9 / 1999 )
46-47 ( 7-8 / 1999 )
45 ( 6 / 1999 )
44 ( 5 / 1999 )
43 ( 4 / 1999 )
42 ( 3 / 1999 )
41 ( 2 / 1999 )
40 ( 1 / 1999 )
 
39 ( 12 / 1998 )
38 ( 11 / 1998 )
37 ( 10 / 1998 )
36 ( 9 / 1998 )
35 ( x / 1998 )
34 ( x / 1998 )
33 ( 1-2 / 1998 )
 
32 ( 11-12 / 1997 )
31 ( 9-10 / 1997 )
30 ( 7-8 / 1997 )
29 ( 6 / 1997 )
28 ( 5 / 1997 )
27 ( 4 / 1997 )
26 ( 3 / 1997 )
25 ( 2 / 1997 )
24 ( 1 / 1997 )
 
23 ( 12 / 1996 )
22 ( 11 / 1996 )
21 ( 10 / 1996 )
20 ( 9 / 1996 )
18-19 ( 7-8 / 1996 )
17 ( 6 / 1996 )
16 ( 5 / 1996 )
15 ( 4 / 1996 )
14 ( 3 / 1996 )
13 ( 2 / 1996 )
12 ( 1 / 1996 )
 
11 ( 12 / 1995 )
10 ( 11 / 1995 )
9 ( 10 / 1995 )
8 ( 9 / 1995 )
7 ( 7 / 1995 )
6 ( 5 / 1995 )

ATLANTIDA NEWS

5 ( 3 / 1995 )
4 ( 1 / 1995 )
 
3 ( 11 / 1994 )
2 ( 9 / 1994 )
1 ( 7 / 1994 )
0 ( 5 / 1994 )