Gestión de núcleos e inicio del sistema en Oracle Linux

Descubra los diferentes núcleos que se distribuyen con Oracle Linux, cómo gestionarlos y cómo controlar los procesos de inicio.

Acerca del inicio del sistema

Comprender el proceso de inicio de Oracle Linux puede ayudarle a solucionar problemas al iniciar un sistema.

El proceso de inicio implica varios archivos, y los errores en estos archivos son la causa habitual de problemas de inicio. Los procesos de inicio y la configuración difieren según si el hardware utiliza firmware UEFI o Legacy BIOS para manejar el inicio del sistema.

Una instalación de Oracle Linux incluye el cargador de inicio de GRUB 2, que se instala en una ubicación del disco duro a la que puede acceder el firmware UEFI o BIOS. El cargador de inicio de GRUB 2 se utiliza para cargar un núcleo y los initramfs en la memoria. Una vez que el núcleo se ha inicializado por completo, inicia el proceso systemd que gestiona el resto del sistema operativo.

Acerca del inicio basado en UEFI

En un sistema basado en UEFI que ejecuta la versión de Oracle Linux, el proceso de inicio del sistema utiliza la siguiente secuencia:

  1. Cuando el sistema está encendido, el sistema realiza una prueba automática de encendido (POST) para detectar y comprobar los componentes principales de hardware del sistema, como la CPU y la memoria. Luego, se inicializa el firmware UEFI.

  2. El firmware UEFI detecta cualquier otro hardware, como componentes periféricos, incluidos los dispositivos de red y el almacenamiento. El firmware UEFI contiene su propio gestor de inicio, que puede interactuar directamente con los cargadores de inicio en varios dispositivos de almacenamiento. El gestor de inicio almacena un conjunto de variables que incluyen la prioridad de diferentes dispositivos de inicio y cualquier cargador de inicio detectado.

    UEFI busca una partición GPT con formato FAT32 con un identificador único global (GUID) específico que la identifique como la partición del sistema EFI (ESP). Esta partición contiene aplicaciones EFI, como cargadores de inicio y otros archivos de configuración.

    Cuando hay más de un dispositivo de inicio, el gestor de inicio UEFI utiliza el ESP adecuado en función del orden definido en el gestor de inicio. Con la herramienta efibootmgr, puede definir un orden diferente si no desea utilizar la definición por defecto.

  3. El gestor de inicio UEFI carga el cargador de inicio predeterminado. Oracle Linux utiliza un proceso de inicio de 2 etapas para manejar el proceso de validación de inicio seguro. El proceso de 2 etapas incluye un primer cargador de inicio de etapa denominado cargador de inicio shim en el ESP y el segundo cargador de inicio de etapa denominado GRUB 2. Si el inicio seguro está desactivado, el cargador de inicio shim carga directamente el cargador de inicio de GRUB 2 en el ESP, para continuar con el proceso de inicio. Los archivos del cargador de inicio se denominan según la arquitectura del sistema, por ejemplo, el cargador de inicio shim se denomina shimx64.efi en sistemas x86_64 y shimaa64.efi en sistemas aarch64.

    De lo contrario, si el inicio seguro está activado, el cargador de inicio shim se valida con respecto a las claves almacenadas en la base de datos de claves de inicio seguro UEFI y, a su vez, verifica la firma del cargador de inicio de GRUB 2 con respecto a los certificados almacenados en la base de datos de claves de inicio seguro UEFI o la base de datos de claves de propietario de máquina (MOK). Si la firma de GRUB 2 es válida, se ejecuta el cargador de inicio de GRUB 2 y, a su vez, valida el núcleo que está configurado para cargar.

    Consulte Oracle Linux: Working With UEFI Secure Boot para obtener más información sobre el inicio seguro.

  4. El cargador de inicio carga el archivo de imagen del núcleo vmlinuz y el archivo de imagen initramfs en la memoria. El núcleo extrae el contenido de la imagen initramfs en un sistema de archivos temporal basado en memoria (tmpfs). initramfs contiene los controladores y las utilidades esenciales necesarios para el inicio.

  5. El cargador de inicio transfiere el control al núcleo y proporciona punteros a initramfs y cualquier otro parámetro de inicio. El núcleo continúa la inicialización del sistema, la detección de hardware, la carga de los controladores necesarios y el montaje del sistema de archivos raíz.

  6. El núcleo busca el proceso init en initramfs e inicia el proceso definido con un ID de proceso de 1 (PID 1). En Oracle Linux, el proceso init por defecto se configura como systemd. Consulte Administering SELinux in Oracle Linux para obtener más información.

  7. systemd ejecuta cualquier otro proceso definido para él.

    Nota

    Especifique otras acciones que se procesarán durante el proceso de inicio mediante la definición de unidades systemd. Se prefiere este método para utilizar el archivo /etc/rc.local.

