Componentes de un kernel Linux 2.6.18

Román Muñoz Roncal
15-02-2008


  1. Code maturity level options
  2. General setup
  3. Enable loadable module support
  4. Block Layer
  5. Processor type and features
  6. Power Management Options
  7. Bus options
  8. Executable file formats
  9. Networking
  10. Device drivers
  11. File systems
  12. Instrumentation support
  13. Kernel hacking
  14. Security options
  15. Cryptographic API
  16. Library routines


1. Code maturity level options

En esta sección, tenemos una única opción: "Prompt for development and/or incomplete code/drivers". Si la activamos, el interfaz nos mostrara las opciones marcadas "EXPERIMENTAL". Si no lo activamos, esas caracteristicas no apareceran. Si lo que queremos es un kernel especialmente estable, dejamos esto sin marcar. Si necesitamos cualquier caracteristica experimental, tendremos que marcarlo. Por ejemplo, si queremos usar un modem USB con nuestro ADSL, necesitaremos tener activado el soporte ATM, que está marcado "experimental", y por tanto no aparecerá si no activamos esta opción.

2. General setup

Marcaremos como minimo:

Otras opciones:

3. Enable loadable module support

Activamos esta opcion si queremos un kenel con modulos. Una vez activada podemos entrar en ella y activar:

4. Block Layer

Aquí podemos dejar todo desactivado, a menos que necesitemos soportar archivos y dispositivos de bloques mayores de 2 TB. Si que entraremos en la opcion "IO Schedulers" donde tendremos que escoger al menos uno y usarlo como scheduler por defecto. Para un sistema de uso general, la mejor opcion es CFQ

5. Processor type and features

6. Power Management Options

Opciones de manejo de energía. En general, APM se considera obsoleto. Lo lógico es activar las opciones ACPI como módulos, y también las de CPU frequency scaling. Sin embargo, puede haber aplicaciones que necesiten algún módulo legacy.

7. Bus options

Aquí podemos activar soporte para PCI, PCI Express, ISA, PCMCIA/CardBus...

8. Executable file formats

Tendremos que activar el soporte para binarios ELF. Los binarios a.out están anticuados y es muy difícil que nos topemos con alguno, por tanto podríamos dejar esto sin marcar. El soporte para binarios MISC es útil para ejecutar programas interpretados - Java, Python, .NET...

9. Networking

10. Device drivers

10.1. Generic Driver Options

10.2. Memory technology devices

Soporte para dispositivos MTD.

10.3. Parallel port support

Soporte para puerto paralelo. Normalmente activaremos esta opción, así como "PC_style hardware" y "IEEE 1284 transfer modes"

10.4. Block devices

10.5. ATA/ATAPI/MFM/RLL support

10.6. SCSI device support

10.7. Multi-device support

Soporte RAID

10.8. Fusion MPT device support

Soporte SCSI para controladoras paralelas, fibre channel...

10.9. IEEE 1394

Soporte FireWire. En los kernel recientes viene activado por defecto un FireWire nuevo. Este FireWire (Juju) no es reconocido aún por la mayoría de aplicaciones que usan FireWire, de modo que es mejor desactivarlo y activar en su lugar el antiguo (que es el único disponible en los kernel 2.6.18)

10.10. I20

Arquitectura que permite dividir los modulos en dos partes, para usarlo necesitamos una tarjeta I20 en la máquina.

10.11. Network device support

Aqui podemos limitarnos a activar el modulo correspondiente a nuestra tarjeta de red. Otra opcion es marcar todo como modulo.

10.12. ISDN subsystem

Soporte para tarjetas RDSI

10.13. Telephony support

Soporte para tarjetas QuickNet

10.14. Input device support

Aqui tenemos modulos para controlar teclados, ratones, tabletas graficas, pantallas tactiles y hardware que se comunica via puerto serie (Hardware I/O ports)

10.15. Character devices

10.16. I2C support

Soporte para sensores de hardware, video4linux y en general cualquier dispositivo que use este protocolo o su subconjunto SMB (Serial management Bus). La politica mas sencilla seria compilarlo todo como modulo, excepto quiza las caracteristicas de debugging.

10.17. SPI support

Serial peripheral interface. Soporta dispositivos que usen protocolos como Microwire, SSP, SSI y PSP.

10.18. Dallas 1-wire support

Soporte para iButtons y otros dispositivos que manejan el protocolo 1-wire. Sin embargo, una alternativa probablemente mejor es dejar esto desactivado y usar owfs.

10.19. Hardware monitoring support

Controladores para los sensores hardware.

10.20. Multimedia devices

Soporte para dispositivos multimadia, sobre todo Video4Linux y los controladores de tarjetas capturadoras, sintonizadoras, webcams, etc.

10.21. Graphics support

10.22. Sound

10.23. USB support

Soporte USB. La opcion mas sencilla es compilar como modulo todo lo que se pueda. Si necesitamos arrancar desde un dispositivo USB, todos los modulos necesarios para acceder a ese dispositivo deberan estar en el disco RAM inicial, o compilados dentro del kernel.

10.24. MMC support

Soporte para el protocolo "multi-media card" Si necesitamos esto, activaremos esta opción y al menos "MMC block device driver"

