SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
Prof. Dr. Jorge Domínguez Chávez
Entendiendo el inicio de operaciones de LINUX
Todos los días, miles de usuarios de LINUX encienden sus computadores, esperan pocos segundos (o
minutos dependiendo la velocidad de su CPU) para ver a su sistema operativo favorito cargar, y obtener
la pantalla de bienvenida !!! Les causa un inmenso placer hacer log en su sistema operativo favorito y
trabajar.
El Proceso de arranque en LINUX es el proceso de arranque de un sistema operativo que en muchos
aspectos es similar a los procesos de arranque de BSD1
y otros sistemas UNIX2
, de los cuales deriva.
¿Cuáles son los objetivos de este trabajo?
1. Ofrecer una descripción básica del trabajo interno y de las operaciones del núcleo (kernel) de
LINUX en favor de los lectores.
2. Todos los archivos mencionados en este trabajo se refieren al núcleo de LINUX 3.2. Aunque
estos archivos son comunes a todo UX* y pueden ser encontrados en cualquier sistema Linux,
el autor utiliza la versión Debian Wheezy.
Proceso típico
En LINUX, el flujo de control durante el arranque es desde el BIOS, al gestor de inicio y al núcleo
(KERNEL). El núcleo inicia el planificador (para multitarea) y ejecuta el primer espacio de usuario (es
decir, fuera del espacio del núcleo) y el programa de arranque (que establece el entorno de usuario y
permite la interacción del usuario y el inicio de sesión), momento en el que el núcleo se inactiva hasta
ser llamado externamente.
La etapa del cargador de inicio no es totalmente necesaria. Determinados BIOS pueden cargar y pasar
el control a LINUX sin hacer uso del cargador. Cada proceso de arranque será diferente dependiendo de
la arquitectura del procesador y el BIOS.
1. El BIOS realiza las tareas de inicio específicas del hardware.
2. Una vez que éste es reconocido y se inicia correctamente, el BIOS carga y ejecuta el código de
la partición de arranque del dispositivo de arranque designado, que contiene la fase 1 de un
gestor de arranque LINUX. La fase 1 carga la fase 2 (la mayor parte del código del gestor de
arranque). Algunos cargadores pueden utilizar una fase intermedia (conocida como fase 1.5)
1 Berkeley Software Distribution o BSD (en castellano, «distribución de software Berkeley») es un sistema operativo
derivado del sistema UNIX generado por los aportes realizados a ese sistema por la Universidad de California en Berkeley,
USA.
2 Unix (registrado oficialmente como UNIX®) es un sistema operativo portable, multitarea y multiusuario; desarrollado, en
principio, en 1969, por los Laboratorios Bell de ATT.
para lograr esto, ya que los modernos discos de gran capacidad no pueden ser totalmente leídos
sin código adicional.
3. El gestor de arranque, a menudo, presenta al usuario un menú de opciones posibles de arranque.
Luego, carga el sistema operativo, al que descomprime en la memoria y establece las funciones
tanto del sistema como del hardware esencial y la paginación de memoria, previo a llamar a la
función start_kernel().
4. A continuación, la función start_kernel()realiza la mayor parte de la configuración del
sistema (interrupciones, el resto de la gestión de memoria, la inicialización del dispositivo,
controladores, etc), antes de continuar, por separado el proceso, inactivo y planificador, así
como el proceso de Init (que se ejecuta en el espacio de usuario).
5. El planificador toma control efectivo de la gestión del sistema y el núcleo queda inactivo.
6. El proceso Init ejecuta los comandos (scripts) necesarios para configurar todos los servicios y
estructuras que no sean del sistema operativo, a fin de permitir que el entorno de usuario sea
creado y pueda presentarse al usuario con una pantalla de inicio de sesión.
En el apagado, Init es llamado a cerrar las funcionalidades del espacio de usuario de una manera
controlada, a través de secuencias de comandos, tras lo cual termina y el núcleo ejecuta el apagado.
Espacio de usuario temprano
El espacio de usuario temprano se utiliza en versiones recientes del núcleo de LINUX para sustituir
tantas funciones como sea posible, funciones que originalmente se cargarían en el núcleo durante el
proceso de inicio. Los usos típicos del espacio de usuario temprano son para detectar los controladores
de dispositivos (Drivers) necesarios para cargar el sistema de archivos del espacio de usuario principal
y cargarlos desde un sistema de archivos temporal.
Este espacio, el cual es externo al núcleo se refiere a un espacio de aplicación, típicamente UNIX o en
sistemas operativos UX*. Algunas veces, la expresión espacio de usuario puede referirse a una
aplicación que lleva a cabo sus propias llamadas al sistema o su propia entrada y salida (E/S). Por lo
común, como parte de una aplicación, hará llamadas al sistema y a otras actividades del sistema desde
el núcleo.
En el sentido jerárquico del sistema de archivos, el espacio de usuario se refiere a cualquier espacio de
almacenamiento en disco del sistema que no es parte de su almacenamiento crítico, es decir, el espacio
de almacenamiento de los usuarios, como sus documentos personales y otros datos no críticos. En los
sistemas Unix reside en los directorios /home, /export/home o /usr/home.
Proceso en detalle
Como primer punto revisamos el proceso de carga o boot process del Sistema Operativo LINUX.
Vemos que LINUX pasa por diferentes etapas de carga. Comprender como LINUX carga es muy
importante en términos de manejo efectivo de los errores en caso de que el proceso falle. Averiguar lo
que ha pasado y pasa en las etapas de la secuencia de arranque es de suma importancia para un buen
funcionamiento de su computador y de su sistema operativo LINUX.
En LINUX hay 6 etapas de carga, vea la figura 1. Luego se discuten esas etapas en detalle.
BIOS (Sistema Básico de Entrada Salida)
1. Encendido del pc, el hardware transfiere el control a BIOS.
2. BIOS es el primer programa en ejecutarse y es independiente del Sistema Operativo.
3. BIOS reside en la ROM (Memoria sólo Lectura).
4. El primer paso de BIOS es Potenciar Autoprueba (POST) el cual recorre la información del
hardware y verifica el inicio de carga (bootloader).
5. Recorre los dispositivos de almacenamiento de datos (Floppy, CD y/o DVD, y USB). Durante
el período de recorrido, el usuario puede presionar las teclas (F2, F12 esto dependen de su
computadora) para cambiar la secuencia de carga de su sistema.
6. BIOS lee el primer sector del disco duro, al que se denomina sector de carga y donde reside el
proceso de inicio de carga (bootloader). Una vez que éste es detectado, carga la BIOS y pasa el
control al bootloader, luego se inicia el siguiente nivel en la secuencia de carga.
MBR (Registro Maestro de Carga)
1. Un registro de inicio principal, también conocido como registro maestro de inicio o master boot
record (abreviado MBR) es el primer sector ("sector cero") de un dispositivo de
almacenamiento de datos, como un disco duro, cd, dvd, usb. A veces, MBR se emplea para el
inicio del sistema operativo con bootstrap, otras veces es usado para almacenar una tabla de
particiones y, en ocasiones, se usa sólo para identificar un dispositivo de disco individual,
aunque en algunas máquinas esto último no se usa y es ignorado.
2. En la práctica, el MBR casi siempre se refiere al sector de inicio de 512 bytes, o el sector de
partición de una partición para computadores compatibles con IBM PC. Debido a la amplia
implementación de computadores PC clones, este tipo de MBR se usa mucho, hasta el punto de
ser incorporado en otros tipos de computador y en nuevos estándares multiplataforma para el
particionado y el inicio. Ver siguiente tabla.
Figura 1: Proceso de inicio de
carga en LINUX
Almacenamiento de un master boot record estándar
Dirección Descripción
0x0000 Área de código
0x01B8 4 bytes; firma del disco (opcional)
0x01BC 2 bytes; normalmente 0x0000
0x01BE
Tabla de particiones3
primarias, cada entrada es de 16 bytes (esquema
estándar de la tabla de particiones del MBR)
0x01FE 2 bytes; firma del MBR (0x55AA)
3. MBR tiene un tamaño de 512 bytes, divididos en tres componentes:
1. Los primeros 446 bytes son el iniciador de carga primario (sólo código ejecutable).
2. Los siguientes 64 bytes son información de la tabla de particiones.
3. Los últimos 2 bytes son usados como número mágico (validación verificación de MBR).
Primer sector físico del disco (pista cero)
446 bytes Código máquina (gestor de inicio)
64 bytes
Tabla de particiones (4 registros que definen cada una de las
particiones primarias)
2 bytes Firma de unidad de inicio ("55h AAh" en hexadecimal)
Registro de la tabla de particiones - 16 bytes
Offset Descripción
0x00 Binario codificado en decimal
0x01 Más binario, Cabezal, Sector (CHS) del primer sector en la partición.
0x04 Tipo de partición
0x05 Cilindro, Cabezal, Sector (CHS) del último sector de la partición.
3 Una partición de un disco duro es una división lógica en una unidad de almacenamiento (por ejemplo
un disco duro o unidad flash), en la cual se alojan y organizan los archivos mediante un sistema de
archivos. Existen distintos esquemas de particiones para la distribución de particiones en un disco. Los
más conocidos y difundidos son MBR (Master Boot Record) y GPT (GUID Partition Table). Las
particiones, para contener datos tienen que poseer un sistema de archivos. El espacio no asignado en un
disco no es una partición, por lo tanto no puede tener un sistema de archivos. Existen múltiples
sistemas de archivos, con diferentes características, como FAT, NTFS, FAT32, EXT2, EXT3, EXT4,
Btrfs, FedFS, Reise, Reiser4 y otros.
Los discos ópticos (DVD, CD) utilizan otro tipo de particiones llamada Formato de Disco Universal
( UDF o Universal Disc Format), el cual agrega archivos y carpetas y es por ello que es usado por la
mayoría de software de escritura por paquetes, conocidos como programas de grabación de unidades
ópticas. Este sistema de archivos es obligatorio en unidades de (DVD) pero también se admiten en
algunos (CD)
0x08 (4 bytes) Logical block address del primer sector de la partición
0x0C (4 bytes) Longitud de la partición, en sectores
4. Bootloader puede residir en el MBR o en cualquier otra localidad.
5. MBR contiene información de GRUB/LILO y ejecuta su carga.
GRUB (GRand Unified Bootloader)
1. GRUB se carga y se ejecuta en 4 etapas:
1. La primera etapa del cargador la lee el BIOS desde el MBR.
2. La primera etapa carga el resto del gestor de arranque (segunda etapa). Si la segunda
etapa está en una unidad grande, en ocasiones se carga una fase intermedia 1.5, que
contiene código adicional para permitir que los cilindros por encima de 1024, o unidades
tipo LBA, puedan leerse. El gestor de arranque 1.5 es almacenado (si es necesario) en el
MBR o en la partición de arranque.
3. La segunda etapa del gestor de arranque ejecuta y muestra el menú de inicio de GRUB
que permite al usuario elegir un sistema operativo y examinar y modificar los
parámetros de inicio.
4. Después de elegir un sistema operativo, se carga y se le pasa el control.
GRUB soporta métodos de arranque directo, arranque chain-loading, LBA, ext2, ext3, ext4 y hasta "un
pre-sistema operativo en máquinas x86 totalmente basado en comandos". Contiene tres interfaces: un
menú de selección, un editor de configuración y una consola de línea de comandos.
2. GRUB tiene su propio menú e interface y tiene la capacidad de navegar por el sistema de
archivos.
3. Muestra una lista de los núcleos (kernel) disponibles definidos en /etc/grub.conf. Provee las
opciones para elegir uno de ellos sí una imagen múltiple de núcleos está instalada.
Configuración
El archivo de configuración GRUB es /boot/grub/menu.lst. Algunas veces verá referencias a
/etc/grub.conf, pero el archivo no existe en Debian (al menos en mi laptop)
Debe contener, al menos, las siguientes lineas:
default=0
timeout=30
# To boot the default kernel
title Debian LINUX
root (hd0,1)
kernel /boot/vmlinuz root=LABEL=/
initrd /boot/initrd.img
Revisión rápida de comandos
•default: SO por defecto a cargar, si no presiona las teclas (F2, F12) para cambiar la secuencia de carga
de su sistema. Note que es la primera linea contiene un 0.
•timeout: tiempo en segundos de espera antes que el sistema operativo por defecto sea cargado.
•Title: Texto que es mostrado en el menú. Inicia una sección de SO hasta que otra linea Title es
encontrada.
•Root: La partición donde el directorio /boot está. Todos los caminos serán relativos a la partición,
así que no es necesario especificarla para cada archivo.
•Kernel: es la imagen del núcleo de LINUX a ser cargada con sus opciones.
•Initrd: es la imagen initrd para cargar el núcleo.
Notar que el comando root no está relacionado con el parámetro root para el núcleo de LINUX. Root
especifica que partición tiene los caminos relativos. Sí tiene una partición /boot en (hd0,0) entonces:
root (hd0,0)
kernel ''vmlinuz root=LABEL=''
es la misma que:
kernel (hd0,0)/vmlinuz
GRUB nombres de dispositivos y particiones
Grub usa números para nombrar discos duros y particiones, empezando con 0. esto confunde un poco
al usuario LINUX para llamar hda1 al primer disco – primera partición. Vea la siguiente tabla.
LINUX grub
First IDE bus, master hda hd0
First IDE bus, master, first primary partition hda1 hd0,0
First IDE bus, slave, first extended partition hdb5 hd1,4
1. GRUB muestra una ventana de inicio y espera pocos segundos para intervenir, si no carga la
imagen por defecto del núcleo.
2. GRUB Bootloader inicia el núcleo y carga la imagen initrd.
Núcleo (Kernel)
1. Mount sistema de archivos root.
2. Núcleo inicia proceso INIT. primer proceso iniciado por el núcleo el cual cual tiene
Process ID4
(PID) de 1.
3. Carga módulo initrd. initrd (disco RAM inicial) es un sistema de archivos temporal root
cargado en la RAM hasta que el sistema de archivos root sea montado.
4 PID es la abreviatura de Process ID es decir es el identificador de un proceso, un numero que identifica de manera
inequívoca a un proceso.
INIT
1. INIT (padre de todos los procesos).
2. INIT (abreviatura para inicialización) demonio5
(deamon) que genera los otros procesos.
3. INIT lee el archivo /etc/inittab pro instrucciones para proceder.
4. Aquí el inittab de Debian Wheezy.
# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
# The default runlevel.
id:2:initdefault:
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
5 La palabra demonio viene de DAEMON (Disk And Execution Monitor) que es un tipo especial de proceso
informático que se ejecuta en segundo plano en lugar de ser controlado directamente por el usuario (es un proceso
no interactivo). Los programadores de Unix adoptaron este nombre para referirse a estos procesos y como son
afectos a las siglas y a los acronimos recursivos extendieron su uso.
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
# Action on special keypress (ALT-UpArrow).
#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop
# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
# <id>:<runlevels>:<action>:<process>
#
# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty's go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
# Example how to put a getty on a modem line.
#
#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
1. Runs scripts /etc/rc.d/*
Programas Runlevel
Existen 7 runlevel, numerados del 0 al 6, aunque es posible crear más, cada uno tiene su propio
significado en LINUX. Los diferentes niveles son los siguientes:
1. Run Level 0 – Halt (detener)
2. Run Level 1 – Single user mode (modo único usuario)
3. Run Level 2 – Multiuser but without NFS (multiusuario sin NFS)
4. Run Level 3 – Full multiuser mode (Modo multiusuario completo)
5. Run Level 4 – unused / User-definable (no usado/ definible por el usuario)
6. Run Level 5 – X11 (ambiente gráfico)
7. Run Level 6 – reboot (recargar)
De acuerdo con la configuración del nivel de ejecución por defecto, el sistema lee y ejecuta los
programas de los siguientes directorios.
1. Run Level 0 – /etc/rc.d/rc0.d/
2. Run Level 1 – /etc/rc.d/rc1.d/
3. Run Level 2 – /etc/rc.d/rc2.d/
4. Run Level 3 – /etc/rc.d/rc3.d/
5. Run Level 4 – /etc/rc.d/rc4.d/
6. Run Level 5 – /etc/rc.d/rc5.d/
7. Run Level 6 – /etc/rc.d/rc6.d/
/etc/rc0.d/ es enlazado al directorio /etc/rc.d/rc0.d/. Dentro el directorio /etc/rc.d/rc0.d/ puede ver
programas cuyo nombre empieza con S y K lo que significa startup y kill respectivamente. También,
hay un número secuencial a S y K. Estos números son la secuencia programas de inicio a través de
started o killed durante la carga.
El runlevel 0 es la condición de apagado del sistema. La mayoría de computadores actuales se apagan
al llegar a este nivel.
El 1 es conocido como de mono-usuario o usuario único. Suele llamarse modo de rescate (rescue mode
o trouble-shooting). En este nivel no ejecuta ningún servicio o demonio. Normalmente es posible
iniciar el sistema en modo rescate desde el GRUB, o añadiendo la palabra single al final de la línea de
comandos del kernel.
Del runlevel 2 al 5 son modos multiusuario, y el modo usado por defecto.
Si 0 es la condición de apagado, 6 es reinicio del sistema. Exactamente igual que el runlevel 0 salvo
que reinicia al terminar la secuencia en lugar de apagar.
¿Dónde residen los Run Level?
Están definidos mediante archivos, como en todo sistema LINUX, se encuentran en el directorio /etc:
/etc/rc0.d Run level 0
/etc/rc1.d Run level 1
/etc/rc2.d Run level 2
/etc/rc3.d Run level 3
/etc/rc4.d Run level 4
/etc/rc5.d Run level 5
/etc/rc6.d Run level 6
Observe el contenido del runlevel 2:
ls /etc/rc2.d/
README S18acpid S18postgresql S20gdm3
S01motd S18acpi-support S18rsync S20pulseaudio
S13rpcbind S18anacron S18speech-dispatcher S20saned
S14nfs-common S18atd S18ssh S21bootlogs
S16acpi-fakekey S18battery-stats S19avahi-daemon S22laptop-mode
S16binfmt-support S18clamav-freshclam S19bluetooth S22minissdpd
S16rsyslog S18cron S19exim4 S22rc.local
S16sudo S18dbus S19network-manager S22rmnologin
S17apache2 S18mysql S20cups S22teamviewerd
Cada archivo es un enlace simbólico a su respectivo script residente en /etc/init.d. Estos scripts
controlan la detención o inicio de un servicio.
El nombre de los enlaces de estos directorios puede ser poco intuitivos al principio, pero vea su
significado, la sintaxis es:
[K | S] + nn + [string]
Es decir, la primera letra del nombre es una K o una S, seguidas de un número de dos dígitos, del 01 al
99 y por último una cadena de texto. La K significa que el servicio será detenido al entrar al runlevel
(Kill), la S para iniciarlo (Start). El número indica la prioridad del servicio dentro del runlevel, por
ejemplo, S02apache y S01php inicia primero php y luego apache. Si dos servicios tienen el mismo
orden de prioridad numérico, se procede en orden alfabético.
¿Cómo determinar en qué runlevel se encuentra el sistema?
El comando runlevel muestra el último runlevel que fue ejecutado, y el actual:
runlevel
N 2
N significa Nada, informando que no ha habido cambio de runlevel desde que inició el sistema, 2 es el
runlevel actual.
Para ir de un runlevel a otro ejecute el comando telinit seguido del número del runlevel deseado.
Aunque sea correcto, se recomienda no apagar o reiniciar el sistema cambiando a los runlevel 0 o 6.
¿Cómo agregar un servicio a un runlevel?
Si desea agregar un servicio a un runlevel deberemos usar el comando update-rc.d. Sí requiere que
nginx o Apache se ejecuten en cada inicio del sistema, basta con agregarlos a los runlevel 2-5,
correspondientes al modo multiusuario:
# update-rc.d nginx start 90 2 3 4 5 . stop 01 0 1 6 .
El 90 es el número de prioridad para el inicio (S90nginx) aplicado a los runlevles 2-5, 01 para la
prioridad de detención (K01nginx) en los runlevel 0 1 y 6. Lo más sencillo es aplicar los valores por
defecto con
# update-rc.d nginx defaults
Referencias
1. ↑ Ohloh Analysis Summary - GNU GRU.
2. ↑ Sitio oficial de GNU GRUB (en inglés)
3. ↑ GRUB Manual - 1.2 Grub History (en inglés)
4. ↑ Página del Proyecto PUPA (en inglés)
5. ↑ GRUB 2 en Ubuntu 9.10 Karmic Koala
Enlaces externos
• Configuración de GRUB, una guía básica (para GRUB Legacy)
• GAG, Gestor de Arranque Gráfico
• GNU GRUB Manual 1.99 (en inglés)
• GRUB - Guía Ubuntu
• GrubWiki Command List (Comandos para ambas versiones de GRUB, en inglés)
• Grub from the Ground Up (en inglés)
• Recuperar GRUB - Guía Ubuntu
• GRUBack: utilidad para recuperar GRUB sin salir de Windows
• LILO homepage (en inglés).
• LILO mini-HOWTO (en inglés).
• LILO error messages (en inglés).

Contenu connexe

Tendances

Cuestionario Sistemas Operativos
Cuestionario Sistemas OperativosCuestionario Sistemas Operativos
Cuestionario Sistemas Operativos
camilaml
 
Presentación2
Presentación2Presentación2
Presentación2
sofiymaga
 
Instalacion y manejo operacional
Instalacion y manejo operacionalInstalacion y manejo operacional
Instalacion y manejo operacional
andersonpinzon
 
3 1 Estructura Sistema Operativo
3 1 Estructura Sistema Operativo3 1 Estructura Sistema Operativo
3 1 Estructura Sistema Operativo
UVM
 
Sistemas operativos lorena yadira1.1
Sistemas operativos lorena yadira1.1Sistemas operativos lorena yadira1.1
Sistemas operativos lorena yadira1.1
yadiraarango
 
3 3 Recursos Compartidos
3 3 Recursos Compartidos3 3 Recursos Compartidos
3 3 Recursos Compartidos
UVM
 

Tendances (13)

Trabajo integrador-para-ordinario-de-la-materia-dfso
Trabajo integrador-para-ordinario-de-la-materia-dfsoTrabajo integrador-para-ordinario-de-la-materia-dfso
Trabajo integrador-para-ordinario-de-la-materia-dfso
 
Introduccion a los sistemas operativos
Introduccion a los sistemas operativosIntroduccion a los sistemas operativos
Introduccion a los sistemas operativos
 
SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOSSISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Glosario sistemas operativos
Glosario sistemas operativosGlosario sistemas operativos
Glosario sistemas operativos
 
Cuestionario Sistemas Operativos
Cuestionario Sistemas OperativosCuestionario Sistemas Operativos
Cuestionario Sistemas Operativos
 
Presentación2
Presentación2Presentación2
Presentación2
 
Curso linux operación
Curso linux operaciónCurso linux operación
Curso linux operación
 
Instalacion y manejo operacional
Instalacion y manejo operacionalInstalacion y manejo operacional
Instalacion y manejo operacional
 
3 1 Estructura Sistema Operativo
3 1 Estructura Sistema Operativo3 1 Estructura Sistema Operativo
3 1 Estructura Sistema Operativo
 
Sistemas operativos lorena yadira1.1
Sistemas operativos lorena yadira1.1Sistemas operativos lorena yadira1.1
Sistemas operativos lorena yadira1.1
 
Taller sistemas operativos
Taller sistemas operativosTaller sistemas operativos
Taller sistemas operativos
 
3 3 Recursos Compartidos
3 3 Recursos Compartidos3 3 Recursos Compartidos
3 3 Recursos Compartidos
 

En vedette

Ainara cordoba 6èb fisica o quimica
Ainara cordoba 6èb fisica o quimicaAinara cordoba 6èb fisica o quimica
Ainara cordoba 6èb fisica o quimica
Oscar Vaquero
 
Trbajo De Wilson De Power Point
Trbajo De Wilson De Power PointTrbajo De Wilson De Power Point
Trbajo De Wilson De Power Point
sonwil182009
 
My Sql
My SqlMy Sql
My Sql
Rafa
 
Convencion marco de las un sobre cambio climatico
Convencion marco de las un sobre cambio climaticoConvencion marco de las un sobre cambio climatico
Convencion marco de las un sobre cambio climatico
JULIOCESAR SIERRA
 
Transporte Y TecnologíA Presentacion
Transporte Y TecnologíA PresentacionTransporte Y TecnologíA Presentacion
Transporte Y TecnologíA Presentacion
guestd5c483
 
L A L E C T U R A E N L A S O C I E D A D D E L A I N F O R M A C I O N
L A  L E C T U R A  E N  L A  S O C I E D A D  D E  L A  I N F O R M A C I O NL A  L E C T U R A  E N  L A  S O C I E D A D  D E  L A  I N F O R M A C I O N
L A L E C T U R A E N L A S O C I E D A D D E L A I N F O R M A C I O N
guestffe00a
 

En vedette (20)

Ainara cordoba 6èb fisica o quimica
Ainara cordoba 6èb fisica o quimicaAinara cordoba 6èb fisica o quimica
Ainara cordoba 6èb fisica o quimica
 
Trbajo De Wilson De Power Point
Trbajo De Wilson De Power PointTrbajo De Wilson De Power Point
Trbajo De Wilson De Power Point
 
Grafoas Trabajos
Grafoas TrabajosGrafoas Trabajos
Grafoas Trabajos
 
My Sql
My SqlMy Sql
My Sql
 
Cangas
CangasCangas
Cangas
 
Fauna Ibérica
Fauna IbéricaFauna Ibérica
Fauna Ibérica
 
Massacre - La Octava Maravilla
Massacre - La Octava MaravillaMassacre - La Octava Maravilla
Massacre - La Octava Maravilla
 
Convencion marco de las un sobre cambio climatico
Convencion marco de las un sobre cambio climaticoConvencion marco de las un sobre cambio climatico
Convencion marco de las un sobre cambio climatico
 
Mejor Mail Del Año 2008
Mejor Mail Del Año 2008Mejor Mail Del Año 2008
Mejor Mail Del Año 2008
 
Navidad
NavidadNavidad
Navidad
 
El Reto De Aprender
El Reto De AprenderEl Reto De Aprender
El Reto De Aprender
 
Transporte Y TecnologíA Presentacion
Transporte Y TecnologíA PresentacionTransporte Y TecnologíA Presentacion
Transporte Y TecnologíA Presentacion
 
El clima social de clase y classeroom environment scale
El clima social de clase y classeroom environment scaleEl clima social de clase y classeroom environment scale
El clima social de clase y classeroom environment scale
 
Generacions web
Generacions webGeneracions web
Generacions web
 
El Kaizen Explicado
El  Kaizen ExplicadoEl  Kaizen Explicado
El Kaizen Explicado
 
L A L E C T U R A E N L A S O C I E D A D D E L A I N F O R M A C I O N
L A  L E C T U R A  E N  L A  S O C I E D A D  D E  L A  I N F O R M A C I O NL A  L E C T U R A  E N  L A  S O C I E D A D  D E  L A  I N F O R M A C I O N
L A L E C T U R A E N L A S O C I E D A D D E L A I N F O R M A C I O N
 
3 espiritualidad que conduce a la santidad
3 espiritualidad que conduce a la santidad3 espiritualidad que conduce a la santidad
3 espiritualidad que conduce a la santidad
 
Acuerdo 494 diverso número 181
Acuerdo  494  diverso número 181Acuerdo  494  diverso número 181
Acuerdo 494 diverso número 181
 
Conócenos
ConócenosConócenos
Conócenos
 
Concurso De Dibujo Anime 2009
Concurso De Dibujo Anime 2009Concurso De Dibujo Anime 2009
Concurso De Dibujo Anime 2009
 

Similaire à Entender linux

Trabajo sistemas operativos de camilo pinzon
Trabajo sistemas operativos de camilo pinzonTrabajo sistemas operativos de camilo pinzon
Trabajo sistemas operativos de camilo pinzon
Manuel Chaparro
 
Instalar sistema operativo cuestionario parte 1 y 2
Instalar sistema operativo cuestionario parte 1 y 2Instalar sistema operativo cuestionario parte 1 y 2
Instalar sistema operativo cuestionario parte 1 y 2
angelicad
 
Manual de instalacion de un segundo sist. operativo [19 paginas en español]
Manual de instalacion de un segundo sist. operativo [19 paginas   en español]Manual de instalacion de un segundo sist. operativo [19 paginas   en español]
Manual de instalacion de un segundo sist. operativo [19 paginas en español]
rulo182
 

Similaire à Entender linux (20)

Como instalar-unix
Como instalar-unixComo instalar-unix
Como instalar-unix
 
Unix JCRB
Unix JCRBUnix JCRB
Unix JCRB
 
Como instalar Unix(Johanna)
Como instalar Unix(Johanna)Como instalar Unix(Johanna)
Como instalar Unix(Johanna)
 
Trabajo sistemas operativos de camilo pinzon
Trabajo sistemas operativos de camilo pinzonTrabajo sistemas operativos de camilo pinzon
Trabajo sistemas operativos de camilo pinzon
 
Sistemas operativos ligeros
Sistemas operativos ligerosSistemas operativos ligeros
Sistemas operativos ligeros
 
Como instalar-unix (1)
Como instalar-unix (1)Como instalar-unix (1)
Como instalar-unix (1)
 
Mary cervantes
Mary cervantesMary cervantes
Mary cervantes
 
Taller so
Taller soTaller so
Taller so
 
Como instalar unix ...lili
Como instalar unix ...liliComo instalar unix ...lili
Como instalar unix ...lili
 
Proceso de-carga-android-windows
Proceso de-carga-android-windowsProceso de-carga-android-windows
Proceso de-carga-android-windows
 
Instalar sistema operativo cuestionario parte 1 y 2
Instalar sistema operativo cuestionario parte 1 y 2Instalar sistema operativo cuestionario parte 1 y 2
Instalar sistema operativo cuestionario parte 1 y 2
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
Proceso de carga android windows
Proceso de carga android windowsProceso de carga android windows
Proceso de carga android windows
 
Transcripcion yamy
Transcripcion yamyTranscripcion yamy
Transcripcion yamy
 
Ronald
RonaldRonald
Ronald
 
Manual de instalacion de un segundo sist. operativo [19 paginas en español]
Manual de instalacion de un segundo sist. operativo [19 paginas   en español]Manual de instalacion de un segundo sist. operativo [19 paginas   en español]
Manual de instalacion de un segundo sist. operativo [19 paginas en español]
 
Viviana medina
Viviana medinaViviana medina
Viviana medina
 
Viviana medina MATERIA
Viviana medina MATERIAViviana medina MATERIA
Viviana medina MATERIA
 
Nicolle
NicolleNicolle
Nicolle
 
Azucenabarzola
AzucenabarzolaAzucenabarzola
Azucenabarzola
 

Plus de Universidad Politécnica Territorial del estado Aragua

Plus de Universidad Politécnica Territorial del estado Aragua (11)

Entendiendo Linux (parte II)
Entendiendo Linux (parte II)Entendiendo Linux (parte II)
Entendiendo Linux (parte II)
 
Como ser programador
Como ser programadorComo ser programador
Como ser programador
 
Entender linux
Entender linuxEntender linux
Entender linux
 
Sociedad del conocimiento
Sociedad del conocimientoSociedad del conocimiento
Sociedad del conocimiento
 
Situaciones curiosas
Situaciones curiosasSituaciones curiosas
Situaciones curiosas
 
Que enseñar a los programadores
Que enseñar a los programadoresQue enseñar a los programadores
Que enseñar a los programadores
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Sociedad del conocimiento
Sociedad del conocimientoSociedad del conocimiento
Sociedad del conocimiento
 
Catedrales, Bazares y Ayuntamientos por Alan Cox
Catedrales, Bazares y Ayuntamientos por Alan Cox Catedrales, Bazares y Ayuntamientos por Alan Cox
Catedrales, Bazares y Ayuntamientos por Alan Cox
 
Alan cox, Catedrales, Bazares y Ayuntamientos
Alan cox, Catedrales, Bazares y AyuntamientosAlan cox, Catedrales, Bazares y Ayuntamientos
Alan cox, Catedrales, Bazares y Ayuntamientos
 

Dernier

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Dernier (11)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

Entender linux

  • 1. Prof. Dr. Jorge Domínguez Chávez Entendiendo el inicio de operaciones de LINUX Todos los días, miles de usuarios de LINUX encienden sus computadores, esperan pocos segundos (o minutos dependiendo la velocidad de su CPU) para ver a su sistema operativo favorito cargar, y obtener la pantalla de bienvenida !!! Les causa un inmenso placer hacer log en su sistema operativo favorito y trabajar. El Proceso de arranque en LINUX es el proceso de arranque de un sistema operativo que en muchos aspectos es similar a los procesos de arranque de BSD1 y otros sistemas UNIX2 , de los cuales deriva. ¿Cuáles son los objetivos de este trabajo? 1. Ofrecer una descripción básica del trabajo interno y de las operaciones del núcleo (kernel) de LINUX en favor de los lectores. 2. Todos los archivos mencionados en este trabajo se refieren al núcleo de LINUX 3.2. Aunque estos archivos son comunes a todo UX* y pueden ser encontrados en cualquier sistema Linux, el autor utiliza la versión Debian Wheezy. Proceso típico En LINUX, el flujo de control durante el arranque es desde el BIOS, al gestor de inicio y al núcleo (KERNEL). El núcleo inicia el planificador (para multitarea) y ejecuta el primer espacio de usuario (es decir, fuera del espacio del núcleo) y el programa de arranque (que establece el entorno de usuario y permite la interacción del usuario y el inicio de sesión), momento en el que el núcleo se inactiva hasta ser llamado externamente. La etapa del cargador de inicio no es totalmente necesaria. Determinados BIOS pueden cargar y pasar el control a LINUX sin hacer uso del cargador. Cada proceso de arranque será diferente dependiendo de la arquitectura del procesador y el BIOS. 1. El BIOS realiza las tareas de inicio específicas del hardware. 2. Una vez que éste es reconocido y se inicia correctamente, el BIOS carga y ejecuta el código de la partición de arranque del dispositivo de arranque designado, que contiene la fase 1 de un gestor de arranque LINUX. La fase 1 carga la fase 2 (la mayor parte del código del gestor de arranque). Algunos cargadores pueden utilizar una fase intermedia (conocida como fase 1.5) 1 Berkeley Software Distribution o BSD (en castellano, «distribución de software Berkeley») es un sistema operativo derivado del sistema UNIX generado por los aportes realizados a ese sistema por la Universidad de California en Berkeley, USA. 2 Unix (registrado oficialmente como UNIX®) es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969, por los Laboratorios Bell de ATT.
  • 2. para lograr esto, ya que los modernos discos de gran capacidad no pueden ser totalmente leídos sin código adicional. 3. El gestor de arranque, a menudo, presenta al usuario un menú de opciones posibles de arranque. Luego, carga el sistema operativo, al que descomprime en la memoria y establece las funciones tanto del sistema como del hardware esencial y la paginación de memoria, previo a llamar a la función start_kernel(). 4. A continuación, la función start_kernel()realiza la mayor parte de la configuración del sistema (interrupciones, el resto de la gestión de memoria, la inicialización del dispositivo, controladores, etc), antes de continuar, por separado el proceso, inactivo y planificador, así como el proceso de Init (que se ejecuta en el espacio de usuario). 5. El planificador toma control efectivo de la gestión del sistema y el núcleo queda inactivo. 6. El proceso Init ejecuta los comandos (scripts) necesarios para configurar todos los servicios y estructuras que no sean del sistema operativo, a fin de permitir que el entorno de usuario sea creado y pueda presentarse al usuario con una pantalla de inicio de sesión. En el apagado, Init es llamado a cerrar las funcionalidades del espacio de usuario de una manera controlada, a través de secuencias de comandos, tras lo cual termina y el núcleo ejecuta el apagado. Espacio de usuario temprano El espacio de usuario temprano se utiliza en versiones recientes del núcleo de LINUX para sustituir tantas funciones como sea posible, funciones que originalmente se cargarían en el núcleo durante el proceso de inicio. Los usos típicos del espacio de usuario temprano son para detectar los controladores de dispositivos (Drivers) necesarios para cargar el sistema de archivos del espacio de usuario principal y cargarlos desde un sistema de archivos temporal. Este espacio, el cual es externo al núcleo se refiere a un espacio de aplicación, típicamente UNIX o en sistemas operativos UX*. Algunas veces, la expresión espacio de usuario puede referirse a una aplicación que lleva a cabo sus propias llamadas al sistema o su propia entrada y salida (E/S). Por lo común, como parte de una aplicación, hará llamadas al sistema y a otras actividades del sistema desde el núcleo. En el sentido jerárquico del sistema de archivos, el espacio de usuario se refiere a cualquier espacio de almacenamiento en disco del sistema que no es parte de su almacenamiento crítico, es decir, el espacio de almacenamiento de los usuarios, como sus documentos personales y otros datos no críticos. En los sistemas Unix reside en los directorios /home, /export/home o /usr/home. Proceso en detalle Como primer punto revisamos el proceso de carga o boot process del Sistema Operativo LINUX. Vemos que LINUX pasa por diferentes etapas de carga. Comprender como LINUX carga es muy importante en términos de manejo efectivo de los errores en caso de que el proceso falle. Averiguar lo que ha pasado y pasa en las etapas de la secuencia de arranque es de suma importancia para un buen funcionamiento de su computador y de su sistema operativo LINUX. En LINUX hay 6 etapas de carga, vea la figura 1. Luego se discuten esas etapas en detalle.
  • 3. BIOS (Sistema Básico de Entrada Salida) 1. Encendido del pc, el hardware transfiere el control a BIOS. 2. BIOS es el primer programa en ejecutarse y es independiente del Sistema Operativo. 3. BIOS reside en la ROM (Memoria sólo Lectura). 4. El primer paso de BIOS es Potenciar Autoprueba (POST) el cual recorre la información del hardware y verifica el inicio de carga (bootloader). 5. Recorre los dispositivos de almacenamiento de datos (Floppy, CD y/o DVD, y USB). Durante el período de recorrido, el usuario puede presionar las teclas (F2, F12 esto dependen de su computadora) para cambiar la secuencia de carga de su sistema. 6. BIOS lee el primer sector del disco duro, al que se denomina sector de carga y donde reside el proceso de inicio de carga (bootloader). Una vez que éste es detectado, carga la BIOS y pasa el control al bootloader, luego se inicia el siguiente nivel en la secuencia de carga. MBR (Registro Maestro de Carga) 1. Un registro de inicio principal, también conocido como registro maestro de inicio o master boot record (abreviado MBR) es el primer sector ("sector cero") de un dispositivo de almacenamiento de datos, como un disco duro, cd, dvd, usb. A veces, MBR se emplea para el inicio del sistema operativo con bootstrap, otras veces es usado para almacenar una tabla de particiones y, en ocasiones, se usa sólo para identificar un dispositivo de disco individual, aunque en algunas máquinas esto último no se usa y es ignorado. 2. En la práctica, el MBR casi siempre se refiere al sector de inicio de 512 bytes, o el sector de partición de una partición para computadores compatibles con IBM PC. Debido a la amplia implementación de computadores PC clones, este tipo de MBR se usa mucho, hasta el punto de ser incorporado en otros tipos de computador y en nuevos estándares multiplataforma para el particionado y el inicio. Ver siguiente tabla. Figura 1: Proceso de inicio de carga en LINUX
  • 4. Almacenamiento de un master boot record estándar Dirección Descripción 0x0000 Área de código 0x01B8 4 bytes; firma del disco (opcional) 0x01BC 2 bytes; normalmente 0x0000 0x01BE Tabla de particiones3 primarias, cada entrada es de 16 bytes (esquema estándar de la tabla de particiones del MBR) 0x01FE 2 bytes; firma del MBR (0x55AA) 3. MBR tiene un tamaño de 512 bytes, divididos en tres componentes: 1. Los primeros 446 bytes son el iniciador de carga primario (sólo código ejecutable). 2. Los siguientes 64 bytes son información de la tabla de particiones. 3. Los últimos 2 bytes son usados como número mágico (validación verificación de MBR). Primer sector físico del disco (pista cero) 446 bytes Código máquina (gestor de inicio) 64 bytes Tabla de particiones (4 registros que definen cada una de las particiones primarias) 2 bytes Firma de unidad de inicio ("55h AAh" en hexadecimal) Registro de la tabla de particiones - 16 bytes Offset Descripción 0x00 Binario codificado en decimal 0x01 Más binario, Cabezal, Sector (CHS) del primer sector en la partición. 0x04 Tipo de partición 0x05 Cilindro, Cabezal, Sector (CHS) del último sector de la partición. 3 Una partición de un disco duro es una división lógica en una unidad de almacenamiento (por ejemplo un disco duro o unidad flash), en la cual se alojan y organizan los archivos mediante un sistema de archivos. Existen distintos esquemas de particiones para la distribución de particiones en un disco. Los más conocidos y difundidos son MBR (Master Boot Record) y GPT (GUID Partition Table). Las particiones, para contener datos tienen que poseer un sistema de archivos. El espacio no asignado en un disco no es una partición, por lo tanto no puede tener un sistema de archivos. Existen múltiples sistemas de archivos, con diferentes características, como FAT, NTFS, FAT32, EXT2, EXT3, EXT4, Btrfs, FedFS, Reise, Reiser4 y otros. Los discos ópticos (DVD, CD) utilizan otro tipo de particiones llamada Formato de Disco Universal ( UDF o Universal Disc Format), el cual agrega archivos y carpetas y es por ello que es usado por la mayoría de software de escritura por paquetes, conocidos como programas de grabación de unidades ópticas. Este sistema de archivos es obligatorio en unidades de (DVD) pero también se admiten en algunos (CD)
  • 5. 0x08 (4 bytes) Logical block address del primer sector de la partición 0x0C (4 bytes) Longitud de la partición, en sectores 4. Bootloader puede residir en el MBR o en cualquier otra localidad. 5. MBR contiene información de GRUB/LILO y ejecuta su carga. GRUB (GRand Unified Bootloader) 1. GRUB se carga y se ejecuta en 4 etapas: 1. La primera etapa del cargador la lee el BIOS desde el MBR. 2. La primera etapa carga el resto del gestor de arranque (segunda etapa). Si la segunda etapa está en una unidad grande, en ocasiones se carga una fase intermedia 1.5, que contiene código adicional para permitir que los cilindros por encima de 1024, o unidades tipo LBA, puedan leerse. El gestor de arranque 1.5 es almacenado (si es necesario) en el MBR o en la partición de arranque. 3. La segunda etapa del gestor de arranque ejecuta y muestra el menú de inicio de GRUB que permite al usuario elegir un sistema operativo y examinar y modificar los parámetros de inicio. 4. Después de elegir un sistema operativo, se carga y se le pasa el control. GRUB soporta métodos de arranque directo, arranque chain-loading, LBA, ext2, ext3, ext4 y hasta "un pre-sistema operativo en máquinas x86 totalmente basado en comandos". Contiene tres interfaces: un menú de selección, un editor de configuración y una consola de línea de comandos. 2. GRUB tiene su propio menú e interface y tiene la capacidad de navegar por el sistema de archivos. 3. Muestra una lista de los núcleos (kernel) disponibles definidos en /etc/grub.conf. Provee las opciones para elegir uno de ellos sí una imagen múltiple de núcleos está instalada. Configuración El archivo de configuración GRUB es /boot/grub/menu.lst. Algunas veces verá referencias a /etc/grub.conf, pero el archivo no existe en Debian (al menos en mi laptop) Debe contener, al menos, las siguientes lineas: default=0 timeout=30 # To boot the default kernel title Debian LINUX root (hd0,1) kernel /boot/vmlinuz root=LABEL=/ initrd /boot/initrd.img
  • 6. Revisión rápida de comandos •default: SO por defecto a cargar, si no presiona las teclas (F2, F12) para cambiar la secuencia de carga de su sistema. Note que es la primera linea contiene un 0. •timeout: tiempo en segundos de espera antes que el sistema operativo por defecto sea cargado. •Title: Texto que es mostrado en el menú. Inicia una sección de SO hasta que otra linea Title es encontrada. •Root: La partición donde el directorio /boot está. Todos los caminos serán relativos a la partición, así que no es necesario especificarla para cada archivo. •Kernel: es la imagen del núcleo de LINUX a ser cargada con sus opciones. •Initrd: es la imagen initrd para cargar el núcleo. Notar que el comando root no está relacionado con el parámetro root para el núcleo de LINUX. Root especifica que partición tiene los caminos relativos. Sí tiene una partición /boot en (hd0,0) entonces: root (hd0,0) kernel ''vmlinuz root=LABEL='' es la misma que: kernel (hd0,0)/vmlinuz GRUB nombres de dispositivos y particiones Grub usa números para nombrar discos duros y particiones, empezando con 0. esto confunde un poco al usuario LINUX para llamar hda1 al primer disco – primera partición. Vea la siguiente tabla. LINUX grub First IDE bus, master hda hd0 First IDE bus, master, first primary partition hda1 hd0,0 First IDE bus, slave, first extended partition hdb5 hd1,4 1. GRUB muestra una ventana de inicio y espera pocos segundos para intervenir, si no carga la imagen por defecto del núcleo. 2. GRUB Bootloader inicia el núcleo y carga la imagen initrd. Núcleo (Kernel) 1. Mount sistema de archivos root. 2. Núcleo inicia proceso INIT. primer proceso iniciado por el núcleo el cual cual tiene Process ID4 (PID) de 1. 3. Carga módulo initrd. initrd (disco RAM inicial) es un sistema de archivos temporal root cargado en la RAM hasta que el sistema de archivos root sea montado. 4 PID es la abreviatura de Process ID es decir es el identificador de un proceso, un numero que identifica de manera inequívoca a un proceso.
  • 7. INIT 1. INIT (padre de todos los procesos). 2. INIT (abreviatura para inicialización) demonio5 (deamon) que genera los otros procesos. 3. INIT lee el archivo /etc/inittab pro instrucciones para proceder. 4. Aquí el inittab de Debian Wheezy. # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 5 La palabra demonio viene de DAEMON (Disk And Execution Monitor) que es un tipo especial de proceso informático que se ejecuta en segundo plano en lugar de ser controlado directamente por el usuario (es un proceso no interactivo). Los programadores de Unix adoptaron este nombre para referirse a estos procesos y como son afectos a las siglas y a los acronimos recursivos extendieron su uso.
  • 8. l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Action on special keypress (ALT-UpArrow). #kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." # What to do when the power fails/returns. pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop # /sbin/getty invocations for the runlevels. # # The "id" field MUST be the same as the last # characters of the device (after "tty"). # # Format: # <id>:<runlevels>:<action>:<process> # # Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty's go ahead but skip tty7 if you run X. # 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6
  • 9. # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 1. Runs scripts /etc/rc.d/* Programas Runlevel Existen 7 runlevel, numerados del 0 al 6, aunque es posible crear más, cada uno tiene su propio significado en LINUX. Los diferentes niveles son los siguientes: 1. Run Level 0 – Halt (detener) 2. Run Level 1 – Single user mode (modo único usuario) 3. Run Level 2 – Multiuser but without NFS (multiusuario sin NFS) 4. Run Level 3 – Full multiuser mode (Modo multiusuario completo) 5. Run Level 4 – unused / User-definable (no usado/ definible por el usuario) 6. Run Level 5 – X11 (ambiente gráfico) 7. Run Level 6 – reboot (recargar) De acuerdo con la configuración del nivel de ejecución por defecto, el sistema lee y ejecuta los programas de los siguientes directorios. 1. Run Level 0 – /etc/rc.d/rc0.d/ 2. Run Level 1 – /etc/rc.d/rc1.d/ 3. Run Level 2 – /etc/rc.d/rc2.d/ 4. Run Level 3 – /etc/rc.d/rc3.d/ 5. Run Level 4 – /etc/rc.d/rc4.d/ 6. Run Level 5 – /etc/rc.d/rc5.d/ 7. Run Level 6 – /etc/rc.d/rc6.d/ /etc/rc0.d/ es enlazado al directorio /etc/rc.d/rc0.d/. Dentro el directorio /etc/rc.d/rc0.d/ puede ver programas cuyo nombre empieza con S y K lo que significa startup y kill respectivamente. También, hay un número secuencial a S y K. Estos números son la secuencia programas de inicio a través de started o killed durante la carga. El runlevel 0 es la condición de apagado del sistema. La mayoría de computadores actuales se apagan al llegar a este nivel. El 1 es conocido como de mono-usuario o usuario único. Suele llamarse modo de rescate (rescue mode
  • 10. o trouble-shooting). En este nivel no ejecuta ningún servicio o demonio. Normalmente es posible iniciar el sistema en modo rescate desde el GRUB, o añadiendo la palabra single al final de la línea de comandos del kernel. Del runlevel 2 al 5 son modos multiusuario, y el modo usado por defecto. Si 0 es la condición de apagado, 6 es reinicio del sistema. Exactamente igual que el runlevel 0 salvo que reinicia al terminar la secuencia en lugar de apagar. ¿Dónde residen los Run Level? Están definidos mediante archivos, como en todo sistema LINUX, se encuentran en el directorio /etc: /etc/rc0.d Run level 0 /etc/rc1.d Run level 1 /etc/rc2.d Run level 2 /etc/rc3.d Run level 3 /etc/rc4.d Run level 4 /etc/rc5.d Run level 5 /etc/rc6.d Run level 6 Observe el contenido del runlevel 2: ls /etc/rc2.d/ README S18acpid S18postgresql S20gdm3 S01motd S18acpi-support S18rsync S20pulseaudio S13rpcbind S18anacron S18speech-dispatcher S20saned S14nfs-common S18atd S18ssh S21bootlogs S16acpi-fakekey S18battery-stats S19avahi-daemon S22laptop-mode S16binfmt-support S18clamav-freshclam S19bluetooth S22minissdpd S16rsyslog S18cron S19exim4 S22rc.local S16sudo S18dbus S19network-manager S22rmnologin S17apache2 S18mysql S20cups S22teamviewerd Cada archivo es un enlace simbólico a su respectivo script residente en /etc/init.d. Estos scripts controlan la detención o inicio de un servicio. El nombre de los enlaces de estos directorios puede ser poco intuitivos al principio, pero vea su significado, la sintaxis es: [K | S] + nn + [string] Es decir, la primera letra del nombre es una K o una S, seguidas de un número de dos dígitos, del 01 al 99 y por último una cadena de texto. La K significa que el servicio será detenido al entrar al runlevel (Kill), la S para iniciarlo (Start). El número indica la prioridad del servicio dentro del runlevel, por ejemplo, S02apache y S01php inicia primero php y luego apache. Si dos servicios tienen el mismo orden de prioridad numérico, se procede en orden alfabético.
  • 11. ¿Cómo determinar en qué runlevel se encuentra el sistema? El comando runlevel muestra el último runlevel que fue ejecutado, y el actual: runlevel N 2 N significa Nada, informando que no ha habido cambio de runlevel desde que inició el sistema, 2 es el runlevel actual. Para ir de un runlevel a otro ejecute el comando telinit seguido del número del runlevel deseado. Aunque sea correcto, se recomienda no apagar o reiniciar el sistema cambiando a los runlevel 0 o 6. ¿Cómo agregar un servicio a un runlevel? Si desea agregar un servicio a un runlevel deberemos usar el comando update-rc.d. Sí requiere que nginx o Apache se ejecuten en cada inicio del sistema, basta con agregarlos a los runlevel 2-5, correspondientes al modo multiusuario: # update-rc.d nginx start 90 2 3 4 5 . stop 01 0 1 6 . El 90 es el número de prioridad para el inicio (S90nginx) aplicado a los runlevles 2-5, 01 para la prioridad de detención (K01nginx) en los runlevel 0 1 y 6. Lo más sencillo es aplicar los valores por defecto con # update-rc.d nginx defaults Referencias 1. ↑ Ohloh Analysis Summary - GNU GRU. 2. ↑ Sitio oficial de GNU GRUB (en inglés) 3. ↑ GRUB Manual - 1.2 Grub History (en inglés) 4. ↑ Página del Proyecto PUPA (en inglés) 5. ↑ GRUB 2 en Ubuntu 9.10 Karmic Koala Enlaces externos • Configuración de GRUB, una guía básica (para GRUB Legacy) • GAG, Gestor de Arranque Gráfico • GNU GRUB Manual 1.99 (en inglés) • GRUB - Guía Ubuntu • GrubWiki Command List (Comandos para ambas versiones de GRUB, en inglés) • Grub from the Ground Up (en inglés) • Recuperar GRUB - Guía Ubuntu • GRUBack: utilidad para recuperar GRUB sin salir de Windows • LILO homepage (en inglés). • LILO mini-HOWTO (en inglés). • LILO error messages (en inglés).