Acerca del inicio basado en BIOS

En un sistema basado en BIOS que ejecuta la versión de Oracle Linux, el proceso de inicio es el siguiente:

  1. El BIOS del sistema realiza una prueba automática de encendido (POST) y, a continuación, detecta e inicializa cualquier dispositivo periférico y el disco duro.

  2. El BIOS lee el registro de inicio maestro (MBR) en la memoria desde el dispositivo de inicio. El MBR almacena información sobre la organización de particiones en ese dispositivo, la tabla de particiones y la firma de inicio que se utiliza para la detección de errores. El MBR también incluye el puntero al programa del cargador de inicio (GRUB 2), normalmente en una partición /boot dedicada en el mismo dispositivo de disco.

  3. El cargador de inicio carga el archivo de imagen del núcleo vmlinuz y el archivo de imagen initramfs en la memoria. A continuación, el núcleo extrae el contenido de initramfs en un sistema de archivos temporal basado en memoria (tmpfs).

  4. El núcleo carga los módulos de controlador desde el sistema de archivos initramfs que se necesitan para acceder al sistema de archivos raíz.

  5. El núcleo busca el proceso init en initramfs e inicia el proceso definido con un ID de proceso de 1 (PID 1). En Oracle Linux, el proceso init por defecto se configura como systemd. Consulte Administering SELinux in Oracle Linux para obtener más información.

  6. systemd ejecuta cualquier otro proceso definido para él.
    Nota

    Especifique otras acciones que se procesarán durante el proceso de inicio mediante la definición de unidades systemd. Se prefiere este método para utilizar el archivo /etc/rc.local.

Acerca del cargador de inicio GRUB 2

Oracle Linux incluye la versión 2 del cargador de inicio unificado GRand (GRUB 2), que carga el sistema operativo en un sistema en el momento del inicio.

Además de Oracle Linux, GRUB 2 puede cargar y cargar en cadena muchos sistemas operativos propietarios. GRUB 2 comprende los formatos de muchos sistemas de archivos y archivos ejecutables de núcleo diferentes. GRUB 2 requiere la ruta completa al núcleo y initramfs en relación con el dispositivo de inicio o raíz. Puede configurar esta información mediante el menú de GRUB 2 o introduciéndola en la línea de comandos de GRUB 2.

El comando grub2-mkconfig genera el archivo de configuración de GRUB 2 mediante las secuencias de comandos de plantilla en /etc/grub.d y los valores de configuración de menú tomados del archivo de configuración, /etc/default/grub.

Los archivos de GRUB 2 generados se leen durante el inicio del sistema desde /boot. El archivo de configuración principal de GRUB 2 está disponible en /boot/grub2/grub.cfg. En los sistemas basados en UEFI, se utiliza un archivo de configuración inicial en /boot/efi/EFI/redhat/grub.cfg para ayudar a dirigir GRUB 2 al dispositivo y la ubicación correctos del archivo de configuración principal de GRUB2. Los parámetros de inicio de cada versión del núcleo se almacenan en archivos de configuración independientes en /boot/loader/entries. Según la versión de Oracle Linux, cada configuración del núcleo se almacena con el nombre de archivo:
  • machine_id-kernel_version.el10.arch.conf
  • machine_id-kernel_version.el9.arch.conf
  • machine_id-kernel_version.el8.arch.conf
Nota

No edite el archivo de configuración de GRUB 2 directamente en /boot.

La entrada de menú por defecto se define por el valor del parámetro GRUB_DEFAULT en /etc/default/grub. Si GRUB_DEFAULT está establecido en saved, puede utilizar los comandos grub2-set-default y grub2-reboot para especificar la entrada predeterminada. El comando grub2-set-default establece la entrada predeterminada para todos los reinicios, mientras que grub2-reboot establece la entrada predeterminada para el siguiente reinicio únicamente.

Si especifica un valor numérico como el valor de GRUB_DEFAULT o como argumento para grub2-reboot o grub2-set-default, GRUB 2 cuenta las entradas de menú en el archivo de configuración a partir de 0 para la primera entrada.

Para actualizar la configuración del cargador de inicio de GRUB 2 en Oracle Linux, utilice el comando grubby para controlar y gestionar todos los requisitos de inicio.

La herramienta de línea de comandos grubby ayuda a gestionar la configuración de GRUB 2 y los parámetros de inicio del núcleo. Es totalmente programable y abstrae los detalles del cargador de inicio de bajo nivel, por lo que no necesita editar archivos GRUB a mano. Consulte Uso de grubby para gestionar núcleos para obtener más información.

Importante

Los cambios persistentes en la línea de comandos del núcleo se deben realizar con grubby. La regeneración de /boot/grub2/grub.cfg desde /etc/default/grub no aplicará esos cambios.

Si necesita cambiar algunos parámetros de la configuración durante el inicio, puede cambiar temporalmente los parámetros de inicio del núcleo en el menú de inicio de GRUB 2. Consulte Changing Kernel Boot Parameters Before Booting.

Para obtener más información sobre el uso, la configuración y la personalización de GRUB 2, consulte el Manual de GRUB de GNU, que también se instala como /usr/share/doc/grub2-tools-2.00/grub.html.

Acerca de los núcleos de Linux

Oracle Linux se puede iniciar con diferentes núcleos personalizados para mejorar el rendimiento o la interoperabilidad del sistema.

El núcleo de Linux es el núcleo del sistema operativo y proporciona la interfaz entre el hardware del sistema y las aplicaciones que se ejecutan en el sistema. El núcleo gestiona los recursos del sistema, gestiona la seguridad y permite que el software interactúe con el hardware sin necesidad de acceso directo. El kernel de Linux es un proyecto de código abierto que está disponible por la Fundación Linux.

La Fundación Linux proporciona un hub para que los desarrolladores de código abierto codifiquen, gestionen y escalen diferentes proyectos de tecnología abierta. También gestiona la organización del núcleo de Linux que existe para distribuir varias versiones del núcleo de Linux que se encuentra en el núcleo de todas las distribuciones de Linux, incluidas las utilizadas por Oracle Linux.

Debe instalar y ejecutar uno de estos núcleos de Linux con Oracle Linux:

  • Unbreakable Enterprise Kernel (UEK): UEK se basa en una rama de núcleo estable de la Fundación Linux, con adiciones basadas en el cliente, y pueden existir varios UEK para una versión específica de Oracle Linux. Su enfoque es el rendimiento, la estabilidad y los backports mínimos mediante el seguimiento del código fuente de la línea principal proporcionado por la Organización del Kernel de Linux, tan cerca como sea práctico. UEK se prueba y se utiliza para ejecutar Oracle Engineered Systems, Oracle Cloud Infrastructure (OCI) y grandes despliegues empresariales para clientes de Oracle.

    UEK incluye algunos paquetes o versiones de paquetes que no están disponibles en RHCK. Algunos ejemplos son los paquetes relacionados con btrfs-tools, rds y rdma, y algunas herramientas de ajuste del núcleo.

  • Núcleo compatible con Red Hat (RHCK): RHCK es totalmente compatible con el núcleo de Linux que se distribuye en una versión correspondiente de Red Hat Enterprise Linux (RHEL). Puede utilizar RHCK para garantizar la compatibilidad total con las aplicaciones que se ejecutan en Red Hat Enterprise Linux.

Los paquetes de núcleo se crean deliberadamente para evitar dependencias en un tipo de núcleo determinado. Cualquier núcleo que no esté en uso se puede eliminar del sistema sin impacto.

Por ejemplo, para eliminar RHCK de un sistema que ejecuta UEK, puede ejecutar:

sudo dnf remove kernel-core

Si un sistema utiliza RHCK, puede eliminar UEK ejecutando:

sudo dnf remove kernel-uek-core

Consulte Checking Available Kernels on the System para ver qué núcleos están instalados en el sistema.

Consulte Changing the Default Kernel para obtener información sobre cómo cambiar el núcleo predeterminado, por ejemplo, de RHCK a UEK, o de UEK a RHCK.

Importante

Los núcleos de Linux son fundamentales para ejecutar aplicaciones en el espacio de usuario de Oracle Linux. Por lo tanto, debe mantener el núcleo actualizado con las últimas correcciones de bugs, mejoras y actualizaciones de seguridad proporcionadas por Oracle. Para ello, implemente una estrategia continua de actualización y actualización. Consulte la Guía del usuario de Oracle Linux: Ksplice para obtener información sobre cómo mantener actualizado el núcleo sin necesidad de reiniciar el sistema. Consulte Oracle Linux: Gestión de software en Oracle Linux para obtener información general sobre cómo mantener el software actualizado en el sistema.

Para obtener más información sobre los núcleos disponibles, consulte:

Acerca de los módulos de núcleo

El cargador de inicio carga el núcleo en la memoria. Puede agregar nuevo código al núcleo mediante la inclusión de los archivos de origen en el árbol de origen del núcleo y la recompilación del núcleo. Los módulos de núcleo proporcionan controladores de dispositivos que permiten al núcleo acceder a hardware nuevo, admitir diferentes tipos de sistemas de archivos y ampliar su funcionalidad de otras maneras. Los módulos se pueden cargar y descargar dinámicamente bajo demanda. Para evitar la pérdida de memoria en controladores de dispositivos no utilizados, Oracle Linux admite módulos de núcleo cargables (LKM), que permiten que un sistema se ejecute solo con los controladores de dispositivos y el código de núcleo que se deben cargar en la memoria. Consulte Gestión de módulos de núcleo para ver más información sobre cómo gestionar módulos de núcleo en Oracle Linux.

Nota

A partir de UEK R7, se aplican cambios de empaquetado de núcleo para proporcionar un núcleo más optimizado. Los módulos de núcleo que se requieren para la mayoría de las configuraciones de servidor se proporcionan en el paquete kernel-uek-modules, mientras que los módulos de núcleo opcionales para hardware que se encuentran con menos frecuencia en las configuraciones de servidor, como Bluetooth, Wi-Fi y tarjetas de captura de video, se pueden encontrar en el paquete kernel-uek-modules-extra. Tenga en cuenta que ambos paquetes requieren que se instale el paquete linux-firmware.

Puede ver el contenido de estos paquetes ejecutando:

dnf repoquery -l kernel-uek-modules
dnf repoquery -l kernel-uek-modules-extra

Para instalar todos los módulos de núcleo disponibles, ejecute:

sudo dnf install -y kernel-uek-modules kernel-uek-modules-extra linux-firmware

Consulte UEK R7 (5.15.0).

Nota

A partir de UEK 8, se aplican cambios de empaquetado de núcleo para proporcionar un núcleo más optimizado. El número mínimo de módulos de núcleo central y archivos de soporte, como los archivos generados por depmod, se proporcionan en el paquete kernel-uek-modules-core. Los módulos de núcleo que se requieren para la mayoría de las configuraciones de servidor se proporcionan en el paquete kernel-uek-modules, mientras que los módulos de núcleo opcionales para hardware que se encuentran con menos frecuencia en las configuraciones de servidor, como Bluetooth, Wi-Fi y tarjetas de captura de video, se pueden encontrar en el paquete kernel-uek-modules-extra. Tenga en cuenta que ambos paquetes requieren que se instale el paquete linux-firmware.

Puede ver el contenido de estos paquetes ejecutando:

dnf repoquery -l kernel-uek-modules-core
dnf repoquery -l kernel-uek-modules
dnf repoquery -l kernel-uek-modules-extra

Para instalar todos los módulos de núcleo disponibles, ejecute:

sudo dnf install -y kernel-uek-modules-core kernel-uek-modules kernel-uek-modules-extra linux-firmware

Consulte UEK 8 (6.12.0).

Los módulos del núcleo se pueden firmar para proteger el sistema de la ejecución de código malicioso en el momento del inicio. Cuando el inicio seguro UEFI está activado, solo se pueden cargar los módulos de núcleo que contienen la información de firma correcta. Consulte Oracle Linux: Working With UEFI Secure Boot para obtener más información.

Acerca de los módulos de actualización débiles

Los módulos externos, como los controladores que se instalan mediante un disco de actualización de controladores o que se instalan desde un paquete independiente, normalmente se instalan en el directorio /lib/modules/kernel-version/extra. Los módulos que se almacenan en este directorio se prefieren a los módulos coincidentes que se incluyen con el núcleo cuando se cargan estos módulos. Los controladores y módulos externos instalados pueden sustituir los módulos de núcleo existentes para resolver problemas de hardware. Para cada actualización del núcleo, estos módulos externos deben estar disponibles para cada núcleo compatible, de modo que se puedan evitar posibles problemas de inicio como resultado de incompatibilidades del controlador con el hardware afectado.

Debido a que el requisito de cargar el módulo externo con cada actualización de núcleo compatible es crítico para el sistema, existe un mecanismo para que los módulos externos se carguen como módulos de actualización débiles para núcleos compatibles.

Los módulos de actualización débiles están disponibles mediante la creación de enlaces simbólicos a módulos compatibles en el directorio /lib/modules/kernel-version/weak-updates. El gestor de paquetes maneja este proceso automáticamente cuando detecta módulos de controlador que están instalados en los directorios /lib/modules/kernel-version/extra para cualquier núcleo compatible.

Por ejemplo, si un núcleo más reciente es compatible con un módulo que se instaló para el núcleo anterior, un módulo externo (como kmod-kvdo) se agrega automáticamente como enlace simbólico en el directorio weak-updates como parte del proceso de instalación, como se muestra en la siguiente salida de comando:

ls -l /lib/modules/6.12.0-100.28.2.el10.x86_64/weak-updates/kmod-kvdo/uds
lrwxrwxrwx. 1 root root 68 Jul  8 07:57 uds.ko -> 
/lib/modules/6.12.0-100.28.2.el10.x86_64/extra/kmod-kvdo/uds/uds.ko
ls -l /lib/modules/6.12.0-100.28.2.el10.x86_64/weak-updates/kmod-kvdo/vdo

El enlace simbólico permite que el módulo externo cargue actualizaciones del núcleo.

Las actualizaciones débiles son beneficiosas y garantizan que no se requiera trabajo adicional para llevar un módulo externo a través de las actualizaciones del núcleo. Cualquier posible problema de inicio relacionado con el controlador después de las actualizaciones del núcleo se evita, por lo que este enfoque proporciona una ejecución más predecible de un sistema y su hardware.

