Comparazioni di Haynie tra AmigaOS (classico) ed altri SO (Linux, Win) - Parte Seconda

Data         : 24/07/1999
Fonte        : http://www.realdreams.cz/amiga/local/24_7dave.html
Traduzione   : Luca Diana

I traduttori non si assumono responsabilità su eventuali errori e/o
omissioni


---------------------------------------------------------------------------
Parte 2/2



Andrej> Allora, cosa ne pensi di questi problemi -- cioe', difenderesti
AmigaOS?

Dave> certo che lo difendo, ma non ho come missione quella di convertire
persone di una religione diversa. E credimi, molte persone si attaccano ad
un Sistema Operativo (a volte anche ad un editor di testi), con il fanatismo
peggiore. Nessun fatto di cui parli cambierebbe l'opinione di qualcuno se
questo qualcuno non ascolta e non capisce i fatti.

Andrej> Potresti dire in cosa l'AmigaOS ha mostrato come fare le cose in
maniera giusta?

Dave> Threads e messaggi! Quando hai scambio di messaggi molto efficiente e
threads di basso costo, questi diventano i mattoni base fondamentali di un
buon S.O. Linux e' cosi' prossimo alla tradizione UNIX che va indietro di 30
anni che deve ancora abbracciare molto di cio' che e' stato imparato dai
tempi dei laboratori Bell quando "Cosa facciamo ora che Multics e' finito"
era la domanda operativa.

BeOS e' un buon esempio di S.O. moderno che ha imparato da AmigaOS. Certo,
ha un interfaccia POSIX per poter girare meglio codice UNIX, ma sotto, e'
piu' simile ad un AmigaOS con modalita'-protetta -- tutto e' fatto in
threads e mesaggi.

Linux ora ha threads veri, sebbene solo in modalita' utente (BeOS permette
threads in modalita' kernel, piuttosto necessari se, come in ogni S.O., hai
un sacco di roba che gira in modalita' kernel). Ma dato che il kernel Linux
non e' ri-entrante, i threads nel kernel bloccano altri threads, simile a
come i task in Windows 16 bit bloccano altri task. Ho sentito commenti tipo
"nessun programmatore Linux serio usa threads," il quale sembra esser vero,
almeno oggi.


AmigaOS ha anche insegnato al mondo la dinamica di disegno. UNIX/Linux,
Windows e la maggior parte dei S.O. primitivi sono statici. Si precompilano
in tutto cio' di cui necessitano: driver, numero di task, ecc. Questo puo'
andar bene in un S.O. che finisce dentro un fornetto, e andava bene nei
tempi di yore, quando 64K erano un sacco di memoria sul PDP-8. Ma non siamo
piu' nel Medioevo, e non c'e' piu' ragione per fare cose alla maniera di
UNIX quando ci sono modi migliori per farle, e gia' testate (cioe', non c'e'
bisogno di saltar su cose strane tipo KOSH o Hurd o Plan 9 per poter
muoversi oltre UNIX -- mentre, naturalmente, ritenere cio' che si ha
imparato da esso).

Andrej> Dove AmigaOS fallisce...

Dave> Le due cose peggiori nel disegno di AmigaOS sono la mancanza di
protezione e (solo in pochi casi) mancanza di astrazione. Il problema della
protezione e' uno un po' delicato, mentre tutti vogliono protezione, non
vogliono implementarlo in maniera che porti giu' la performance al modo che
i "Linuxisti" (che a quando pare vedono le cose solo con gli occhialini
colorati Linux) sembrano assumere AmigaOS funzioni. Ci sono modi in cui
questo sarebbe potuto esser fatto con Exec -- le persone di Amiga che hanno
lavorato al S.O. del 3DO l'hanno fatto -- ma non pare sara' un problema col
nuovo OS basato su QNX (che e' anch'esso un OS moderno con una facciata
UNIX-friendly, ma molto poco UNIX).

Andrej> ...e cio' che e' stato addottato (che proverebbe AmigaOS l'ha fatto
bene) da altri sistemi operativi come Linux (o altri cloni UNIX), BeOS, o
persino Windows.

Dave> Beh, sto ancora aspettando che qualcuno faccia bene
l'autoconfigurazione. Forse BeOS ci arriva, non son sicuro. Ma gli altri,
dimenticatelo. Windows e' mezzo passo davanti a Linux in questo, ma solo
mezzo passo. Utenti PENSANO che Windows faccia autoconfigurazione reale, ma
non e' vero. Cio' che succede e' solo fumo e specchi. Al reset, Windows
parte e legge il setup dal Registry (quel file gigante in cui Windows mette
tutto dentro), costruisce una singola immagine mettendoci dentro tutti i
driver, e continua. Percio', proprio come UNIX, tutti i driver sono legati
staticamente, solo che arrivano a fare questo legame senza costruire
un'intera immagine dell'OS. Linux ci arrivera' ad un certo punto (si,
conosco bene l'hack di Red Hat per caricare i driver in modo dinamico; non
e' il modo di farlo, stanno solo compilando parti specifiche del driver nel
kernel anziche' tutto il driver, non cambia nulla).


Ho letto che sotto Linux 2.2 c'e' un miglior caricatore di moduli che forse
puo' caricare, se non scaricare, driver su richiesta del nome. Non gli ho
ancora dato un'occhiata, e mentre cio' da solo non da l'autoconfigurazione,
e' certamente un componente necessario di un sistema di autoconfigurazione
completo, e forse un passo avanti a dove e' Windows oggi.


Il motivo per cui pare che Windows faccia autoconfigurazione (e questo
sarebbe un modello semplice per l'utilizzo dei Linuxisti) e' che, in qualche
punto all'inizio del processo di boot, lanciano un dispositivo speciale di
snoop. Questo e' il tipo che in realta' trova nuovo HW per te, assegna IRQ e
slot DMA, ecc. Cio' che questa bestiola fa in effetti e' mettere i driver
nel posto giusto e aggiungere il loro nome nel Registry. Ecco  perche' devi
fare un reboot per poterli usare (devo cominciare a girare in quel
gigantesco file di driver). E' lo stesso motivo per cui un sistema basato su
Windows impazzisce se fai qualcosa di semplice come scambiare due carte PCI.

L'AmigaOS fa device-binding pienamente dinamici. Questo e' facile quando i
drivers sono moduli separati che possono essere caricati al momento di farli
girare. Anche il BeOS lo fa -- i driver sono sempre implementati come
plug-in (usando il loro sistema generico di plug-in) e possono essere
caricati o scaricati in qualunque momento. I driver di basso livello sono
plug-in del kernel (per quell'efficienza alla UNIX, quando serve). Altra
roba di alto livello, come in AmigaOS, e' implemetata come server/cliente,
tipo grafica, ma cio' e' vero anche sotto UNIX se si usa X, ed e'
generalmente considerata come buona cosa.

Andrej> Dove dovrebbe muoversi l'AmigaOS in futuro e quali sono gli aspetti
chiave che l'AmigaOS NG dovrebbe coprire?

Dave> Penso che l'intero set di ottimizzazioni per home computing dovrebbe
essere mantenuto ed ampliato. Linux non e' per debuttanti, e *mai* lo sara'.
Ha una buona nicchia, e cosi' pure AmigaOS, almeno filosoficamente. I
sistemi basati su AmigaOS saranno sempre piu' semplici da usare che qualcosa
tipo Windows, semplicemente perche' e' molto piu' dinamico, molto piu'
logico, e non spreca le sempre limitate risorse di una macchina per utenti
tipica. Spero che portino nuove caratteristiche nell'AmigaOS, ma mantengano
il "disegno" originale.


Forse "mai" e' una parola troppo forte qui. Ma praticamente, Linux oggi,
saldato alla tradizione UNIX vecchia di 30 anni, non e' per principianti.
Mentre ridisegnare completamente il sistema e' possibile, non penso sia
probabile. Inoltre, c'e' una cultura in Linux a livello-sorgente, tutto e'
spedito in sorgente, il codice binario non e' importante. Questo non puo'
funzionare nel mercato principianti, ed anche, pensando al lungo termine,
codice binario compatibile potrebbe danneggiare cio' che c'e' di buono
nell'ambiente Linux. Ad esempio, quando tutto e' in sorgente, si ha molta
meno paura di aggiornamenti incompatibili. Pero', sviluppi anche una
tradizione. I driver Linux, per esempio, devono essere ricompilati quando
cambiamenti importanti avvengono nel kernel, dato che ci sono varie costanti
con un certo peso nel kernel che include files i quali bisogna tenere in
considerazione. Per creare binari compatibili a lungo termine bisognerebbe
cambiare verso un API che lascia che i driver interroghino il kernel
dinamicamente per ogni costante importante. E cosi' via. Che Linux diventi
per principianti dipende molto dal volere degli sviluppatori di partire in
parte da UNIX; questo nemmeno loro lo sanno ancora.


Questo e' terreno comune per Amiga e Linux. Il kernel Linux ha certamente
bisogno di essere aggiustato, ma la loro intenzione gia' annunciata e' che
tutte le cose a livello di utente nei programmi per AmigaNG sono scritte per
i loro oggetti API, non per il kernel Linux. Cosi' se ti limiti ai programmi
per AmigaNG, motli dei problemi di Linux, a livello utente, non dovrebbero
esistere. Senza i cambiamenti del kernel pero', non avrai veri autoconfig o
multimedia. Jim Collas dice che i lavori sul kernel verranno fatti, e sanno
cio' che va cambiato. Cosi' e' solo questione di vedere che cosa ci danno,
per giudicare l'uso che l'AmigaNG fa' di Linux.

CONCLUSIONE
-----------

Penso che abbiano una strada tortuosa nel fare questo. D'altro lato,
l'Amigaficazione di Linux, sopratutto se si espande al mercato Linux,
darebbe grande soddisfazione alla comunita' Amiga. A Linux darebbe
finalmente l'abilita' di competere contro Windows sui desktop, semplicemente
facendo le cose meglio -- la quale e' definitivamente una condizione
necessaria per dar battaglia a Microsoft.


Nota:

Questa e' parte di un'intervista piu' lunga con Dave Haynie pubblicata in
numeri recenti della rivista Amiga Cecca "Amiga Review." Dave ha risposto
agli inizi di Giugno e il 22 Luglio ha commentato sulla situazione piu'
recente (i paragrafi in corsivo). Pubblicata con permesso.

Andrej Bunta, editore
and@fornax.elf.stuba.sk



Ritorna alla Pagina Principale


Copyright (C) 1999 - Amiga Group Italia