PDF de programación - Apuntes para la certificación LPI nivel 2

Imágen de pdf Apuntes para la certificación LPI nivel 2

Apuntes para la certificación LPI nivel 2gráfica de visualizaciones

Publicado el 3 de Marzo del 2019
787 visualizaciones desde el 3 de Marzo del 2019
459,5 KB
64 paginas
Creado hace 7a (05/11/2012)
Apuntes para la certificación

LPI nivel 2

Jorge Andrada Prieto

Licencia

Esta obra está licenciada bajo la Licencia Creative Commons Atribución-
NoComercial-CompartirIgual 3.0 Unported. Para ver una copia de esta

licencia, visita http://creativecommons.org/licenses/by-nc-sa/3.0/.

Contacto

monino@gmail.com

@monino

jandradap

Bibliografía
Aclarar que cubre los objetivos LPIC-2 para la versión 3.5.0
Para la realización de los apuntes me baso en páginas man, wiki lpi, Guía de estudio - Exámenes
201 y 202, Anaya Multimedia ISBN-13: 978-84-415-3014-0 (recomendable su compra) y por
supuesto san google ;)

Agradecimientos

• Grison y Rano: por su apoyo y su gran amistad
• Paquintosita, Carlos López y P.Quintas: por esas risas y cafés en la biblioteca
• Lolo, Bala, Jose, Skuleto, Arboleda y demás colegas: por hacerme desconectar los fines de

semana y pasarlo de arte

• Carmen Pozo por esos momentos de relax en sitios tan ricos y aguantarme
• Colegas del curro como “Er Femenino” por darme caña cuando estoy de descanso-estudio,
Rubén “Muñón” por ser un compi fricazo de lo mejor que hay! Mon por las pechá de reir y
Jpagador, Juanillo, Negra, Nefer, Pepe, Adolfo, etc.

• Colegas de diablo3-esp.com: por ayudarme a mendigar al no tener tiempo
• Mi pelirroja: por hacerme más amena las horas de estudio con su bonita sonrisa...ains,

gracias desconocida...de momento

• Mis padres y mi vaca asquerosa (mi hermana) por muchas cosas.

Tema 201: Kernel de Linux

201.1 Componentes del Kernel

Se puede descargar el Kernel “Linux Kernel Archives” (www.kernel.org) o mediante actualización
del sistema (yum, apt, etc).
Es complicado distinguir entre Kernel estable e inestable.

Formato: “versión.subversión.nuevas funciones importantes.arreglos de esa versión”.

Podemos ver la versión que se está ejecutando actualmente con “uname -a”.

Nota: actualizar el Kernel sin reiniciar (para sistemas que no pueden tener inactividad) se usa la
herramienta “ksplice”, que congela la ejecución de programas que gestiona el kernel, cambia el
nuevo Kernel y retoma la operación de los programas. Es totalmente transparente.

El código fuente del Kernel reside en “/usr/src/linux-version_que_sea”, otras distros lo ubican en
“/usr/src/kernel/linux-version”.
Un vínculo simbólico de “/usr/src/linux” debe apuntar al directorio actual del Kernel fuente
(modificamos con “ls -ld /usr/src/linux”). Con varios Kernels hay que hacerlo a mano “rm
/usr/src/linux” y “ln -s /usr/src/linux-version /usr/src/linux”.

Se puede instalar con “yum y apt”, buscando “linux-source o kernel-devel”, también podemos
instalar sólo las cabeceras con “linux-headers o kernel-headers”.

Documentación:
Se encuentra en “/usr/src/linux/README”. La documentación específica y subsistemas del
Kernel se encuentra en “/usr/src/linux/Documentation”, pero es enorme, hay un índice “00-
INDEX”.

Binarios del Kernel:
Una vez compilado, el Kernel produce dos archivos, dos categorías:

• Archivo principal del kernel: contiene las partes centrales del Kernel, es procesado por el

bootloader. Reside en “/”.

• Módulos del Kernel: residen “/lib/modules/”, con subdirectorios para versiones.

Tabla de archivos principales del Kernel:




vmlinux: versión descomprimida del kernel, creado como paso intermedio. No arrancable.
vmlinuz: vmlinux comprimida, arrancable con algunas funciones. Suelen ser nombres de
Kernels binarios precompilados.
zImage: obsoleto, tamaño limitado a 512 KB.
bzImage: sustituye al obsoleto zImage. Nombra Kernels compilados localmente.



• Kernel: binario estilo bzImage, usado por bootloaders como Grub2.

201.2 Compilar un Kernel

Configurar las fuentes del Kernel: hay miles de opciones de configuración, para configurarlo bien
hay que:

LPIC 2 Temario 201 by Jorge Andrada 5 / 64

Investigar su hardware: tener un módulo innecesario añade tiempo de carga del SO. Hay que leer
los manuales del hardware y usar: lspci, lsusb y lsmod.

Utilizar objetivos make del Kernel:
Algunos son:

• mrproper: elimina archivos de configuración y temporales antiguos.





oldconfig: actualiza un archivo de configuración antiguo con elementos nuevos.
virtualdconfig: oldconfig pero más ordenado por pantalla.
defconfig: crea un archivo de config nuevo con los valores por defecto.
allmodconfig: crea un archivo de configuración que emplea toda la configuración modular
posible.
config: configura todos los elementos del Kernel usando un interfaz basada en texto.


• menuconfig: configura el Kernel usando un sistema de menú basado en texto.



xconfig: como menuconfig, pero con GUI basada en Qt.
gconfig: xconfig, pero basado en Gtk.

Opciones de configuración:
Con menuconfig, xconfig o gconfig. Alguna configuración importante:

