Conclusione
L'idea dell'articolo nasce dal bisogno di rispondere al classico interrogativo riguardante la natura dei Kernel e la loro differenziazione, domanda alla quale si spera di aver dato una risposta soddisfacente.
Una delle principali lacune delle scienze informatiche consiste proprio nella carenza di spiegazioni chiare e semplici riguardo i principali strumenti di cui fanno utilizzo; solitamente si può discernere fra i tutorial in cui si impara passo a passo a padroneggiarle e i manuali di riferimento, in cui le architetture sono interamente sviluppate ed esposte in maniera fredda e sintetica. Questo approccio scoraggia le persone ad avvicinarsi alle Information Technologies al di fuori del mero utilizzo, rendendo progettisti e sviluppatori dei veri e propri "guru" di una scienza complicata e misteriosa; è evidente come il porre le nozioni in modo diverso possa rendere qualcosa di oscuro e incomprensibile un semplice caso di Problem Solving.
Un Sistema Operativo è il semplice risultato dell'applicazione dei meccanismi classici dell'Ingegneria: studiata approfonditamente l'architettura della macchina ospite, si procede alla risoluzione di un problema che, in questo caso, risulta essere la creazione di un supporto in grado di permettere all'utente di eseguire un elevato numero di mansioni. La fase successiva consiste nella progettazione di un sistema in grado di soddisfare gli obiettivi posti; per far ciò, data la vastità dei problemi contemplati all'interno della soluzione, si applicano strategie atte a ridurre la difficolta' del processo di creazione; se si procedesse a caso sarebbe difficile ottenere soluzioni decenti in tempi accettabili.
Il Kernel è il risultato della trasformazione di un insieme eterogeneo di strumenti e dispositivi, residenti all'interno di un calcolatore, in un pacchetto di servizi software in grado di fornire le basi per lo sviluppo di applicazioni più evolute. L'impiego di una soluzione comporta conseguenze importanti all'interno dello sviluppo di un Sistema Operativo, la scelta dell'architettura influenza tutto il lavoro successivo andando a incidere in maniera importante sulla percezione che l'utente avrà della piattaforma in uso.
La progettazione di un Sistema Operativo è un lavoro complesso, esso prevede lo sviluppo di diverse soluzioni e costringe gli sviluppatori a operare diverse scelte; occorre valutare bene le risorse a disposizione e gli obiettivi preposti prima di procedere con il lavoro, la scorretta implementazione di un servizio o una decisione sbagliata possono portare alla morte prematura del progetto.
Come esempio basta pensare al software GNU/Hurd [2], nato ufficialmente nel 1990 è tutt'ora in via di sviluppo. Esso doveva rappresentare la base per il sistema operativo della Free Software Foundation [3] di Richard Stallman, basato su Microkernel Mach [4] fu soppiantato dal Kernel monolitico Linux di Linus Torvalds per motivi di praticità. Ad oggi gli utenti dellOpen Source conoscono il sistema GNU/Linux mentre GNU/Hurd è un sistema utilizzato da una ristretta "nicchia" di utenti, perlopiù sviluppatori.
Redattore: NoxDaFox