![]() |
![]() |
La imagen (o copia) del "Kernel" es la que regirá el funcionamiento del sistema, esta imagen del "Kernel" puede encontrarse en Disco Duro o bien en un "Floppy" (tambien conocido como "Boot Floppy"),pero una vez leeida esta imagen (al arranque) pasa a memoria RAM donde permanecerá indefinidamente hasta que el sistema sea reiniciado
Para que esta imagen sea cargada en el sistema se utiliza generalmente LILO "Linux Loader" que es un Administratador de Arranque ("Boot Manager"); a pesar de su nombre, LILO es capaz de arrancar cualquier sistema operativo (Windows,Sun,etc..) para el que éste fue configurado.
La configuración de LILO depende en gran parte del archivo /etc/lilo.conf , este archivo contiene los parametros que seran utilizados por LILO. Cuando se ejecuta el comando lilo (ubicado en el subdirectorio /sbin ) LILO será instalado en la ubicación que se haya indicado en /etc/lilo.conf , esta ubicación suele ser un "Master Boot Record" ya sea de un Floppy o Disco Duro. NOTA: LILO SOLO INDICA donde se encuentran los archivos generales de configuración (en Linux el "Kernel", en Windows "command.com" y el registro), esto se observará a continuación.
La primera sección de lilo.conf contiene los parameteros de Instalación de LILO, esto es, donde será instalado LILO.
boot=/dev/fd0 compact map=/boot/map install=/boot/boot.b prompt timeout=50 |
El parametro boot=/dev/fd0
indica que LILO deberá ser instalado en el dispositivo /dev/fd0
, lo cual equivale al "Master Boot Record" del "Floppy Drive" del Sistema, si se deseara instalar LILO en el "Master Boot Record" de un disco duro se especificaria boot=/dev/hda
, lo cual indica el MBR del primer disco duro del servidor. Las demas opciones especifican otros parameteros importantes, sin embargo, es raro que estos valores cambien en instalaciones.
Las siguientes secciones de lilo.conf son denominadas Stanzas y contienen información referente a los sistemas operativos que LILO es capaz de ejecutar al arranque del sistema.
#Stanza para iniciar Linux image=/boot/vmlinuz label=linux root=/dev/hda1 read-only #Stanza para iniciar Windows 95/98 other=/dev/hda2 label=windows table=/dev/hda |
El parametro image=/boot/vmlinuz
indica que el archivo vmlinuz
es la imagen del "Kernel" que será utilizada por LILO al arranque del sistema. label = linux
, es la opción que aparecerá en el menú de LILO, mientras que root=/dev/hda1
indica que la particion número 1 del primer disco ( /dev/hda1
) contiene el sistema raiz de archivos Linux que fue definido al instalar el Software.
La segunda Stanza define los parametros para cargar Windows 95/98 al arranque (en vez de Linux), el parametro other=/dev/hda2
especifica que la partición /dev/hda2
contiene el sistema operativo Windows, mientras que table=/dev/hda
es el disco que contiene la partición Windows y el parametero label=windows
será la opcion del menú LILO.
Una vez finalizada la configuración de lilo.conf se ejecuta el comando lilo
ubicado en el directorio /sbin
, lo cual copiara LILO al lugar indicado. Al iniciar el Sistema si se espcifica un "Master Boot Record" (via el BIOS del Sistema) que contenga LILO, apareceran las opciones para cargar los sistemas operativos Linux y Windows.
En dado caso que sea necesario, la manera más fácil de eliminar LILO de un "Master Boot Record" es mediante el comando: FDISK /MBR
Este comando sobre-escribira un "Boot record" del tipo MS-DOS, eliminando LILO, a su vez LILO guardará una copia de este "Boot Record" sobre-escirto de la forma /boot/boot.0200
. Inclusive si se desea volver a pasar este "Master Boot Record" al disco se ejecutaria el siguiente comando:
|
Lo anterior copiaria el archivo /boot/boot.0200
al "Master Boot Record" del primer disco del sistema ( /dev/hda
); a pesar que los archivos boot.0200 son de 512 bytes,sólo es necesario copiar los primeros 446 bytes al MBR.
También es posible crear una imagen del "Kernel" en un "Floppy Disk" sin el uso de LILO, aunque claro esta , si se inicia el sistema con este Floppy no existira la posibilidad de elegir entre sistemas operativos, sino que Linux será cargado automaticamente.
Como se mencionó anteriormente la imagen del "Kernel" generalmente es un archivo llamado vmlinuz ubicado en el subdirectorio /boot , esta imagen al igual que la configuración de LILO indica la particion del sistema que contiene el directorio raiz ("root directory") que fue definido al instalar el Software. Para verificar el directorio raiz definido en la imagen, se utiliza el comando rdev
.
osmosis# rdev /boot/vmlinuz Root Device /dev/hda1 |
Lo anterior indica que el directorio raiz de esta imagen se encuentra /dev/hda1
, la primer partición del disco. Este parametro es de suma importancia cuando no se utiliza LILO, ya que al ser leeida la imagen del "Kernel", éste continuará con el arranque leeyendo archivos de este directorio raiz, como: inittab,/rc.d/init.d/*....etc.En dado caso que este directorio raiz no se encuentre bajo la particion adecuada , se modifica de la siguiente manera:
osmosis# rdev /boot/vmlinuz /dev/hda2 |
Lo anterior cambia el directorio raiz de vmlinuz
a la partición 2 del primer disco. NOTA: Verifique esta configuración de nuevo con el comando rdev /boot/vmlinuz
*NOTA: Para formatear el Floppy: osmosis# mkfs -t ext2 /dev/fd0 1440
Ahora, para copiar esta imagen a un "Floppy" se utiliza el siguiente comando:
|
Ya que sea ejecutado este comando el "Floppy" podrá ser utilizado para cargar la imagen del "Kernel" al iniciar el sistema.
En la sección de LILO se pudo percatar que la imagén del "Kernel" se encuentra en un archivo llamado vmlinuz
en el subdirectorio /boot
, el nombre de la imagén no tiene mucha importancia , inclusive se pueden tener 4 o 5 imagenes diferentes en el sistema, el problema es que solo una puede ser utilizada para ejecutarse en el sistema, y por convención esta se llama vmlinuz.
Una de las razones más comunes por las cuales se genera otra imagen del "Kernel" es cuando se requiere soporte para un tipo especial de Hardware o funcionalidad adicional como multiples direcciones IP , debido a que este tipo de funcionalidades ocupan de mayor espacio en el "Kernel", muchas imagenes de "Kernel" no vienen configuradas con estas opciones, ya que forzarian al "Kernel" a ocupar mayor memoria RAM, y en sistemas en los que el RAM es limitado, es un inconveniente que ésta memoria se encuentre ocupada por funciones que rara vez son utilizadas.
El codigo fuente del "Kernel", siempre se encuentra en el subdirectorio /usr/src/linux/ , la ubicación de este codigo es importante ya que cuando se compilan algunos programas estos hacen uso del codigo fuente y lo tratan de localizar en este subdirectorio que es utilizado por convención.
El "Kernel" es distribuido comunmente en un archivo Tar,este archivo Tar es descomprimido en el subdirectorio /usr/src/linux ; en el sitio http://www.kernel.org se encuentra un deposito de diferentes versiones del Kernel. Cabe mencionar que las versiones pares del "Kernel" son consideradas estables (2.0,2.2,2.4..), mientras los numeros impares son considerados inestables o de prueba (2.1,2.3,2.5...). Los numeros que van más alla de la segunda cifra son considerados "patches".
En ocasiones ocurre la necesidad de aplicar un patch al Codigo Fuente del Kernel que posee el sistema, estos patches deben de ser aplicados al codigo fuente en orden numerico y en el subdirectorio /usr/src/ , se utiliza el siguiente comando:
osmosis# gunzip -c <nombre_del_archivo_patch> | patch -p0
|
Una vez aplicados los patch, se debe verificar que estos hayan sido aplicados correctamente:
find /usr/src/linux -follow -name "*.rej" -print
find /usr/src/linux -follow -name "*#" -print
|
Si los comandos anteriores despliegan un archivo, esto significa que el patch no fue aplicado correctamente, es imporatante corregir esto, ya que si existen errores es muy probable que el intentar generar una imagen del "Kernel" genere un error.
Para generar una imagen del "Kernel" se requieren de 6 pasos:
make config
, esto iniciara un proceso de diversas preguntas que determinaran la composición del "Kernel"; existen otras opciones para realizar este proceso, ellas son: make menuconfig
que utiliza un medio más gráfico, y make xconfig
que es utilizado de
X Windows
.
m
, esta opción significa que se desea tener la funcionalidad en la imagen del "Kernel" mediante
Modulos de Carga
Makefile
que se encuentra en /usr/src/linux , ahora es necesario encontrar las
dependencias de los archivos que son llamados de este Makefile
,
para esto se utiliza el comando: make dep
. make clean
make zImage
; este proceso puede tardarse desde unos minutos hasta varia horas, dependiendo de las funcionalidades que haya agregado a la imagen del "Kernel" y el sistema en el que se este llevando acabo la compilación (cantidad de RAM, procesador...), la imagen compilada del kernel residirá en el subdirectorio usr/src/linux/arch/i386/zImage
(si el procesador no es Intel 386, el subdirectorio i386
cambiara dependiendo del tipo de procesador.
Los modulos ("drivers") del sistema se encuentran en el subdirectorio /lib/modules/<version_del_kernel> , bajo subdirectorios que clasifican los tipos de drivers (cdrom,video,pcmcia...), cada archivo es un archivo objeto ( terminación .o ). Cuando se ejecutan los comandos make modules
y make modules_install
(al compilar el codigo fuente del "Kernel"), los drivers que se instalan son aquellos que forman parte de la distribución del "Kernel" , sin embargo, hay ocasiones en que los vendedores de cierto Hardware proporcionan su driver para que este sea cargado como modulo en el "Kernel", por convención estos también se instalan en el sudirectorio /lib/modules/<version_del_kernel> .
insmod
es el comando que comunmente se utiliza para activar
un modulo en el "Kernel".
osmosis# insmod /lib/modules/2.2.5-15/misc/joystick.o
|
Activaria el modulo joystick.o
para utilizar un "joystick" en el sistema.
En ocasiones se requiere que cierto modulo se encuentre en el sistema para que otro pueda ser activado, para esta labor es necesario generar una base de los modulos con todas sus dependencias ( modules.dep ) , el siguiente comando lo realiza:
osmosis# depmod -a
|
Para activar un modulo y en dado caso otros modulos necesarios para su funcionamiento, se utiliza el comando modprobe
osmosis# modprobe radio-aztech
|
Activaria el modulo radio-aztech
con todos los modulos que dependan de éste.
Para eliminar un modulo de la imagen del "Kernel" se utiliza rmmod
:
osmosis# rmmod ftap
|
Eliminaria el modulo ftap
de la imagen actual del sistema. Para observar que modulos se encuentran activos en la imagen del sistema se utiliza el comando lsmod
.
En dado caso que se requiera activar los modulos al arranque del sistema, es posible colocar los comandos insmod
o modprobe
en el archivo de arranque rc.local
ubicado en /etc/rc.d/
Le intereso el contenido ? | Quizas requiera un servicio de Tecnologia ? | Le gustaria que le avisaramos de nuestras actualizaciones ? |
Recomiende esta pagina a un amigo | Servicios OsmosisLatina | Agregese a la lista de correo de OsmosisLatina |
webmaster@osmosislatina.com | ©2000-2001 OsmosisLatina |