Luego que el BIOS le pasa el control a LILO, LILO a su vez le pasa el control al núcleo de Linux. El núcleo es el programa central del sistema operativo, que controla a todos los demás. Lo primero que hace Linux una vez que comienza su ejecución es cambiar la CPU a modo protegido. El procesador 80386 que controla su computadora tiene dos modos que se denominan "modo real" y "modo protegido". El sistema operativo DOS corre en modo real, al igual que el BIOS. Sin embargo, los sistemas operativos más avanzados necesitan correr en modo protegido. Por ello, cuando Linux arranca, descarta el BIOS.
Los procesadores distintos al 386 llegan a este estado de manera diferente. Ningún otro procesador necesita cambiar a modo protegido, y sólo unos pocos tienen un contexto tan pesado de carga, como LILO y el BIOS. Una vez que arranca el núcleo, Linux trabaja casi de la misma manera.
A continuación, Linux mira que clase de hardware tiene debajo. Necesita saber que clase de discos rígidos tiene, si hay o no un ratón de bus, si está conectado a una red, y otras trivialidades como esas. Linux no puede recordar ciertas cosas luego de apagado, de manera que las pregunta cada vez que arranca. Afortunadamente, no se las pregunta a Ud.: ¡se las pregunta al hardware! Durante el arranque, el núcleo de Linux muestra unos cuantos mensajes, aunque con ciertas variaciones.
Puede leer acerca de esos mensajes en la Sección 3.4. Este proceso de consulta puede causar algunos problemas con el sistema, pero si lo hace, lo hará probablemente cuando instale Linux por primera vez. Si tiene problemas, consulte la documentación de la distribución.
El núcleo solamente se ocupa de administrar los otros programas, entonces cuando está satisfecho con que todo anda bien debe arrancar otro programa para que haga los trabajos útiles. El programa que el núcleo arranca se llama init. _
4 Cuando hable del 80386, también hago referencia a computadoras basadas en 80486, Pentium, y Pentium Pro a menos que específicamente indique lo contrario. Además, abreviaré 80386 mediante el término 386.
Figura 3.1 El camino que sigue un PC Intel hasta que nos muestra el indicativo del intérprete de comandos. Init puede o no arrancar X. Si lo hace, corre xdm. Si no, corre getty.
Una vez que el núcleo arranca init, no lanza ningún otro programa. El núcleo se transforma así en un administrador y proveedor, no en un programa activo.
Por lo tanto, para saber que es lo que hace la computadora luego que el núcleo arranca, deberemos examinar init. La complicada secuencia de arranque por la que atraviesa init no es idéntica en todas las computadoras. Para Linux existen varias versiones de init, y cada una hace las cosas a su manera. Además también influye si su máquina está en red, e incluso cual distribución utilizó para instalar Linux. Algunas de las cosas que pueden suceder cuando init arranca son:
o El control de integridad del sistema de archivos. ¿Pero qué es un sistema de archivos?, se estará preguntando Ud. . Un sistema de archivos es la disposición de los archivos en el disco rígido. Además permite que Unix sepa cuales partes del disco rígido están ocupadas y cuales no. Desafortunadamente, ciertos factores como los cortes en el suministro de energía hacen que la información que el sistema de archivos tiene sobre la disposición en el disco de los archivos no coincida con la disposición real. En estos casos se ve la utilidad de un programa llamado fsck, que es capaz de encontrar estas situaciones y (con suerte) corregirlas.
o Se lanzan programas especiales de encaminamiento para las redes. Estos programas informan a su computadora cómo se supone que puede comunicarse con las otras.
o Se borran los archivos temporales que crean ciertos programas.
o Se actualiza correctamente el reloj del sistema. Esto es más complicado de lo que puede parecer, pues Unix de manera predeterminada, necesita la hora en UCT (Universal Coordinated Time), también conocido como hora de Greenwich, y el reloj de la CMOS (que es alimentado por una batería dentro de la computadora) muy probablemente estará configurado con la hora local. Esto significa que debe tener algún programa que lea la hora del reloj de la CMOS y la corrija transformándola en hora UCT.
Después que init termina con sus actividades de arranque, comienza con sus tareas planificadas.
init se convierte así en el padre de todos los procesos del sistema Unix. Un proceso es simplemente un programa que está corriendo; como cualquier programa puede correr más de una vez, entonces puede haber más de un proceso para un programa dado en particular.
En Unix, los procesos (instancias de un programa) se crean mediante una llamada al sistema5 (que es un servicio provisto por el núcleo) denominada fork. (Se lo llama "fork" o bifurcación pues un proceso se bifurca en dos independientes.) init forkea (bifurca) unos cuantos procesos, los que a su vez forkean6 otros. En su sistema Linux con toda seguridad init corre varias instancias de un programa llamado getty. getty es el programa que le permitirá iniciar el ingreso al usuario, y que a continuación lanzará el programa login.