Scopro soltanto oggi,
venendo a conoscenza del fatto che Tanembaum ha appena sviluppato il sistema operativo minix 3,
che linux è obsoleto.
Il primo ad accorgersene è stato proprio Andy Tanembaum addirittura nel lontano 1992,
e adesso tocca a me, con questo articolo
http://it.wikipedia.org/wiki/Microkernel
Ho cercato un pò in giro ma mi sembra che la discussione sia ferma a quel fatidico 1992 che ormai si può già considerare preistoria,
si può ancora ritenere linux (e generalizzando tutti i kernel monolitici) obsoleto? oppure i micro-kernel possono avere un'applicazione pratica soltanto sui dispositivi embedded ?
Il tempo di spolverare il mio vecchio 386 e ci installo minix3
jappilas
24-10-2005, 18:50
Scopro soltanto oggi,
venendo a conoscenza del fatto che Tanembaum ha appena sviluppato il istema operativo minix 3, che linux è obsoleto.
beh, non è che sia niente di fantascientifico... :p
Torvalds ha iniziato a svilupparlo nel '91 prendendo a modello sistemi Unix (monolitici) preesistenti , seguendo fin dall' inizio un approccio rivolto più alla semplicità concettuale e alla praticità ("mi serve al più presto un kernel che funzioni") che all' eleganza o all' innovazione (cosa perseguita da altri progetti che portavano avanti ricerca pura in campo sistemi operativi)
approccio pratico che però ha fatto sì che il resto del mondo si appassionasse a contribuire all' evoluzione del sistema con migliaia di modifiche progressive...
Il primo ad accorgersene è stato proprio Andy Tanembaum addirittura nel lontano 1992,
e adesso tocca a me, con questo articolo
http://it.wikipedia.org/wiki/Microkernel
Ho cercato un pò in giro ma mi sembra che la discussione sia ferma a quel fatidico 1992
in realtà la "discussione", laddove non trovi comparazioni esplicite che spesso sfociano nel flame, prosegue su praticamente ogni sito dedicato a un OS da parte dei suoi sviluppatori, attraverso i fatti
ora, se avessi sottomano una lista esaustiva di tutti gli OS e kernel noti (che sono tanti)...
si può ancora ritenere linux (e generalizzando tutti i kernel monolitici) obsoleto? oppure i micro-kernel possono avere un'applicazione pratica soltanto sui dispositivi embedded ?
- un microkernel puro impone che qualsiasi servizio sia servito da programmi user space: soluzione molto pulita sul piano estetico, della sicurezza e della gestibilità (il processo che fornisce la gestione dei pacchetti IP appare nella lista dei processi, quindi se va in "palla" lo posso fermare e riavviare) , complessa alla pratica: sono molti di più i cambi di contesto tra singoli processi utente e non solo tar i processi e il kernel, inoltre si pone la necessità di far comunicare i processi utente gli uni con gli altri : a meno di avere a disposizione le fantomatiche e miracolose "Hyperqueues" (code di messaggi gestite senza context switch: alla base del design di un progetto di OS potenzialmente innovativo, si sono rivelate estremamente problematiche come sicurezza e stabilità intrinseca) è tutto "overhead" potenziale
sì che alcuni sistemi a microkernel molto recenti (i kernel dell' università di Dresda, la famiglia L4) hanno affrontato e ridimensionato parecchio i problemi "classici" dei microkernel... ad esempio per quanto riguarda la Inter Process Communication, migliorano la situazione utilizzando routine in assembly molto corte per il caso di messaggio non tracciato (non inserito in una coda messaggi)
l' approccio seguito dalla maggioranza degli OS mainstream attuali è però il kernel ibrido, con svariate componenti (file system di basso livello, filesystem di alto livello, networking e audio) in kernel space, componenti però implementate come moduli indipendenti sia a livello binario ("librerie" caricabili in secondo tempo senza ricompilare), e possibilmente come blocchi di codice separati da API formali
una cosa simile viene incontro sia all' esigenza di ridurre la complessità (cioè gli overhead di un sistema in "assetto minimo" che garantisca comunque la funzionalità) e al tempo stesso mantenere una buona gestibilità ...
in teoria c'è il rischio di kernel panic se qualche funzione dei sottosistemi ha dei problemi... lo si compensa per quanto possibile con un lavoro più esaustivo di design e debug sui blocchi che li compongono, e con la possibilità di deallocare e caricare driver e moduli su un sistema "live" senza riavviare
linux è per alcuni versi nato "obsoleto", ma ho l' impressione fosse più "obsoleto" nel decennio scorso: la monoliticità nelle prime versioni (prive di supporto per i loadable modules) imponeva di ricompilarlo se si doveva aggiornare un driver o applicare le correzioni per qualche bug, e non solo per ottimizzarlo come fa volutamente gentoo... negli anni però il suo modello di sviluppo lo ha fatto evolvere in una entità radicalmente diversa (strutturata in modo simile, ma diversa come implementazione dei singoli sottosistemi) dal linux di 12 anni fa, e quindi in grado le ultime versioni, di rispondere anche alle esigenze dei sistemi embedded (almeno quelli non life-critical ) ...
anche perchè, visto che alla fine su tali sistemi, proprio perchè embedded, la configurazione HW non varia, e non varia più di tanto il range dei compiti che alla macchina si affidano, ci si può permettere di avere un kernel monolitico, a patto che soddisfi i requisiti
se invece per embedded intendi "sistemi di controllo con vincoli realtime" allora ci sono dei casi in cui un kernel puramente "micro" (che poi, consiste nel process/thread scheduler e poco altro) può dare maggiori garanzie, perchè si vuole ottenere che il kernel non introduca, ogni volta che è invocato, latenze superiori a tot (nel worst case) milli o microsecondi e permetta al SW utente di eseguire proprie funzioni rispettado vincoli temporali arbitrari...
Il tempo di spolverare il mio vecchio 386 e ci installo minix3
buon divertimento :D
grazie raga ... c'è sempre da imparare qualcosa da pinguinacci navigati come voi... :D :) :p ;)
jappilas
24-10-2005, 20:04
mah se pensi che di linux e altri kernel sto studiando struttura generale, soluzioni implementative e funzionamento , e però non li uso... :D
(sto comunque ponderando DFBSD... )
jappilas
24-10-2005, 20:05
post venuto doppio causa problemi al browser
mah se pensi che di linux e altri kernel sto studiando struttura generale, soluzioni implementative e funzionamento , e però non li uso... :D
(sto comunque ponderando DFBSD... )
jappilas rimango sempre affascinato da tutto quello che scrivi...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.