Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porEstefania Torres García Modificado hace 9 años
1
Kernel Introduccion al funcionamiento del Kernel Compilacion Kernel Sistema de Archivos procfs y sysfs Herramientas de Hardware Utilizacion de Modulos
2
Kernel Caracteristicas --> Es un núcleo monolítico híbrido --> Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario --> A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones
3
Kernel
6
El número A denota la versión del núcleo. Es el que cambia con menor frecuencia y solo lo hace cuando se produce un gran cambio en el código o en el concepto del núcleo. Históricamente sólo ha sido modificado tres veces: en 1994 (versión 1.0), en 1996 (versión 2.0) y en 2011 (versión 3.0). El número B denota la subversión del núcleo. Antes de la serie de Linux 2.6.x, los números pares indicaban la versión “estable” lanzada. Por ejemplo una para uso de fabricación, como el 1.2, 2.4 ó 2.6. Los números impares, en cambio, como la serie 2.5.x, son versiones de desarrollo, es decir que no son consideradas de producción. Comenzando con la serie Linux 2.6.x, no hay gran diferencia entre los números pares o impares con respecto a las nuevas herramientas desarrolladas en la misma serie del núcleo. Linus Torvalds dictaminó que este será el modelo en el futuro. El número C indica una revisión mayor en el núcleo. En la forma anterior de versiones con tres números, esto fue cambiado cuando se implementaron en el núcleo los parches de seguridad, bugfixes, nuevas características o drivers. Con la nueva política, solo es cambiado cuando se introducen nuevos drivers o características; cambios menores se reflejan en el número D. El número D se produjo cuando un grave error, que requiere de un arreglo inmediato, se encontró en el código NFS de la versión 2.6.8. Sin embargo, no habían otros cambios como para lanzar una nueva revisión (la cual hubiera sido 2.6.9). Entonces se lanzó la versión 2.6.8.1, con el error arreglado como único cambio. Con 2.6.11, esto fue adoptado como la nueva política de versiones. Bug-fixes y parches de seguridad son actualmente manejados por el cuarto número dejando los cambios mayores para el número C. Numeracion A.B.C[.D]
7
Kernel Pasos Previos: su -c 'yum install rpmdevtools yum-utils' su -c 'yum install qt3-devel libXi-devel' ( solo con xconfig) Compilacion (Fedora)
8
Kernel Obtener Fuente(No hacerlo como root): rpmdev-setuptree yumdownloader --source kernel su -c 'yum-builddep kernel-.src.rpm' rpm -Uvh kernel-.src.rpm Compilacion (Fedora)
9
Kernel Preparar el directorio del Kernel Fuente: cd ~/rpmbuild/SPECS rpmbuild -bp --target=$(uname -m) kernel.spec Aplicar un parche al Kernel Fuente: export arch=x86_64 # replace x86_64 with your arch export ver=3.1 # replace 3.1 with your kernel version export fedver=fc16 # replace fc16 with your fedora version cp -r ~/rpmbuild/BUILD/kernel-$ver.$fedver/linux-$ver.$arch ~/rpmbuild/BUILD/kernel-$ver.$fedver.orig cp -al ~/rpmbuild/BUILD/kernel-$ver.$fedver.orig ~/rpmbuild/BUILD/kernel- $ver.$fedver.new cd ~/rpmbuild/BUILD diff -uNrp kernel-$ver.$fedver.orig kernel-$ver.$fedver.new >../SOURCES/linux-$ver.$fedver-mynewpatch.patch Compilacion (Fedora)
10
Kernel Configurando Opciones del Kernel: 1. cd ~/rpmbuild/BUILD/kernel-$ver.$fedver/linux-$ver.$arch/ (opcional ir al paso 4) 2. cp configs/.config 3. make oldconfig 4. make menuconfig (make xconfig,make gconfig) 5. Agregar en la cabecera de.config la arquitectura (# x86_64) 6. cp.config ~/rpmbuild/SOURCES/config-`uname -m`-generic Compilacion (Fedora)
11
Kernel Configurando Opciones del Kernel en 32-bit x86: The 32-bit PAE kernel uses the config-i686-PAE configuration file. If you are building a PAE kernel, you will need to copy your config file to ~/rpmbuild/SOURCES/: 1. cp.config ~/rpmbuild/SOURCES/config-i686-PAE If you are building a non-PAE kernel, you will need to copy your config file to 1. cp.config ~/rpmbuild/SOURCES/config-x86-32-generic 1. cp.config ~/rpmbuild/SOURCES/config-x86-32-generic Compilacion (Fedora)
12
Kernel Preparando archivos de build(kernel.spec): 1. cd ~/rpmbuild/SPECS 2. Abrir kernel.spc #% define buildid.local CAMBIAR A -_> %define buildid. 3. Si generamos un patch, al final de los patch existentes agregar y comentar el nuestro. Ej: ApplyPatch linux-2.6-cputime-fix-accounting.patch ApplyPatch linux-2.6-samfw-test.patch Compilacion (Fedora)
13
Kernel Construyendo el Kernel: Con todos los sabores : 1. rpmbuild -bb --target=`uname -m` kernel.spec Deshabilitando algunos sabores Deshabilitando algunos sabores: 1. rpmbuild -bb --without --target=`uname -m` kernel.spec Especificando algunos sabores: 1. rpmbuild -bb --with --target=`uname -m` kernel.specEjemplos: 1. rpmbuild -bb --with baseonly --without debuginfo --target=`uname -m` kernel.spec 2. rpmbuild -bb --with baseonly --with firmware --without debuginfo \ --target=`uname -m` kernel.spec Compilacion (Fedora)
14
Kernel Instalando el Kernel: Instalando ( no usar -U --upgrade) : su -c "rpm -ivh --force $HOME/rpmbuild/RPMS/ /kernel-..rpm" Otra forma: Otra forma:: su -c "rpm -ivh $HOME/rpmbuild/RPMS/ /kernel-..rpm \ $HOME/rpmbuild/RPMS/ /kernel-firmware-..rpm \ $HOME/rpmbuild/RPMS/ /kernel-headers-..rpm \ $HOME/rpmbuild/RPMS/ /kernel-devel-..rpm" Creando enlace fuente: su -c 'ln -s /usr/src/kernels/. - /usr/src/linux' Compilacion (Fedora)
15
Kernel Compilacion Tradicional: Cd /usr/src/linux Make mrproper (opcional limpia arbol ) Make config|menuconfig|gconfig Make clean (limpia) Make Bzimage Make modules Make modules_install Make install
16
Kernel Compilacion Tradicional pasos opcionales: cp arch/x86/boot/bzImage /boot/bzImage-3.2.2 cp System.map /boot/System.map-3.2.2 ln -s /boot/System.map-3.2.2 /boot/System.map cat /boot/System.map > /boot/vmlinuz-3.2.2 ln -s /boot/vmlinuz /boot/vmlinuz-3.2.2 Editar el grub mkinitrd /boot/initrd-3.2.2.img 3.2.2
17
Kernel Directorio /proc El kernel de Linux tienes dos funciones primarias: controlar el acceso a los dispositivos físicos del ordenador establecer cuándo y cómo los procesos interactuarán con estos dispositivos. El directorio /proc/ — también llamado el sistema de archivos proc — contiene una jerarquía de archivos especiales que representan el estado actual del kernel — permitiendo a las aplicaciones y usuarios mirar detenidamente en la vista del kernel del sistema. El directorio /proc/ — también llamado el sistema de archivos proc — contiene una jerarquía de archivos especiales que representan el estado actual del kernel — permitiendo a las aplicaciones y usuarios mirar detenidamente en la vista del kernel del sistema.
18
Kernel Directorio /proc Dentro del directorio /proc/, se puede encontrar una gran cantidad de información con detalles sobre el hardware del sistema y cualquier proceso que se esté ejecutando actualmente. Además, algunos de los archivos dentro del árbol de directorios /proc/ pueden ser manipulados por los usuarios y aplicaciones para comunicar al kernel cambios en la configuración.
19
Kernel Directorio /proc * Todo se guarda en archivos (binario y texto) * Otro nuevo llamado archivo virtual * /proc sistema de archivo virtual
20
Kernel Directorio /proc Cualidades unicas: * La mayoria posee un tamaño de 0 bytes. * A pesar de eso tienen gran información y timestamp correcto. * Se agrupan en categorias * Se agrupan en categorias * Reflejan información y estado del sistema
21
Kernel Ejemplos de archivos en /proc: /proc/interrupts /proc/meminfo /proc/mounts /proc/partitions /proc/filesystems /proc/sys /proc/ioports /proc/apm /proc/cmdline /proc/buddyinfo /proc/cpuinfo /proc/crypto /proc/devices /proc/dma /proc/execdomains /proc/fb /proc/iomem /proc/kcore /proc/ksmg /proc/locks /proc/loadvg /proc/mdstat /proc/misc /proc/modules /proc/mttr /proc/pci /proc/slabinfo /proc/stat /proc/swaps /proc/sysrq-trigger /proc/uptime /proc/version
22
Kernel Ejemplos de directorios en /proc: /proc/[0123456789]* /proc/self /proc/bus /proc/driver /proc/fs /proc/ide /proc/scsi /proc/irq /proc/net /proc/asound /proc/acpi /proc/tty /proc/
23
Kernel Directorio /proc/sys: A diferencia de los demas en este puedo escribir parametros de configuracion del kernel [root@restauracion sys]# ls -d * abi crypto debug dev fs kernel net vm [root@restauracion sys]#
24
Kernel Cambiando valores del Kernel: Sysctl -a Lista los parametros activos Cambiando a mano: [root@restauracion kernel]# cat /proc/sys/dev/cdrom/autoeject 0 [root@restauracion kernel]# echo 1 > /proc/sys/dev/cdrom/autoeject [root@restauracion kernel]# cat /proc/sys/dev/cdrom/autoeject 1 [root@restauracion kernel]#
25
Kernel Cambiando valores del Kernel: [root@restauracion kernel]# sysctl -a |grep autoeject dev.cdrom.autoeject = 1 [root@restauracion kernel]# sysctl -w dev.cdrom.autoeject="0" dev.cdrom.autoeject = 0 [root@restauracion kernel]# sysctl -a |grep autoeject dev.cdrom.autoeject = 0 [root@restauracion kernel]#
26
Kernel Cambiando valores del Kernel: Para que la configuracion quede guardada hay que escribirla en /etc/sysctl.conf y ejecutar sysctl -p
27
Kernel Algunos mas usados: file-max inode-max ctrl-alt-del shmmax conf/default/rp_filter icmp_echo_ignore_all icmp_echo_ignore_broadcast ip_forward ip_local_port_range tcp_fin_timeout tcp_syncookies
28
Kernel Directorio /sys Sysfs es un sistema de archivos incorporado en el Kernel 2.6 y diseñando para poder acceder (de forma coherente y prolija) a información de los módulos, dispositivos y otros subsistemas activos del Kernel. Fue incorporado con la idea de corregir el uso incorrecto que se le estaba dando a procfs. Sysfs consiste de un sistema de archivos virtual similar a procfs, pero con la diferencia de que está pensado: para acceder a información de los objetos del Kernel (dispositivos, buses, módulos, etc), mientras que procfs está pensado entre otras cosas para acceder a información de procesos (de ahí su nombre).
29
Kernel Directorio /sys Sysfs también especifica una forma estándar de acceder a la información de los objetos del Kernel (ver la documentación de kobject). Sysfs (al igual que procfs) también permite modificar sus archivos logrando así cambiar la configuración del módulo o sistema que se esté configurando. Sysfs pareciera ser, a primera vista, la alternativa ideal para realizar la configuración de un módulo. Sin embargo, la historia no termina ahi, ya que sysfs fue diseñado para obtener información de los dispositivos, no para configurarlos.
30
Kernel Herramientas de Hardware Lspci –help Lspci -tvv Lspci -vvb
31
Kernel Herramientas de Hardware Lsusb –help Lsusb -t Lsusb
32
Kernel Herramientas de Hardware Lshw --help Lshw -html Lshw -class network lshw-gui
33
Kernel Herramientas de Hardware Dmidecode –help Dmidecode -q Dmidecode Dmidecode -s string Dmidecode -t 6
34
Kernel Modulos/Driver Los componentes del sistema una vez que fueron reconocidos por el kernel si este no posee l driver correspondiente hay que bajarse el firmware del fabricante e instalarlo
35
Kernel Modulos/Driver lsmod :Muestra los módulos que se han cargado en memoria durante el proceso de arranque. modprobe nombre_módulo: Carga el módulo nombre_modulo. Si depende de otros módulos los cargará primero. rmmod nombre_módulo : descarga el módulo nombre_módulo de la memoria. modinfo nombre_módulo : proporciona información de nombre_módulo
36
Kernel Directorios,archivos y comandos:/etc/modprobe.d//lib/modules /lib/modules/$(uname -r)/modules.dep Depmod -a /etc/modules.conf/etc/modprobe.conf
37
Kernel Ejemplos: modprobe --show-depends fat modprobe -l nfs modprobe -rav nfs modprobe -av nfs
38
Kernel Bibliografia: http://fedoraproject.org/wiki/Building_a_custom_kernel http://en.wikipedia.org/wiki/Linux_kernel Proc y Sysfs Proc
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.