|
MINIX 3: Linux ha i giorni contati? |
|
|
Page 2 of 3 Perché dunque dovremmo interessarci a MINIX quando abbiamo oggi disponibili sistemi operativi completi e funzionali come Linux e FreeBSD? Quello che ci dice Tanenbaum è che MINIX 3 è di gran lunga più sicuro e stabile di un qualsiasi SO a kernel monolitico come Linux e Windows (anche se entrambi sono variazioni del modello monolitico) ed in certi casi sarebbe anche in grado di ripararsi autonomamente se un driver dovesse crashare o bloccarsi in un ciclo infinito. Non solo, ma al crescere della sua complessità sarebbe anche più facile da sviluppare data la sua organizzazione interna che isola le varie componenti e le forza a dialogare utilizzando interfacce ben definite. Lo stesso discorso vale per i driver che possono essere modificati, ricompilati e ricaricati senza riavviare la macchina grazie al fatto di essere implementati come processi in user space. Infatti nei sistemi monolitici un bug nel driver della scheda sonora è in grado di interferire ad esempio sulla gestione dei file system causando gravi danni e perdita di dati. In un sistema a microkernel questo è molto più difficile, se non impossibile, dal momento che i due driver vivono vite separate su due processi diversi e con spazi di indirizzamento diversi. Per una lista completa delle feature di MINIX 3 che concernono la sicurezza e la stabilità del sistema rimando alla pagina Reliability in MINIX 3 e Can We Make Operating Systems Reliable and Secure? Per completezza bisogna però aggiungere che Linux non ignora affatto queste problematiche e le affronta già a modo in qualche modo (moduli del kernel dinamici, udev, FUSE, virtualizzazione, Nooks etc.).
Si noti che punti cruciali come performance, sicurezza e complessità di sviluppo di un SO a microkernel sono stati oggetto di accesi dibattiti, in particolar modo tra Linus Torvalds, il padre di Linux, e Adrew Tanenbaum. Per saperne di più rimando alla lettura del famoso scambio di mail tra Torvalds e Tanenbaum riguardante proprio l'architettura di Linux. Ulteriori informazioni riguardo la recente riapertura del "caso" si possono trovare qui. Ad ogni modo pare inevitabile che il futuro dei SO passi attraverso un architettura a microkernel o se non altro ibrida. Già oggi lo dimostrano ad esempio QNX e Symbian nei sistemi embedded e Mac OSX nei personal computer. Lo stesso Linux sta vedendo il sorgere di progetti che si ispirano al principio della separazione tra kernel e drivers come udev e FUSE. Per non parlare di Microsoft che non sta certo a guardare e che ha recentemente introdotto in Windows Vista il concetto di "User Space Drivers" e che è attivamente impegnata nella ricerca dei SO a microkernel con il suo Syngularity (che utilizza anche altre tecniche più o meno innovative, come la "protezione basata sul linguaggio"). Una menzione particolare merita DragonFly (fork di FreeBSD) il cui kernel ibrido cerca di unificare l'efficienza dei kernel monolitici alla sicurezza e modularità dei microkernel con risultati molto interessanti (si veda DragonFlyBSD su Wikipedia per maggiori dettagli)
|