Decisamente interessante!! Anche perché può risultare comprensibile anche a chi è profano su queste cose.
Se ho capito bene, riassumendo (... e chiudendo un occhio sull'uso di termini tecnici inappropriati):
I programmi girano in due aree ben definite
kernel-space e
user-space. Tutto quello che gira in user-space, in caso di malfunzionamento , non compromette l'uso del sistema nella sua globalità perché il kernel con tutti i sui applicativi che agiscono alla base del sistema nel kernel-space continuano a garantirne il funzionamento.
Da qui le grosse differenze fra microkernel e kernel monolitico:
Microkernel: kernel ridotto al minimo, i vari servizi se ne stanno al di fuori nello user-space. Teoricamente si ha maggiore stabilità del kernel (e del sistema) dato che gli applicativi rimangono in user-space, però si complica enormemente il “dialogo” fra kernel e resto del sistema.
Kernel monolitico: i servizi sono inglobati nel kernel-space.
Questo semplifica il dialogo fra kernel e resto del sistema. Però un malfunzionamento in un solo applicativo del kernel può mettere a rischio il funzionamento di tutto il sistema.
Linux è un
kernel modulare e al suo interno possono essere aggiunti o tolti dei moduli, che però agiranno sempre in kernel-space, quindi rimane a tutti gli effetti un kernel monolitico.
“Esistono però alcuni driver che funzionano in user-space come i driver di stampa”.
Provo a cercare una logica sulle componenti esterne al kernel Linux che in teoria dovrebbero essere interne.
A quanto si è visto tenere più cose esterne al kernel dovrebbe garantire più stabilità. Però Linus & company suppongo si siano ritrovati a tirar su un qualcosa che potesse funzionare in tempi accettabili. Quindi la minor complessità di un kernel monolitico (al di la delle proprie preferenze) ne avrà decretato il successo. Anche la difficoltà nello sviluppo di Hurd dovrebbe esserne una conferma.
Tuttavia alcune cose... avranno ben pensato di tenerle esterne. Per esempio X. In effetti avere l'interfaccia grafica inglobata nel kernel sarebbe stato un suicidio.
Quindi quello che rimane esterno al kernel sarà li o perché ritenuto troppo rischioso, o magari (molto banalmente... forse troppo) perché qualcuno si è preso la briga di creare tale componente.
Andrebbero intervistati i diretti interessati (yes)
Osservazione: il kernel di Windows, detto
kernel ibrido, a quanto pare è un microkernel che gestisce tutto in kernel-space ???...... complimenti!