• Configuración general>Versión local: para montar el mismo Kernel con diferentes

opciones.

disco RAM inicial.

• Configuración general> Soporte Ram inicia y disco inicial: (intran???/initrd): si se usa un

• Configuración general> Habilitar soporte de módulo cargable: no podría cargar drivers

que no vengan del Kernel. Muchos inconvenientes.

• Tipo y funciones el procesador> Soporte de multiproceso: habilita más de una CPU o

• Tipo y funciones del procesador> Familia del procesador: se logra rendimiento

núcleo por CPU.

especificando una CPU concreta.

Compilar un Kernel:
Hacemos “make” en el directorio fuente del kernel. Podemos compilar el Kernel por separado con
“make nzImage o zImage” y los módulos con “make modules”. Para localizar errores: “Make
zImage | grep -iw “error””.

Preparar un disco de RAM inicial:
Es una colección de módulos fundamentales del Kernel y grupo de utilidades del sistema que el
bootloader pasa al Kernel en el arranque. El Kernel accede a ellos en la memoria como si fuese un
disco, carga módulos y ejecuta scripts para montar “/”. Es necesario cuando usamos: RAID, LVM o
NAS (SAN en español), pero recomendable para los demás.
Herramientas de creación:

• mkinitrd: RedHat, Fedora y relacionados. Hay que pasarle el nombre de imagen de disco

RAM y su nº de versión del Kernel: “mkinitrd /boot/initrd-2.6.32.4.img 2.6.35.4”. Esto
crea el archivo “/boot/initrd-2-6-35-4”. Con “-f” borra los anteriores antes de crear el nuevo.
• mkinitramfs: igual que “mkinitrd” pero hay que especificar el nombre con “-o”, ejemplo:

“mkinitramfs -o /boot/initramfs-2.6.35.4.img 2.6.35.4”.

Con el comando “rdev” se cambia las opciones de modo VGA, tamaño de disco RAM, etc. Sin
argumentos muestra la línea de “/etc/mtab” con el sistema root actual.

LPIC 2 Temario 201 by Jorge Andrada 6 / 64

201.3 Parchear el Kernel:

No siempre es necesario, permite realizar cambios en las fuentes del Kernel sin tener que descargar
el Kernel nuevo entero, se obtiene el archivo “patch-version.gz o patch-version.bz2”.

Con “gzip/bzip2 -cd ../ patch-version.gz/bz2 | patch -pl”.

Para quitar el parche “unzip -c ../patch-version.tar.bz2 | patch -Rp1”.

201.4 Personalizar, compilar e instalar un kernel personalizado y módulos

Empaquetar el Kernel:
Para instalar el Kernel en otro sistema, se hace con “rpm-pkg, binrpm-pkg o deb-pkg” como
parámetros a make.
Es recomendable instalarlo sin actualizar el anterior Kernel (lo borra) por si no arrancase el pc.

Instalación de un binario del Kernel:
Una vez compilado el Kernel lo instalamos, copiándolo a “/boot”, que suele estar desmontada para
evitar errores en algunas distros. La imagen a copiar es un bzImage en la mayoría de las distros “cp
arch???/x86/boot/bzImage /boot/bzImage-2.6.35.4”.

No es obligatorio, pero recomendable copiar también el archivo “System.map” que se usa para
depuración del Kernel. Copiamos y creamos enlace simbólico “/boot/System.map”.
Todo esto nos lo podemos ahorrar con “make && make install” que compila, copia el Kernel,
copia System.map y modifica el bootloader.

Instalar los módulos del Kernel:
Con “sudo make modules_install”. Esta llama también a “depmod” que regenera el archivo
“Modules.dep” de dependencias.

Añadir el Kernel a Grub:
La manera más sencilla es copiar una entrada existente, pegarla y editarla.

• Grub1: cambiar el “title” para identificarlo, cambiar el nombre de archivo en la línea

“Kernel”. Si se usa otro disco RAM, cambiar la línea “initrd”. No borrar la otra sin haber
probado a iniciar el nuevo Kernel.

• Grub2: copia de seguridad a “/boot/grub/grub.cfg”. Hacemos un “sudo update-grub2 o

grub-mkconfig”. Si no lo encuentra porque tiene un nombre personalizado (no se llama
vmlinuz o Kernel) hay que añadirlo a mano en “/etc/grub.d/40-custom”. Modificar el
“menuentry (el título)” y los nombres del Kernel y disco RAM. Si queremos cambiar el
Kernel por defecto al inicio cambiamos el parámetro “default” en “/boot/grub/grub.cfg”.

Nota: si se instala desde binario, probablemente lo añada de forma automática.

201.5 Administrar módulos del Kernel durante la ejecución:

Obtener información sobre el Kernel:
Con “uname -a”, con “-o” indica el SO (Linux, FreeBSD, Solaris, MacOS...). El directorio “/proc”
tiene mucha información.

Obtener información de los módulos del Kernel en ejecución:
Usamos “lsmod” para ver los módulos cargados en el sistema. Tiene una columna llamada

LPIC 2 Temario 201 by Jorge Andrada 7 / 64

“Module” que se le pasaría como parámetro a “modinfo” si queremos ver más información sobre
ese módulo. La columna “Used by” de “lsmod” describe que usa el módulo. Lsmod no muestra
info de los drivers que se compilan directamente sobre el Kernel.
Cargar módulos del Kernel: mediante dos programas:



ismod: carga un único módulo en el Kernel (No sus dependencias). Requiere el nombre
compl
  • Links de descarga
http://lwp-l.com/pdf15399

Comentarios de: Apuntes para la certificación LPI nivel 2 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad