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 1/2
Punti di vista di un disegnatore di sistemi.
"Amiga" per me e' il set ti filosofie di disegno implementate nei computer
Amiga. Questo e' sia HW che SW, non si puo' (e non si dovrebbe) cercare di
separare i due, sono parte della stessa cosa pr qualsiasi disegnatore di
sistemi.
Andrej> Tutti sanno che sei uno dei migliori progettisti HW che la
piattaforma Amiga abbia mai avuto, il che significa che devi capire anche
problemi SW di basso livello come firmware, device drivers, HAL...
Dave> Certamente. Sin dai primi tempi ho imparato che HW e SW sono due facce
della stessa medaglia. Ho imparato di entrambi leggendo le vecchie riviste
hobbistiche degli anni 70: BYTE, Kilobaud Microcomputing, Creative
Computing, etc. nei tempi in cui costruirsi il proprio computer era qualcosa
simile a metter su il proprio baracchino radio, non ci si specializzava in
HW o SW, si doveva conoscere e saper utilizzare entrambi.
La fase due era il college. Non ero troppo sicuro se laurearmi in Ingegneria
Elettronica (HW) o Informatica (SW), cosi' ho terminato per fare tutti e
due. Mi son messo a cercare un lavoro che richiedesse entrambi, e cio' era
piu' difficile di quanto avessi immaginato, dato che in molte parti del
mondo, HW e SW vivevano nei lati opposti di uno strano muro artificiale. In
effetti il mio primo lavoro appena laureato era presso General Electric, in
un dipartimento chiamato "Disegno Computazionale." Eravano i soli in tutta
la dannata compagnia a cui fosse consentito metter le mani sia sul software
che sull' hardware. Ok, GE era un posto miserabile in cui lavorare, ci son
rimasto quattro mesi. Dopo c'e' stata Commodore.
Su progetti come il C128 mi divenne semppre piu' chiaro che, anche quando
stavo facendo HW, che i due erano cosi' complementari che uno avrebbe fatto
un lavoro orribile se non avesse considerato HW e SW come una cosa sola. Se
disegno un chip senza considerare come dev'essere programmato, sara' senza
dubbio schifoso programmarlo.
Andrej> ...ma ti interessi anche di Sistemi Operativi, conosci molti
linguaggi per computer (40?), hai una chiara visione di come le cose devono
essere e, in generale, ti diverti a imparare e disegnare cose nuove.
Dave> vero...
Andrej> Ci sono alcune persone da queste parti (per lo piu' gente che e'
passata da AmigaOSa Linux prima o dopo) che dicono che non c'e' nulla di
speciale in AmigaOS, che e' solo una mutazione di UNIX di meta' anni 80, ed
una implementata male -- l'argomento e' che non c'e' protezione di memoria,
IPC fatto attraverso scambio di puntatori e' una brutta idea, drivers come
task indipendenti possono sembrare carini ma non c'e' vantaggio.
Dave> Le persone possono dire cio' che vogliono, ma cio' non vuol dire che
abbiano ragione. AmigaOS non ha asolutamente nulla a che fare con UNIX --
nemmeno una minuscola somiglianza. Nessuno con una visione simile capisce
nulla di AmigaOS e/o di UNIX.
E renditi conto che siamo nell'era dell'utilizzatore. Il fatto che uno abbia
usato AmigaOS per un paio d'anni e adesso usa Linux non e' indicativo che
capiscano un tubo di come ciascun S.O. funzioni.
Andrej> Dicono che il modello di spazio del kernel Linux per i driver e piu'
efficiente...
Dave> No, veramente e' molto, molto piu' lento. Vedi, questo e' un esempio
di ignoranza da parte loro. In un sistema tipo UNIX, perdi tutta la
performance in context switching, cosi' un S.O. con microkernel come Mach,
nel quale la maggior parte del S.O. fa girare programmi in modalita'-utente
per fare cose da S.O., e' intrinsecamente piu' lento, tenendo tutto il resto
uguale. Cio e' dovuto al Context Switching: la tua chiamata I/O cambia
verso lo spazio kernel, poi all'utente, poi di nuovo al kernel, poi ancora
all'utente.
Nell' AmigaOS non avviene nulla di tutto cio'. Non c'e' grande Context
Switch per il semplice fatto che non ci si porta in giro tutto quel grosso
contesto protettivo. Le chiamate di sistema su UNIX (e i suoi cloni) sono
sempre care, chiamano sempre il kernel. Su AmigaOS, molte chiamate a Exec
girano su contesto proprio dell'utente, e pure se c'e' uno scambio verso il
modo supervisore, e' ancora molto leggero. Questa e' la ragione per cui si
possono inviare 25,000 messaggi/secondo su Amiga lenti (o giu' di li),
mentre su Linux e' piu' vicino a qualche migliaia, persino su HW che e
molto, molto piu' veloce. Tutto su Amiga e' messaggi e non chiamate al
kernel. Nessuno che ribatta questo puo' aver idea di come l'Amiga funziona.
Andrej>... e quando scritti bene anche piu' sicuri.
Dave> Anche questo e' molto ignorante. Quando i driver sono scritti bene,
sono ugualmente sicuri sia sotto Linux che sotto AmigaOS. Sono meno sicuri
che sotto Mach o qualcosa si simile, per le esatte ragioni dette prima: i
driver Mach di solito girano (o almeno, principalmente girano) in modalita'
utente, cosi' se si bloccano, non disturbano nessuno.
### Fine Parte 1
|