Un recorrido por el sistema de archivos Linux.

Imagen de Manu

Tema: 

Un recorrido por el sistema de archivos Linux.

Cuando una persona se aventura a iniciarse en el mundo de Linux, una de las primeras cosas que desea saber, es cómo están los recursos del sistema: velocidad del procesador, cantidad de memoria, las particiones, versión del kernel, etc.

Aunque pueden existir una serie de comandos para identificar estos parámetros, o a través de los entornos gráficos (kde, gnome, etc), existen una forma menos tradicional, pero eficiente de conocer estos detalles, y que, a parte de proveernos la información que necesitamos, nos permite conocer más a fondo la estructura de un Linux. Esta forma consiste en analizar el sistema de ficheros, después de todo, en Linux, todo se puede representar mediante un fichero o archivo.

Durante esta serie de documentos, intento ir analizando la estructura del sistema de ficheros Linux, (no confundir formato de sistema de archivos).

Pero vamos, basta de palabras y empezemos con el primer sistema que analizaremos.

El sistema de archivos /proc

/proc es un pseudo-sistema de ficheros que se usa como interfaz para las estructuras de datos del kernel. La mayor parte de este sistema de ficheros es de sólo lectura, pero algunos ficheros permiten cambiar variables del kernel.

En /proc, hay un subdirectorio numérico para cada proceso en ejecución; el nombre del subdirectorio es el ID del proceso. Para conocer la estructura de cada directorio y su significado, hacer man proc.

El objetivo de este artículo es analizar los ficheros o seudo ficheros que normalmente vamos a encontrar en /proc, y que nos ofrecerán información detallada del sistema, la mayoría de los cuales son legibles mediante el comando cat:

cpuinfo.- Ofrece información a cerca del/los procesador(es) instalado(s) en el sistema, lo más importante de este fichero es el número de procesador, el tipo de procesador y la velocidad de reloj, aunque la salida varía dependiendo de la arquitectura del procesador.

Ejemplo:

cat /proc/cpuinfo

processor : 0
cpu : POWER5 (gr)
clock : 1498.500000MHz
revision : 2.1

meminfo.- Informa la cantidad de memoria libre y usada en el sistema (tanto física como de intercambio). La información de este fichero es utilizada por el comando free.

Ejemplo:

cat /proc/meminfo

MemTotal: 5109356 kB
MemFree: 16872 kB
Buffers: 17596 kB

modules.- Lista de módulos que han sido cargados por el sistema.
Ejemplo:
cat /proc/modules

IBMtape 287960 2 [permanent], Live 0xd000000000407000
md5 14649 1 - Live 0xd00000000006a000
ipv6 426025 16 - Live 0xd00000000048a000

pci.- Es una lista de todos los dispositivos PCI encontrados durante la inicialización del núcleo y sus configuraciones respectivas.

Ejemplo:

cat /proc/pci

PCI devices found:
Bus 0, device 2, function 4:
Class 0604: PCI device 1014:0188 (rev 3).
Master Capable. Latency=248. Min Gnt=1.Max Lat=8.

partitions.- Muestra información sobre las particiones del sistema y sus bloques.

Ejemplo:

cat /proc/partitions

major minor #blocks name

8 0 31457280 sda
8 1 8001 sda1

filesystems.- Lista de los sistemas de ficheros que fueron compilados dentro del núcleo. El comando mount usa esto para circular a través de diferentes sistemas de ficheros cuando no se especifica ninguno.

Ejemplo:

cat /proc/filesystems

nodev sysfs
nodev rootfs
nodev bdev

nodev mqueue
ext3

interrupts.-Es usado para registrar el número de interrupciones para cada IRQ

Ejemplo:
cat /proc/interrupts

CPU0
0: 1688360664 IO-APIC-edge timer
1: 8555 IO-APIC-edge i8042
7: 2 IO-APIC-edge parport0
8: 4 IO-APIC-edge rtc
9: 8502 IO-APIC-level acpi
12: 50624 IO-APIC-edge i8042
14: 51705763 IO-APIC-edge ide0

uptime.- Contiene dos números: los segundos que el sistema lleva funcionando y los segundos gastados en el proceso idle.

Ejemplo:

cat /proc/uptime

5983393.42 3329779.42

version.- Identifica la versión del kernel que se está ejecutando actualmente.

Ejemplo:

cat /proc/version

Linux version 2.6.8-mppe (root@webmail) (gcc versión 3.3.5 (Debian 1:3.3.5-13)) #1 Thu Feb 9 10:09:07 ECT 2006

Adicionalmente en /proc existen algunos directorios extras que contienen información importante.

Ejemplo:

scsci.- Contiene información sobre los drivers y los dispositivos SCSI instalados en el sistema

net.- Contiene varios seudo ficheros, los cuales dan el estado de algunas partes de la capa de red.

Por ahora doy por concluido el artículo, espero pronto poder publicar un nuevo aporte, que nos permita conocer más a nuestro querido Linux, y sobre todo que ayude a los novatos a perderle el miedo. :>

Referencia: man proc