Estructura del Kernel Linux
Introducción
El núcleo de un sistema operativo es el Kernel,
éste se encarga de administrar el hardware de la
computadora. Por lo tanto es importante compilar
un kernel estable, el cual se traduce en un
desempeño óptimo y confiable del SO.
Otro factor que influye en el desempeño del SO
es el Sistema de Archivos, Linux posee gran
variedad de Sistemas de Archivos que podemos
utilizar, cada uno con sus características
particulares.
Objetivos
Conocer que es el kernel y sus funciones.
Reconocer las versiones de Kernel.
Compilar un kernel nuevo y agregarlo al gestor de
arranque.
Conocer los sistemas de archivos y su
importancia.
Conocer los tipos de sistemas de archivo
utilizados en Linux.
Instalar y mantener un sistema de archivos.
Tema 1:
El Kernel de Linux
El Kernel
El Kernel o núcleo es la parte esencial de un sistema
operativo.
Se encarga de la administración de la memoria, los
procesos y los discos.
Es independiente de la distribución GNU/Linux utilizada.
kernel
TCP/IP
[Link]
La versión del Kernel
3.10.0-514
La versión del Revisión Revisión Fallos de
Kernel mayor del menor del programación y
Kernel Kernel seguridad del
Kernel
Modularidad del Kernel
El Kernel tiene componentes que son esenciales y que forman parte
integral de él.
Existen componente que pueden compilarse en forma de módulos,
dando flexibilidad al sistema.
Los módulos permiten que los dispositivos o alguna propiedad se
integren al Sistema Operativo.
Los módulos no se enlazan directamente al Kernel, pudiendo ejecutar
en el arranque o posteriormente, cuando se necesiten. Por ejemplo,
el soporte para una cierta tarjeta de red.
KERNEL
MÓDULOS
Administración de Módulos
Un módulo es un archivo objeto que se puede "enlazar" y "des-
enlazar" en el núcleo de Linux en tiempo de ejecución.
Cada módulo se compila para una versión de núcleo concreta.
Para trabajar con módulos se dispone de las siguientes utilidades del
sistema:
# lsmod: Lista los módulos cargados.
# modinfo –d [modulo]: Muestra información sobre el módulo.
# insmod [modulo]: Instala en el núcleo un módulo.
# rmmod [modulo]: Extrae del núcleo un módulo.
# modprobe [modulo]: Automatiza/facilita la gestión de módulos.
# depmod -n: Determina las dependencias entre módulos.
Detección de Hardware
El programa Kudzu detecta el nuevo hardware si es
soportado y configura el módulo necesario para él.
Información de Hardware
LINUX ( KERNEL )
Dispositivos
procesador memoria
PCI
Los archivos de información del sistema se ubican
en el directorio /proc
Setup
SISTEMA OPERATIVO
COMPONENTES
TECLADO, MOUSE
# setup
Realiza personalización de periféricos y de algunas
propiedades del Sistema (Autentificación, Seguridad,
Servicios).
Tema 2:
Actualizando el Kernel
Actualización del Kernel
La razón de actualizar un Kernel permite contar con
soporte para un mayor número de dispositivos de
hardware, parches de seguridad y mejoras que la
actualización incluya.
El método tradicional consiste en descargar el código
fuente desde [Link] y configurar las
opciones deseadas, compilarlo e instalarlo uno mismo.
Ciertamente esto permite un mayor control sobre las
características deseadas, pero puede resultar un
procedimiento algo complejo.
Actualización del Kernel
Para determinar cuáles paquetes del kernel están instalados,
ejecute el comando siguiente en el intérprete de comandos:
# rpm -qa | grep kernel
La salida contendrá alguno o todos de los siguientes paquetes,
dependiendo del tipo de instalación que haya realizado (el número
de la versión puede variar):
kernel-2.4.20-2.47.1
kernel-debug-2.4.20-2.47.1
kernel-source-2.4.20-2.47.1
kernel-doc-2.4.20-2.47.1
kernel-pcmcia-cs-3.1.31-13
kernel-smp-2.4.20-2.47.1
Actualizar vía RPMs
# rpm –ivh [kernel].rpm kernel
TCP/IP
Un KERNEL en formato RPM está preparado para distribuirse en el
Sistema de Archivos y actualizar automáticamente el gestor de arranque.
Actualizar con los fuentes
A partir de las fuentes se obtiene el Kernel y los
módulos.
[Link]
Descompresión
Personalización kernel
TCP/IP
Compilación
Agregar Perfil
Ubicación de elementos del Kernel
/
usr
boot lib
modules src
KERNEL
MÓDULOS SOURCE
vmlinuz
Ubicación del Kernel, módulos y fuentes del Kernel.
Modificar Gestor de Arranque
[Link]
image=/boot/vmlinuz
REGISTRAR label=Upgrade
Nuevo read-only
Kernel root=/dev/hda1
[Link]
title Upgrade
root (hd0,0)
kernel /boot/vmlinuz-xxx ro /dev/hda1
initrd /boot/[Link]
Agregar entrada en [Link] o [Link] para su selección.
Tema 3:
Administración de Discos
Introducción
El manejo de discos es una operación importante en un
sistema operativo. Esto implica tareas como el uso de
diskette o el añadir nuevas particiones a las ya existentes.
Linux tiene una forma especial de manejar el
nombramiento y formateo de las particiones en un disco.
En este unidad se explicará como es la administración de
discos en Linux, tanta para la creación de particiones,
como para la creación de sistemas de archivos dentro de
estas particiones.
Contenido
Tarea básicas de administración de discos.
Formateo de diskette.
Nombramiento de discos.
Particionamiento de discos.
Creación de filesystem.
Montaje y desmontaje de filesystem
Monitoreo de espacio.
Verificación de filesystem.
Tareas para la utilización de Discos
La información que es utilizada en los
sistemas es guardada en discos.
Para poder usar estos discos es necesarios
realizar ciertas tareas
Las tareas básicas son:
Formatear el disco.
Particionar el disco.
Crear un filesystem
Montar un filesystem
Formateo de Discos
Cuando en Linux se habla de formateo se refiere al
formateo de bajo nivel (low-level formatting). Los discos
IDE y SCSI, vienen hoy en día formateados de fabrica, por
lo que ya no es necesario formatearlos a alto nivel.
Los diskette puede ser formateados con el comando
“fdformat”, el cual también verifica sectores defectuosos
# fdformat /dev/fd0
El comando “badblocks” se puede usar para verificar
sectores dañados en cualquier disco o partición
(incluyendo diskettes).
Nombramiento de Particiones
Para hacer referencia a las particiones, Linux
utiliza un esquema bastante sencillo y que
proporciona mayor información que otros
sistemas operativos:
/dev/xxyyN
Xx - Indican el tipo de dispositivo, hd para disco IDE y sd
para discos SCSI y SATA
y - Indica el número de disco, Por ejemplo hda (el
primer disco IDE) o sdb (el segundo disco SCSI)
N - Indica el número de partición.
Particionamiento de Discos
Un disco puede ser dividido en varias particiones. Cada
partición funciona como si fuera un disco separado.
Un disco puede ser particionado por varias razones:
Para guardar diferentes sistemas operativos en el
mismo disco.
Para separar los archivos del sistema de los archivos
de los usuarios, lo cual facilita las copias de respaldo y
protege a los archivos del sistema de algún daño.
Las particiones se crean en el momento de instalar el
Linux, pero usted puede crear otras particiones después.
Programas para particionar discos
Existen varios comandos para manejar
particiones, entre ellos tenemos el fdisk y el cfdisk
# fdisk /dev/hda
# cfdisk /dev/hda
Disco
HD Linux Free space
Duro
Tipos de Dispositivos de Almacenamiento
Otros dispositivos de almacenamiento:
Tabla de Dispositivos de Almacenamiento
Dispositivo Descripción
/dev/hda Master IDE drive, primary IDE bus
/dev/hdb Slave IDE drive, primary IDE bus
/dev/hdc Master IDE drive, secondary IDE bus
/dev/hdd Slave IDE drive, secondary IDE bus
/dev/sda First SCSI hard drive
/dev/sdb Second SCSI hard drive
/dev/st0 First SCSI tape drive
/dev/st1 Second SCSI tape drive
/dev/scd0 First SCSI CD-ROM drive
/dev/scd1 Second SCSI CD_ROM drive
/dev/fd0 First Floppy Disk
Tema 4:
Creación de Sistemas de archivos
(Filesystems)
Filesystems
El filesystem es el método y estructura de
datos que un Sistema Operativo utiliza para
guardar archivos en un disco o partición.
DOC
S
Ventas0
1
Mail
Creación de un Filesystem
Los filesystem se construyen usando el
comando mkfs. Debe indicarse el tipo de
sistema de archivos que se desea crear y
sobre que partición deberá ser creado.
Sintaxis:
# mkfs -t <tipo_filesystem> <dispositivo>
Tipos de Filesystem
En linux se pueden crear los siguientes sistemas de
archivos:
Ext2 (Extended Filesystem versión 2)
Ext3 (Extended Filesystem versión 3)
Ext4 (Extended Filesystem versión 4)
JFS (Journal FS)
Msdos (MSDOS FAT16)
VFAT (Virtual FAT Filesystem)
Para ello existe un programa (binario) que crea dicho
sistema de archivo: mkfs.ext2, mkfs.ext3, , mkfs.ext4,
[Link], etc.
Soporte de Filesystems
En Linux se pueden “montar” diversos sistemas
de archivos, por ejemplo:
Ext2, Ext3, Ext4
Iso9660, UDF
Jfs, ReiserFS
Minix, Xenix
Msdos, VFAT
Nfs, Smbfs
Montando Filesystems
Un filesystem es accedido a través de un
punto de montaje, el cual viene a ser un
directorio.
Para montar un filesystem se utiliza el
comando mount.
Sintaxis:
# mount -t <tipo> <dispositivo>
<punto_montaje>
Ejemplo:
# mount -t ext3 /dev/sda2 /usr
# mount -t ext2 /dev/fd0 /mnt/floppy
Desmontando Filesystems
Para desmontar un filesystem se utiliza el
comando umount.
Sintaxis:
# umount <dispositivo> o <punto de montaje>
Ejemplo:
# umount /dev/fd0
# umount /mnt/floppy
Tabla de Montaje
El archivo /etc/fstab contiene información de los
filesystem y los puntos de montaje.
$ cat /etc/fstab
# device directory typeoptions dumpfsckorder
/dev/sda1 / ext2defaults 11
/dev/sda2 /usr extdefaults 12
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro0 0
/dev/sda5 swap swapdefaults 00
/dev/fd0 /mnt/floppy ext2 noauto,owner 00
none /proc proc defaults 00
none /dev/shm tmpfsdefaults 00
Opciones del /etc/fstab
La opciones utilizadas en el archivo fstab son:
ro: Monta el sistema de archivos con Read Only.
rw: Monta el sistema de archivos con Read/Write.
auto: Es montado al iniciar Linux.
noauto: Contrario a auto, usado por los
dispositivos removibles.
Opciones del /etc/fstab
nosuid: Evita el efecto del set-user ID (suid) o
set-group ID (sgid) en los archivos ejecutables
(uso de un UID o GID distinto al del usuario).
suid: Contrario a nosuid.
dev: Distingue los dispositivos tipo carácter o de
bloque.
async: Establece una comunicación asíncrona.
Monitoreando Espacio en Filesystem
Comando “df”:
Reporta el número de bloques libres en cada
filesystem.
$ df
Comando “du”:
Reporta el número de bloques usados por un
directorio:
$du -sh nombre-directorio
Opción -h
La opción –h en los comando df o du muestra la
información en K (Kilobytes), M (Megabytes) o G
(Gigabytes)
Verificando Filesystem
Comando “fsck”:
Verifica y repara daños en filesystems:
# fsck.ext3 /dev/<filesystem>
Al ejecutar este comando el dispositivo será
desmontado para obtener el acceso total sobre él.