Kernel Linux
Kernel Linux
27 de septiembre de 2009
Introducción
2 de 18
Funciones del sistema operativo
3 de 18
Funciones del kérnel
4 de 18
Niveles de seguridad
5 de 18
Tipos de kérnel
Fuente: http://upload.wikimedia.org/wikipedia/commons/d/d0/OS-structure2.svg
6 de 18
Principales arquitecturas CPU/ports
7 de 18
Principales sistemas operativos
Fuente: http://upload.wikimedia.org/wikipedia/commons/5/50/Unix_history-simple.png
9 de 18
La lucha de los sistemas integrados
• Microprocesadores
• Sistemas operativos
◦ ARM
◦ MIPS ◦ Blackberry
◦ Intel ◦ Symbian
◦ ... ◦ Windows Mobile, Windows 7?
◦ iPhone OS
• Dispositivos
◦ Android
◦ mobile phone ◦ LiMo
◦ PDA ◦ Maemo
◦ smartphone ◦ OpenMoko
◦ smartbook ◦ Palm webOS
◦ netbook ◦ ...
◦ ...
10 de 18
El kérnel linux
• Caracterı́sticas principales
• Caracterı́sticas de la compilación
• Carga del sistema
• Manejo de módulos
• Compilación de módulos
• Compilación del kérnel
11 de 18
Caracterı́sticas principales
12 de 18
Caracterı́sticas de la compilación
• El código fuente de rama oficial del núcleo ocupa actualmente
404MiB !!!
• Los componentes del kérnel se compilan de dos formas:
◦ Se incluyen dentro de un fichero ejecutable enlazado estáticamente y
que habitualmente se denomina vmlinuz o zImage
◦ Se compilan individualmente en ficheros objetos con extensión .ko que
se cargan en memoria a demanda (están ubicados en /lib/modules)
• Soluciones para hardware no detectado en el arranque:
◦ Se aumenta el tamaño del fichero ejecutable (bzImage o big zImage)
◦ Se montan temporalmente algunos módulos en memoria (initramfs)
• Distribuciones de uso general en sistemas x86:
◦ Enorme variedad de hardware
◦ Se incluyen gran cantidad de módulos
• Es posible compilar un kérnel para un hardware determinado y
reducir mucho su tamaño.
13 de 18
Carga del sistema - I
• Se inicia el sistema cargando la BIOS
• Se realiza la secuencia POST (Power-On Self-Test)
• Se lee el MBR del disco duro donde está la información de las
particiones del disco y el gestor de arranque (normalmente GRUB).
• Se carga en memoria el fichero ejecutable comprimido vmlinuz-. . .
• Se monta el initramfs (fichero initrd-. . . ) ← opcional
• Se comprueba la memoria, tipo de placa y CPU(s)
• Se activa el sistema Plug and Play
• Se inicializan los dispositivos virtuales (LVM y RAID)
• Se libera la memoria ocupada por el initramfs
• Se ejecuta el proceso init con PID=1
• Se ejecutan los scripts de /etc/rcS.d ← depende de la distro
Principales pasos en el arranque de un sistema GNU/Linux instalado en un disco duro de un equipo x86
14 de 18
Carga del sistema - II
• Se establece el nombre del equipo (hostname)
• Se monta VFS
• Se inicia udevd, que puebla /dev y carga los módulos necesarios
• Se chequea el sistema de ficheros raı́z
• Se procesa el fichero /etc/modules
• Se chequean todos los sistemas de ficheros
• Se cargan los parámetros del kérnel especificados en
/etc/sysctl.conf
• Se montan todos los sistemas de ficheros
• Se limpian los ficheros temporales /tmp, /var/run y /var/lock
• Se levantan las interfaces de red
• Se ejecutan en orden los scripts del resto de niveles de ejecución
15 de 18
Manejo de módulos
16 de 18
Compilación de módulos (Debian)
http://informatica.gonzalonazareno.org/plataforma/mod/
resource/view.php?id=678
18 de 18