Inserito da: vaanvincent | Settembre 14, 2007

Breve introduzione al Kernel

Sono dell’idea che è inutile fare lunghe discussioni per definire bene cosa è il kernel, ve ne darò un breve accenno, così che non siate impreparati quando sentite il termine.

È una parola di origine anglosassone per definire “nocciolo” o “nucleo” ed è l’insieme delle funzioni principali del sistema come la gestione dell’hardware e dei bus.

Programmare nel kernel è delicato, complesso, e basta un niente per bloccare tutto il sistema perchè non esistono controlli per i processi e per la sovrascrittura delle aree di memoria, però c’è il vantaggio che le applicazioni girano velocemente; Tutte le applicazioni del kernel girano in uno spazio definito “kernel-space”.

Di conseguenza esiste lo “user-space” dove le applicazioni girano in un ambiente protetto generato dal kernel dove possono fare chiamate di sistema alle funzioni di quest’ultimo.

Con il passare degli anni si è messo in dubbio la quantità di processi da lasciare nello userspace; da qui sono nate le varie strategie per ottimizzare il sistema da questo punto di vista.

Linux ad esempio, è lui stesso un Kernel Monolitico; ovvero tutto il necessario per il sistema e per il dialogo con l’hardware gira in un unico programma in kernel-space.

Esiste poi una teoria più “minimalista” ovvero quella del Microkernel, dove si mette unicamente lo stretto necessario in kernel space. (esistono teorie ancora più estremiste e più semplicistiche, come quella del picokernel anche detto nanokernel, che include in kernel-space solo le operazioni riguardanti la Cpu).

Non per fare nomi, ma cognomi, Gates ha avuto la grandissima idea di fare Windows con un microkernel, però includendo la grafica in kernel-space (in parole povere i peggiori aspetti possibili).

Linux viene a volte “offeso” perchè sembra che il termine monolitico riporti l’idea dell’età della pietra. Linux è un sistema modulare, non soltanto a partire dal sistema dei pacchetti (guerre di religione a parte, sto lodando sia Deb (quindi APT)  sia Rpm) ma anche da un punto di vista di architettura; immaginate linux come una grande macchina di cui potete sostituire i pezzi quando trovate un componente migliore o che preferite, la stessa cosa accade in Linux per quanto riguarda i driver, il decorator, il window manager, ecc…

Vincent



Risposte

  1. Una volta ho provato a ricompilare il kernel e ubuntu nn è più partito XD

  2. Ciao!! Passo per salutarti e farti gli auguri per una buona carriera universitaria… dovunque tu vada fatti valere!!!

    Dal tuo allievo di Turing (hm, vabbè insomma si dai… -.-) Giacomo


Lascia un commento

La tua risposta:

Categorie