10.25. LED devices

Soporte para lucecitas, tanto desde el kernel como desde el espacio de usuario.

10.26. InfiniBand support

Soporte InfiniBand

10.27. EDAC

Esta característica experimental informa de errores a nivel de memoria, cache, PCI, etc.

10.28. Real Time Clock

-RTC class. Soporte RTC. Si lo compilamos dentro del kernel, aparecerán un par de opciones más, una para ajustar la hora del sistema en el arranque y otra para indicar desde qué rtc queremos leer la hora. También tendremos que indicar desde qué sistema queremos acceder al rtc (normalmente "dev", y al menos el driver correspondiente a nuestro rtc (o meterlos todos como modulos)

10.29. DMA Engine support

Soporte DMA. Quita trabajo a la CPU, de modo que lo activamos, así como "Network: TCP receive copy offload". Si tenemos una maquina Intel, activamos también "Intel I/OAT DMA support"

11. File systems

Soporte para los distintos tipos de sistemas de archivo. En todos los casos, las opciones "extended attributes" activan el soporte para ACLs. Sin embargo, este soporte puede hacer que os programas para redimensionar particiones no funcionen. Normalmente estos "extended attributes" se dejan sin compilar.

11.1. Second extended fs support

Esta anticuado

11.2. Ext3 journalling file system support

Actualmente el filesystem por defecto en GNU/Linux. Si queremos que el kernel pueda acceder al disco duro, tendremos que compilarlo dentro o asegurarnos que una copia del módulo esta en el disco RAM inicial. Si el disco está formateado con otro filesystem, lógicamente esatas instrucciones tendrán que aplicarse al módulo correspondiente.

11.3. Reiserfs support

Sistema con journalling adecuado para grandes directorios con multitud de archivos pequeños.

11.4. XFS filesystem support

Otro sistema journalling, el más rápido según los benchmarks.

11.5. Inotify file change notification support

Sistema de notificación acerca de cambios, por ejemplo montados y desmontados de sistemas de archivos. Conviene activarlo.

11.6. Quota support

Soporte para cuotas. Si activamos esta opción, tendremos que seleccionar también una de las dos que aparecerán, probablemente "Quota format v2 support"

11.7. Filesystem in userspace support

Soporte FUSE. FUSE es usado por el nuevo metodo de acceder y escribir en particiones NTFS. También lo usan softwares exóticos como owfs (para leer sensores conectados a una red 1-wire), etc.

11.8. CDROM/DVD filesystems

Soporte para ISO9660, Joliet, etc. Si necesitamos arrancar desde un CD, convendrá tener compilados dentro del kernel los siguientes módulos:

11.9. DOS/FAT/NT filesystems

Soporte para sistemas de archivos de windows. Conviene tener al menos DOS y VFAT compilados como módulos; por ejemplo muchos pendrives USB vienen formateados con VFAT. Si escogemos VFAT, conviene indicar que el codepage es 850 y el iocharset es utf8; de este modo se evitan problemas de conversión de caracteres.

En cuanto al soporte NTFS, es el antiguo y no tiene soporte para escritura; mejor usar FUSE y NTFS-3G y dejar esto desactivado.

11.10. Pseudo filesystems

Soporte para los sistemas de archivos virtuales como /proc. Casi con seguridad, el módulo para soportar /proc ya habrá sido seleccionado por algún otro módulo; si no es así, debemos hacerlo nosotros. También conviene marcar "Virtual memory file system support", eso nos dará soporte para archivos temporales fuera del disco duro. Algunas aplicaciones modernas (sobre todo multimedia) esperan tener este soporte disponible.

11.11. Miscellaneous filesystems

Soporte para sistemas de archivos exóticos, por ejemplo de Macintosh o de Amiga, etc.

11.12. Network Filesystems

Soporte para sistemas de archivos en red. NFS es el estándar en GNU/Linux; si necesitamos acceder a redes windows convendrá activar también el soporte SMB, y si lo hacemos, convendrá indicar que el "Default NLS" es cp850 (y indicar que el NLS local por defecto es UTF8).

El soporte SMB va a ser declarado obsoleto en el kernel 2.6.25; por tanto quizá no esté de más usar el soporte CIFS en lugar de SMB.

11.13. Partition types

En un PC, con marcar "PC BIOS" debe ser suficiente.

11.14. Native Language support

Conviene marcar "utf8" en "Default NLS Option". Podemos marcar como módulos, aparte del NLS UTF-8, el ASCII, los codepages 437 y 850, y todos los NLS ISO 8859-*

12. Instrumentation support

Podemos dejar esto sin compilar, a menos que seamos desarrolladores del kernel

13. Kernel hacking

También podemos dejar todo esto sin compilar, a menos que seamos desarrolladores del kernel. Sin embargo, la opción "Magic SysRq key" permitirá que apaguemos la máquina correctamente en caso de un cuelgue, esto puede ser útil si estamos compilando kernels y tenemos cuelgues inesperados.

14. Security options

15. Cryptographic API

Soporte para diversos estándares de encriptación. Lo mejor es marcar todo como módulos.

16. Library routines

Similar al apartado Criptographic API, en este caso las funciones de encriptación se aplican a módulos construidos fuera del kernel.