Puede eliminar módulos de actualización débiles si una versión del núcleo proporciona una versión superior o preferida del controlador o módulo. Consulte Eliminación de módulos de actualización débiles para obtener más información.

Para obtener más información sobre los módulos de controladores externos y los discos de actualización de controladores, consulte los siguientes documentos:

Acerca de los sistemas de archivos virtuales y la configuración del sistema

Una vez que el sistema completa el proceso de inicio, los sistemas de archivos virtuales proporcionan una interfaz para el núcleo en ejecución y para los procesos y el hardware que están disponibles en el sistema. Hay dos sistemas de archivos virtuales disponibles:
  • procfs: se monta en /proc y proporciona una interfaz para las estructuras de datos del núcleo, principalmente relacionadas con procesos y hardware.
  • sysfs: se monta en /sys y proporciona información sobre dispositivos, módulos de núcleo, sistemas de archivos y otros componentes de núcleo.

Estos sistemas de archivos virtuales se utilizan para controlar e informar sobre el núcleo en ejecución, de modo que la configuración del sistema se pueda supervisar y ajustar mientras el sistema operativo está activo.

Aunque no forma parte de la recopilación del sistema de archivos virtual del núcleo, la ruta del archivo de configuración del sistema /etc/sysconfig también es importante porque proporciona una interfaz para muchas variables de configuración del sistema principal que se leen cuando se inicia el sistema.

Consulte también Explore System Configuration Files and Kernel Tunables on Oracle Linux para obtener un tutorial práctico sobre cómo configurar los valores del sistema.

Acerca de los archivos /etc/sysconfig

El directorio /etc/sysconfig contiene algunos archivos que controlan la configuración del sistema después del inicio. El contenido de este directorio depende de los paquetes que haya instalado en el sistema. El directorio /etc/sysconfig proporciona en gran medida una vista única de muchos archivos de configuración que utilizan systemd y los componentes relacionados que controlan la configuración del sistema, como Network Manager.

En las versiones más recientes de Oracle Linux, el número de archivos de configuración de este directorio está disminuyendo porque systemd y otras unidades de configuración manejan mejor la configuración. Para obtener más información sobre systemd, consulte Managing the System With systemd.

Algunos archivos que puede encontrar en el directorio /etc/sysconfig incluyen lo siguiente:

atd

Especifica argumentos de línea de comandos para el daemon atd.

autofs

Define opciones personalizadas para el montaje automático de dispositivos y el control del funcionamiento del montador automático. No disponible en Oracle Linux 9, o posterior.

crond

Transfiere argumentos al daemon crond en el momento del inicio.

chronyd

Transfiere argumentos al daemon chronyd utilizado para los servicios NTP en el momento del inicio.

firewalld

Transfiere argumentos al daemon de firewall (firewalld) en el momento del inicio.

grub

Especifica la configuración predeterminada para el cargador de inicio GRUB 2. Este archivo es un enlace simbólico a /etc/default/grub. Para obtener más información, consulte About the GRUB 2 Bootloader. No disponible en Oracle Linux 9, o posterior.

named

Transfiere argumentos al daemon del servicio de nombres en el momento del inicio. El daemon named es un servidor de sistema de nombres de dominio (DNS) que forma parte de la distribución de Berkeley Internet Name Domain (BIND). Este servidor mantiene una tabla que asocia los nombres de host con las direcciones IP de la red.

samba

Transfiere argumentos a los daemons smbd, nmbd y winbindd en el momento del inicio para admitir la conectividad de uso compartido de archivos para clientes Windows, el servicio de nombres NetBIOS mediante IP y la gestión de conexiones a los controladores de dominio.

selinux

Controla el estado de SELinux en el sistema. Este archivo es un enlace simbólico a /etc/selinux/config.

Para obtener más información, consulte Administering SELinux in Oracle Linux.

snapper

Define una lista de sistemas de archivos btrfs y volúmenes LVM poco aprovisionados cuyo contenido puede ser registrado como instantáneas por la utilidad snapper.

Para obtener más información, consulte los siguientes documentos:

sysstat

Configura los parámetros de registro para las utilidades del recopilador de datos de actividad del sistema, como sar.

En Oracle Linux 8, puede encontrar más información en /usr/share/doc/initscripts*/sysconfig.txt. Este contenido no está disponible en versiones más recientes de Oracle Linux.

Acerca del sistema de archivos virtual /proc

Los archivos de la jerarquía de directorios /proc contienen información sobre el hardware del sistema y los procesos que se están ejecutando en el sistema. Puede cambiar la configuración del núcleo escribiendo en determinados archivos que tienen permiso de escritura.

Los archivos que se encuentran en el directorio /proc son archivos virtuales que el núcleo crea a petición para presentar una vista de las estructuras de datos subyacentes y la información del sistema. Como tal, /proc es un ejemplo de un sistema de archivos virtual. La mayoría de los archivos virtuales se muestran con un tamaño de 0 bytes, pero contienen una gran cantidad de información cuando se visualizan.

Los archivos virtuales como /proc/interrupts, /proc/meminfo, /proc/mounts y /proc/partitions proporcionan una vista del hardware del sistema. Otros archivos, como /proc/filesystems y los archivos de /proc/sys, proporcionan información sobre la configuración del sistema y mediante la cual puede cambiar las configuraciones según sea necesario.

Los archivos que contienen información sobre temas relacionados se agrupan en directorios virtuales. Existe un directorio independiente en el directorio /proc para cada proceso que se ejecuta en el sistema. El nombre del directorio corresponde al ID de proceso numérico. Por ejemplo, /proc/1 corresponde al proceso systemd que tiene un PID de 1.

Para examinar archivos virtuales, puede utilizar comandos como cat, less y view, como se muestra en el siguiente ejemplo:

cat /proc/cpuinfo
processor         : 0
vendor_id         : GenuineIntel
cpu family        : 6
model             : 42
model name        : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
stepping          : 7
cpu MHz           : 2393.714
cache size        : 6144 KB
physical id       : 0
siblings          : 2
core id           : 0
cpu cores         : 2
apicid            : 0
initial apicid    : 0
fpu               : yes
fpu_exception     : yes
cpuid level       : 5
wp                : yes
...

Para los archivos que contienen contenido no legible por humanos, puede utilizar utilidades como lspci, free, top y sysctl para acceder a la información. Por ejemplo, el comando lspci muestra los dispositivos PCI en un sistema:

sudo lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service
00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01)
00:06.0 USB controller: Apple Inc. KeyLargo/Intrepid USB
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:0b.0 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller
00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode]
        (rev 02)
...

Consulte procfs Directory Reference para obtener más información sobre los diferentes directorios disponibles en /proc. Consulte Gestión de parámetros de núcleo en tiempo de ejecución para obtener información sobre cómo puede ver y cambiar los parámetros de núcleo en /proc/sys para controlar el comportamiento del tiempo de ejecución del sistema.

Acerca del sistema de archivos virtual /sys

Además del sistema de archivos /proc, el núcleo exporta información al sistema de archivos virtual /sys (sysfs). Programas como el gestor dinámico de dispositivos (udev), utilizan /sys para acceder a la información del dispositivo y el controlador del dispositivo. Consulte Managing System Devices With the udev Device Manager para obtener más información sobre la gestión de dispositivos.

Nota

/sys expone las estructuras de datos del núcleo y los puntos de control, lo que implica que el directorio contiene referencias circulares, donde un directorio se enlaza a un directorio ascendiente. Por lo tanto, es posible que un comando find utilizado en /sys nunca se detenga.

Consulte sysfs Directory Reference para obtener más información sobre los directorios que puede encontrar en /sys.