El núcleo de Unix actúa como intermediario entre sus programas y el
ordenador. En primer lugar, gestiona la memoria de todos los programas o
procesos, y se asegura de que se reparten los ciclos del procesador.
Además, proporciona una interfaz portable para que los programas
hablen
fácilmente con su hardware.
Realmente, el núcleo hace más cosas, pero las anteriores son las más importantes.
Los núcleos nuevos normalmente ofrecen la posibilidad de entenderse con más accesorios hardware (o sea, incluyen más manejadores), se ejecutan más rápidamente, son más estables o corrigen errores de otras versiones. Mucha gente se actualiza el núcleo para poder usar nuevos manejadores que necesitan o librarse de ``bugs'' de la versión que usaban.
Véanse el documento Hardware-HOWTO, el fichero config.in
de
las fuentes o simplemente verá lo que hay cuando haga `make
config'
. Esto le mostrará lo soportado por la distribución estándar,
pero no todo, pues algunos son módulos cargables en ejecución (como
manejadores de PCMCIA) y se mantienen y distribuyen por vías distintas.
Actualmente, muy pocos módulos (los no-oficiales) no están incluidos en los fuentes oficiales del kernel. Prácticamente, todos los controladores son modularizables.
He aquí un extracto de lo que aparece en
/usr/src/linux/Documentation/modules.txt
, algo que se debe
leer:
La mayoria de los sistemas de ficheros:
minix, xiafs, msdos, umsdos, sysv, isofs, hpfs, smbfs, nfs.
Soporte SCSI de medio nivel (requeridos por controladores SCSI de
alto y bajo nivel)
La mayoria de los controladores SCSI de bajo nivel: (i.e. aha1542, in2000)
Todos los controladores SCSI de alto nivel: disk, tape, cdrom, generic.
La mayoria de los controladores ethernet: (demasiados para enumerarlos todos, ver:
/usr/src/linux/Documentation/networking/net-modules.txt)
La mayoria de los controladores de CDROM (propietarios):
aztcd: Aztech,Orchid,Okano,Wearnes
cm206: Philips/LMS CM206
gscd: Goldstar GCDR-420
mcd, mcdx: Mitsumi LU005, FX001
optcd: Optics Storage Dolphin 8000AT
sjcd: Sanyo CDR-H94A
sbpcd: Matsushita/Panasonic CR52x, CR56x, CD200,
Longshine LCS-7260, TEAC CD-55A
sonycd535: Sony CDU-531/535, CDU-510/515
Y un monton de modulos, como:
lp: impresora p. paralelo
binfmt_elf: cargador elf
binfmt_java: cargador java
isp16: interfaz cdrom
serial: interfaz serial (tty)
gcc
y libc
necesito? Linus recomienda una en el fichero README
de las fuentes del núcleo.
Si no la tiene, probablemente tenga que actualizarse las librerías
libc
, algo que tampoco es difícil.
Hay partes del código del núcleo que no se enlazan directamente en el
núcleo. Se compilan por separado y luego se incorporan al núcleo que ya
está corriendo. Es la forma preferida de usar algunos manejadores como los
de dispositivos PCMCIA
o de cintas QIC-80/40
ext2
, ide
, o
SCSI
, según el caso), aunque siempre se puede hacer una imagen
initrd
y se sigue pudiendo arrancar con LILO
. kerneld
se
encargará de cargarlos y descargarlos por nosotros cuando el sistema los
necesite o no.
Depende de su configuración. La versión 2.0.10
del núcleo ocupa,
comprimida, 6 megabytes, pero al descomprimir ocupará unos 24 MB.
Pero aquí no acaba la cosa: para compilar se necesita espacio para
ficheros temporales, dependiendo de la configuración que se elija. Por
ejemplo, en un 386, con manejador de red de 3Com y cinco sistemas de
ficheros supone 30 MB. Si a esto añadimos las fuentes comprimidas, serán
36 MB. En otro sistema con menos cosas puede ocupar menos. Además, un
núcleo nuevo tendrá por lo general muchos más ficheros que el antiguo, con
lo que debe asegurarse de que hay espacio de disco suficiente (además, con
los precios que tienen ahora los discos, me puedo permitir el recomendarle
que se compre un disco nuevo para el Linux).
Para mucha gente, se tarda ``muchísimo''. La velocidad del sistema y
la cantidad de memoria son determinantes. En un 486DX4/100 con 16
MB, se tarda unos 20 minutos en compilar el núcleo v1.2 con cinco sistemas
de ficheros, soporte de red y manejadores de tarjetas de sonido. En un
386DX/40 con 8 MB de RAM se tarda una hora y media. Por lo
general se recomienda prepararse un café o ver la televisión (o lo que se
le ocurra
:-)