PDF de programación - Unidad 3: El kérnel linux

Imágen de pdf Unidad 3: El kérnel linux

Unidad 3: El kérnel linuxgráfica de visualizaciones

Publicado el 1 de Febrero del 2019
690 visualizaciones desde el 1 de Febrero del 2019
748,0 KB
18 paginas
Creado hace 14a (27/09/2009)
Unidad 3: El kérnel linux

Alberto Molina Coballes

27 de septiembre de 2009

Introducción

• Funciones del sistema operativo
• Funciones del kérnel
• Niveles de seguridad
• Tipos de kérnel
• Principales arquitecturas CPU y ports
• Principales sistemas operativos
• Historia de UNIX
• La lucha de los sistemas integrados

2 de 18

Funciones del sistema operativo

• Un sistema operativo es una
interfaz entre el hardware y el
usuario y se encarga de
gestionar y compartir los
recursos.

• Las principales funciones del
sistema operativo son:
◦ Gestión de los recursos de la
◦ Ejecución de servicios para las
◦ Ejecución de las órdenes de los

computadora

aplicaciones

usuarios

3 de 18

Funciones del kérnel

• El kérnel (núcleo) es la parte fundamental del sistema operativo y
se encarga de manejar los recursos y permitir que los programas
hagan uso de los mismos, siendo los principales recursos:
◦ CPU
◦ Memoria
◦ Dispositivos de Entrada/salida

• Además el kérnel es el encargado proporcionar:
◦ Protección mediante diferentes niveles de acceso
◦ Acceso compartido (multiplexado) a los recursos

4 de 18

Niveles de seguridad

• Algunas CPU incluyen diferentes
niveles de acceso, que se conocen
como anillos (rings).

• Los diferentes kérnel suelen utilizar al
menos dos niveles para acceder tanto a
la CPU como a la memoria:
◦ kernel mode.
◦ user mode

• KML: kernel mode linux
• FUSE: Filesystem in User Space (sshfs, ntfs-3g, ...)
• CUSE: Character devices in User Space

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

Microsoft Apple

Linux Symbian FreeBSD

x86
alpha
arm
ia64
m68k
mips
parisc
sparc
sparc64
powerpc
x86 64



*


?








*

*











































7 de 18

Principales sistemas operativos

Comunidad

Creador

IBM

Basado en
System-V
386BSD

Nombre
AIX
FreeBSD
HP-UX
GNU/Linux
Mac OS
NetBSD
OpenSolaris
Windows server Microsoft
Microsoft
Windows
ReactOS
Comunidad Windows NT
z/OS

386BSD
Solaris

Comunidad

Apple

Comunidad

IBM

OS/390

Unix
Unix

HP

Sun

Licencia
Privativa

BSD

Privativa

GPL

Privativa*

BSD
CDDL

Privativa
Privativa

GPL

Privativa

Fuente: http://en.wikipedia.org/wiki/Comparison_of_operating_systems

8 de 18

Historia de UNIX

Fuente: http://upload.wikimedia.org/wikipedia/commons/5/50/Unix_history-simple.png

9 de 18

La lucha de los sistemas integrados

• Microprocesadores

◦ ARM
◦ MIPS
◦ Intel
◦ . . .

• Dispositivos

◦ mobile phone
◦ PDA
◦ smartphone
◦ smartbook
◦ netbook
◦ . . .

10 de 18

• Sistemas operativos

◦ Blackberry
◦ Symbian
◦ Windows Mobile, Windows 7?
◦ iPhone OS
◦ Android
◦ LiMo
◦ Maemo
◦ OpenMoko
◦ Palm webOS
◦ . . .

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

• Kérnel del sistema GNU/Linux, licenciado bajo la GNU GPL
• Desarrollo colaborativo de miles de personas
• Monolítico
• LKM: Loadable kernel module
• Última versión estable: 2.6.31.1 (24/9/2009)
• Soporte para virtualización
• Portado a gran cantidad de arquitecturas, desde pequeños

dispositivos a grandes supercomputadoras.

12 de 18

Características de la compilación
• El código fuente de rama oficial del núcleo ocupa actualmente
• Los componentes del kérnel se compilan de dos formas:

404MiB !!!
◦ Se incluyen dentro de un fichero ejecutable enlazado estáticamente y
◦ Se compilan individualmente en ficheros objetos con extensión .ko que

que habitualmente se denomina vmlinuz o zImage

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

La mayoría de los módulos se cargan automáticamente cuando es
necesario, pero es posible cargarlos o descargarlos manualmente:

• lsmod: Lista los módulos cargados
• modprobe <módulo>: Carga el módulo en memoria
• modprobe -r <módulo>: Descarga el módulo de la memoria
• modprobe -l: Muestra la lista de módulos disponibles
• modinfo <módulo>: Muestra la información del módulo
• depmod: Actualiza las dependencias de los módulos

16 de 18

Compilación de módulos (Debian)

En algunas ocasiones es necesario compilar un módulo, normalmente
algún controlador de dispositivo que no se encuentra soportado en la
rama oficial del kérnel.
• Instalamos los paquetes necesarios para compilar:

# aptitude install build-essential

• Instalamos los ficheros de cabeceras del kérnel actual:
# aptitude install linux-headers-‘uname -r‘
• Si existe un paquete Debian con el módulo sin compilar

(ndiswrapper, fuse, madwifi, . . . ) ⇒ Utilizar module-assistant
• En el resto de casos, se descomprime el paquete que incluye los

ficheros fuentes del módulo en /usr/src y se siguen las
instrucciones del fichero README que debe incluir.

17 de 18

Compilación del kérnel (Debian)

Es poco habitual tener que compilar un núcleo completo, puede ser
necesario cuando se utiliza hardware muy peculiar o como en este
caso simplemente con fines educativos.

En el siguiente enlace se explica de forma detallada una forma de
hacerlo en Debian Lenny:

http://informatica.gonzalonazareno.org/plataforma/mod/
resource/view.php?id=678

18 de 18
  • Links de descarga
http://lwp-l.com/pdf15034

Comentarios de: Unidad 3: El kérnel linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad