Compilazione del Kernel

La cosa piu' importante di ogni sistema operativo e'il Kernel. I programmi utilizzano le funzioni fornite dalkernel in modo da non dover agire direttamente sulla CPU.Linux da buon sistema operativo "open source"permette la sua compilazione in modo poterlo adattare alleproprie esigenze. Voi vi chiederete a cosa serve puo'servire compilare il kernel: prima di tutto rende piu'snello il sistema (volete mettere caricare tutti i driver osolo quelli che vi servono?) e poi permette di sapereesattamente cosa abbiamo caricato nel sistema.
Il kernelpuo' essere compilato secondo due modalita':

  1. Kernel monolitico
  2. Kernel modulare


Configurazione

Prima di tutto entrate nella directory/usr/src/linux
Il kernel puo' essere configurato in 3 modi:

  1. in modalita' testo: lanciando il comando make config si entra nella modalita' solo testo.
    E' la modalita' piu' ostica e piu' soggetta ad errori.
  2. in modalita' grafica: lanciando il comando make menuconfig si ottiene la schermata seguente:

       +------------------------- Main Menu------------------------+



|  Arrow keys navigate the menu.   selectssubmenus --->.     |



|  Highlighted letters are hotkeys. Pressing  includes,  excludes, |



|   modularizes features.  Press  toexit,  for Help.     |



|  Legend: [*] built-in  [ ] excluded  module  < > module capable    |



|+---------------------------------------------------------------------+|



| |      Code maturity leveloptions --->                             | |



| |      Processor type andfeatures --->                             | |



| |      Loadable modulesupport --->                                 | |



| |      General setup --->                                           | |



| |      Plug and Playsupport --->                                   | |



| |      Block devices --->                                           | |



| |      Networking options --->                                    | |



| |      SCSI support --->                                            | |



| |      Network devicesupport --->                                  | |



| |      Amateur Radiosupport --->                                   | |



| |      ISDN subsystem --->                                          | |



| +------v(+)-----------------------------------------+|



+---------------------------------------------------+



|                   





3. Tramite X-Windows: con il comando makexconfig si accede al seguente menu' grafico:

Kernel Monolitico

Un kernel monolitico viene archiviato in un solo file. Percompilare tale tipo di kernel e' necesario usare iseguenti comandi:

make dep && make clean && make bzImage&& make bzlilo

Adesso spieghiamo il significato dei comandi. Il comandomake dep controlla che la tua configurazione delkernel soddisfi le dipendenze necessarie alla compilazione.Il comando make clean toglie file inutili chepotrebbero disturbare la compilazione. Il comando makebzImage e' il comando di compilazione vera e propria,creando un kernel compresso. Il comando make bzlilocollega il lilo al nuovo kernel.

 

Kernel Modulare

Il kernel modulare va a creare un file in piu' a deiriferimenti a moduli esterni, che verranno poi compilati aparte. Per usare il kernel modulare sono necessari deiprogrammi atti a gestire i moduli. Per compilarlo si devonoutilizzare i seguenti comandi:

make dep && make clean && make bzImage&& make modules && make modules_install

Cosi' facendo si ottiene una serie di file oggetto (diestenzione .o) pronti per essere gestiti.