[Linuxtrent] Re: Andy Tanenbaum, author of Minix, writes an open letter to Intel

  • From: Nicola Manica <nicola.manica@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Wed, 8 Nov 2017 19:01:38 +0100

Non avrei mai pensato di trovare una discussione su microkernel e kernel
standard in questa mailing list: detto questo non potevo non intervenire
(se qualcuno volesse annoiarsi un po' posso passargli la mia tesi di
dottorato in merito alla questione)

Solo un piccolo appunto, i microkernel sono intrisicamente più sicuri di un
kernel standard, proprio per l'architettura con cui sono pensati.

Immaginate di eseguire tutte le operazioni di un sistema operativo in user
space, è evidente che il sistema può controllare accessi alla memoria e
quant'altro.

Il kernel Linux è secondo me uno dei progetti software meglio strutturati,
ma soffre di un problema: è un progetto enorme, e la maggior parte del
codice risiede nei driver, sviluppati da migliaia di persone nel mondo e
con accesso praticamente totale alla macchina.
Avete mai provato a generare montagne di interrupt ad un kernel Linux? Vi
assicuro che dopo poco la macchina non sta bene.. su un microkernel
progettato bene al massimo perde un po' di dati della periferica.

Sulla stabilità non mi esprimo. E' un concetto talmente opinabile che non
vale la pena discuterne.
Negli impianti industriali ci sono microkernel che non vengono mai
riavviati. Linux è molto più a contatto con gli utenti, generalmente dove
vengono eseguiti microkernel nessuno se ne accorge.
Se pensate che esiste una versione di L4 formalmente verificata al 100%,
credo non esista sistema operativo più stabile di questo. Ovviamente copre
un milionesimo dei casi d'uso che copre un kernel Linux moderno.

Minix è stato uno dei progetti più interessanti dal punto di vista teorico,
ma nella pratica l'implementazione era abbastanza passatemi il termine
"lacunosa". La comunicazione IPC era (almeno nelle versioni su cui ho
lavorato) talmente lenta da rendere il sistema non utilizzabile. L4 è
partito da quelle basi teoriche ma ha riscritto tutta la parte di
comunicazione, e vi assicuro che lì le cose cominciavano a girare
decisamente bene. Al tempo (parlo del 2009) si riusciva a far girare un
intero sistema operativo grafico Linux senza problemi come processo
standard di L4.

I microkernel hanno messo la base per i moderni hypervisor, e in ambito
real-time sono ampiamente diffusi.
Nova, l'hypervisor basato su L4, faceva girare al tempo le famose
centraline Volkswagen ;)
Lo ammetto ci ho lavorato anch'io, ma non mi occupavo dei sensori ;).

I vantaggi di passare ad un architettura microkernel ci sono, e sono anche
provati.
Linus non ha mai visto di buon occhio il mondo del real-time, ma dopo
enormi insistenze ha permesso che entrassero tante funzionalità storiche
del real-time nella mainline del kernel. Come in ogni comunità esistono
filosofie diverse e movimenti che la pensano differentemente; nel caso del
kernel di Linux,  Linus ha sempre l'ultima parola. Tanti bravi sviluppatori
se ne sono andati per questo motivo, ma dalla sua Linus ha il merito di
aver creato il progetto opensource più vincente della storia (come ci sia
riuscito con il suo carattere è un mistero per tutti).

Nicola









Il giorno 8 novembre 2017 16:05, Marco Ciampa <dmarc-noreply@xxxxxxxxxxxxx>
ha scritto:

On Wed, Nov 08, 2017 at 04:01:07PM +0100, Marco Ciampa wrote:
Sono convinto che se venissero provati inequivocabilmente dei vantaggi
sostanziali al passaggio all'architettura microkernel, Linus stesso
sancirebbe la deviazione di rotta del progetto Linux verso quella
tecnologia.

Anzi credo che l'abbia anche già annunciato qualche 1 aprile fa...

:-)

--


Marco Ciampa

I know a joke about UDP, but you might not get it.

------------------------

 GNU/Linux User #78271
 FSFE fellow #364

------------------------

--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx



Other related posts: