Mensajes del núcleo
Cuando se conecta la alimentación a su computadora, aparece una serie de mensajes en la pantalla, que describe el hardware conectado al ordenador. Estos mensajes son producto de la actividad del núcleo de Linux. En esta sección, intentaremos describir y explicar esos mensajes.
Naturalmente, estos mensajes varían de máquina a máquina. Describiré entonces los mensajes que aparecen en la mía. El siguiente ejemplo contiene todos los mensajes estándar y algunos específicos. (En general, la máquina sobre la que voy a realizar la descripción está mínimamente configurada: no verá por lo tanto mucha información relacionada con la configuración de dispositivos.)
Se utilizó Linux versión 1.3.55, uno de los más recientes al momento de escribir.
1. Lo primero que hace Linux es decidir que clase de tarjeta de vídeo y pantalla tiene conectado, de manera de seleccionar un tamaño de letra apropiado. (Cuanto más pequeño es el tamaño, más caben en una pantalla a la vez.) Linux puede consultarle si desea algún tipo de letra en particular, o puede que tenga una selección ya compilada en su interior16.
Console: 16 point font, 400 scans Console: colour VGA+ 80x25, 1 virtual console (max 63)
En este ejemplo, el dueño de la máquina decidió, al momento de compilar, que utilizaría el tipo de letra estándar tamaño grande. Además, notará que la palabra "color" está mal escrita. Evidentemente, Linus aprendió la versión incorrecta de idioma inglés17.
2. La próxima tarea del núcleo es informar acerca de la velocidad de su sistema, medida en "BogoMIPS". Un "MIP" equivale a un millón de instrucciones por cada segundo, mientras que un "BogoMIP" es un "bogus MIP"18: cuantas veces la computadora puede hacer absolutamente nada por cada segundo. (Como este bucle no hace nada en realidad, el número calculado no es tampoco una medida de la velocidad del sistema.) Linux utiliza este número cuando necesita esperar por algún dispositivo de hardware.
Calibrating delay loop.. ok - 33.28 BogoMIPS
3. El núcleo de Linux también nos comenta acerca de la utilización de la memoria:
Memory: 23180k/24576k available (544k kernel code, 384k reserved, 468k data)
Esto significa que la máquina tiene 24 megabytes de memoria. Parte de esta memoria está reservada por el núcleo. El resto puede ser utilizada por los programas. Éste es el lugar temporal conocido como RAM que se utiliza sólo como almacenamiento de corto plazo. Su computadora también dispone de una memoria permanente denominada disco rígido. El contenido del disco rígido se mantiene intacto aún luego de quitar la alimentación del ordenador.
4. A lo largo del proceso de arranque, Linux controla distintas partes del hardware y nos muestra mensajes indicativos de las mismas.
This processor honours the WP bit even when in supervisor mode. Good.
5. Ahora Linux pasa a la configuración de red. Lo que veremos a continuación está mejor explicado en The Linux Networking Guide19 , y está fuera del alcance de este documento.
Swansea University Computer Society NET3.033 for Linux 1.3.50
IP Protocols: ICMP, UDP, TCP
6. Linux soporta la FPU, la unidad de punto flotante20 Ésta es un chip especial (o parte de un chip en el caso del procesador 80486DX) que se ocupa de la aritmética con números no enteros.
Algunos de esos chips no están en buenas condiciones, y cuando Linux trata de identificarlos la máquina "se cuelga"21. La máquina deja de funcionar. Si esto sucede, Ud. verá en su pantalla lo siguiente:
Checking 386/387 coupling...
Sino, el mensaje será:
Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
si está utilizando un 486DX. Si tiene un 386 con un 387, le aparecerá:
Checking 386/387 coupling... Ok, fpu using irq13 error reporting.
7. Y ahora se controla la instrucción "halt".
Checking 'hlt' instruction... Ok.
8. Luego de esta configuración inicial, Linux escribe una línea identificándose a sí mismo. En ella explica cual es la versión del núcleo, la del compilador de C de GNU que se utilizó para compilarlo, y la fecha de dicha compilación.
Linux version 1.3.55 (root@mousehouse) (gcc version 2.7.0) #1 Sun Jan 7 14:56:26 EST 1996
9. El controlador serie comienza a consultar acerca del hardware instalado. Un controlador es una parte del núcleo que controla un dispositivo, normalmente un periférico. Se hace responsable por los detalles de la comunicación entre la CPU y el dispositivo. Esto permite que la gente que escribe aplicaciones de usuario se pueda concentrar en la aplicación, pues no tiene que preocuparse por como trabaja exactamente la computadora.
Serial driver version 4.11 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16450
tty01 at 0x02f8 (irq = 3) is a 16450
tty02 at 0x03e8 (irq = 4) is a 16450
Aquí vemos que ha encontrado tres puertos serie. Un puerto serie es el equivalente del puerto COM en DOS; es el dispositivo que se utiliza normalmente para comunicarse con modems y ratones.
Lo que significan las líneas anteriores es que el puerto serie 0 (COM1) tiene la dirección 0x03f8.
Cuando dicho puerto interrumpe al núcleo, usualmente para decir que tiene datos listos, utiliza la IRQ 422. Las IRQ son un medio que tienen los periféricos de hablarse con el software. Cada puerto serie también tiene un chip controlador, que usualmente se denomina 16450; aunque también puede ser el 8250 o el 16550.
10. A continuación viene el puerto paralelo, que normalmente se conecta a la impresora. Los puertos paralelos en Linux tienen nombres que comienzan con lp. lp son las iniciales de Line Printer23, aunque en los tiempos actuales parece más apropiado usar las iniciales de Laser Printer. (Sin embargo, Linux se comunica sin problemas con cualquier clase de impresora conectada al puerto paralelo: de matriz de puntos, chorro de tinta, o laser.)
lp0 at 0x03bc, (polling)
Este mensaje dice que ha encontrado un puerto paralelo, y que usará el controlador de dispositivo estándar.
11. Linux identifica luego las unidades de disco rígido. En el sistema que le estoy mostrando, mousehouse, tengo instalados dos unidades de disco rígido IDE.
hda: WDC AC2340, 325MB w/127KB Cache, CHS=1010/12/55
hdb: WDC AC2850F, 814MB w/64KB Cache, LBA, CHS=827/32/63
12. El núcleo ahora busca las unidades de disco flexible. En este ejemplo, la máquina tiene dos unidades: la "A" es una unidad de 5 1=4 ", y la "B" es una de 3 1=2 ". Linux denomina fd0 a la unidad "A", y fd1 a la unidad "B".
Floppy drive(s): fd0 is 1.44M, fd1 is 1.2M
floppy: FDC 0 is a National Semiconductor PC87306
13. El próximo controlador que arranca en mi sistema ejemplo es el controlador SLIP. Escribe un mensaje acerca de su configuración.
SLIP: version 0.8.3-NET3.019-NEWTTY (dynamic channels, max=256) (6 bit encapsulation enabled)
CSLIP: code copyright 1989 Regents of the University of California
14. El núcleo explora dentro de los discos rígidos que ha encontrado. Busca las distintas particiones que tiene cada uno. Una partición es una sección lógica de una unidad que se utiliza para evitar que interfieran entre sí distintos sistemas operativos coexistentes. En este ejemplo, la computadora tiene dos discos (hda y hdb) con cuatro y una particiones, respectivamente.
Partition check:
hda: hda1 hda2 hda3 hda4
hdb: hdb1
15. Finalmente, Linux monta la partición raíz. Ésta es la partición del disco en la cual reside el sistema operativo Linux. Cuando Linux "monta" esta partición, hace que esté disponible para los usuarios.
VFS: Mounted root (ext2 filesystem) readonly.
15 N. del T.: why? significa ¿por qué?.
16 "Compilada" se refiere al proceso mediante el cual un programa de computadora escrito por una persona se traduce a algo que entiende la computadora. Si una característica se ha "compilado en su interior" significa que está incluida en el programa.
17 N. del T.: "colour" es la variante ortográfica del inglés insular y "color" la norteamericana.
18 N. del T.: bogus significa espurio (para los argentinos: trucho).
19 N. del T.: Disponible en castellano. Vea el apéndice D.
20 N. del T.: unidad de punto flotante del inglés Floating Point Unit.
21 N. del T.: se cuelga del inglés crashes.
22 N. del T.: IRQ, Interrupt ReQuest (petición de interrupción).
23 N. del T.: Impresora de líneas.