Francisco Javier López Torrijos
Analista Sistemas Informáticos de Gestión
Diseño y Desarrollo Web
Este es un tema complejo por lo que debemos tener mucho cuidado ya que si cometemos errores o realizamos tareas de forma inadecuada podremos corromper nuestro sistema y dejarlo inutilizable, por lo que os recomiendo realizar las pruebas (si las hacéis) en un equipo de prueba o en un sistema instalado en una máquina virtual.
Primero unos conocimientos muy básicos sobre algunos conceptos, medios, dispositivos, ... fundamentales, de forma muy superficial ya que serán necesarios en otras secciones para entender que se esta haciendo
Normalmente se encuentra en un chip alojado en la placa base de nuestra máquina, este chip empezó siendo una ROM (Read Only Mobile) y evolucionó hasta EEPROM, pasando por las PROM y las EPROM, cada una de ellas añade posibilidades de actualización, configuración, ...
El BIOS como su propio nombre indica es el sistema que se encarga de la gestión de entrada/salida básicas, actúa de interfase entre el S.O. y el hardware. Suele tener un interfase de usuario para poder configurar algunos valores, como activar o desactivar algunas controladoras de dispositivos, controladoras de sonido, puertos, velocidades de reloj, orden de arranque, etc.
Con el tiempo han ido incorporando mas funcionalidades, ya que se han ido añadiendo dispositivos, buses, ... nuevos y mejores.
EFI (Extensible Firmware Interface) Firmware Interfase Extensible, una alternativa mas moderna y potente que la BIOS
OpenFirmware, Alternativa utilizada por Apple, mas potente que BIOS
Unas características interesantes a configurar para servidores son, el que el servidor arranque sin teclado, y que ante un corte de suministro eléctrico la máquina se inicie sola al recuperar el suministro eléctrico (además de otras que os dejo por investigar tanto para servidores como para terminales, sobremesa, ...). Con estas opciones conseguimos un servidor sin teclado evitamos que alguien pulse teclas por error y también entorpecemos la posibilidad de acceso inadecuado, con el arranque automático (si el sistema esta bien configurado y protegido), evitamos tener que ir físicamente a la ubicación del servidor simplemente para apretar un botón.
Para acceder a la interfase de configuración de BIOS ver el manual de nuestro equipo.
Una vez linux se ha iniciado no utiliza el BIOS para las operaciones de E/S. (solamente la utiliza para recopilar información sobre los dispositivos)
Las IRQs es el mecanismo por el cual los procesos le solicitan a la CPU (Central Process Unit o Unidad Central de Proceso) que "interrumpa" su actividad y ser atiendo.
Las IRQs tienen una jerarquía de prioridades y estan asignadas a cierto tipo de procesos ,que a su vez estan asociados a ciertos dispositivos(reloj tiempo real, teclado, ...).
Bajo ciertas circunstancias algunas pueden ser reasignadas.
En internet es fácil encontrar una lista de ellas.
Si queremos ver que interrupciones esta utilizando nuestro sistema y para que, podemos acceder y ver el fichero /proc/interrupts
como vimos en otros apartados podemos hacerlo con cat
cat /proc/interrupts
Ya que linux no registra las IRQs sin usar solo veremos aquellas que estan en uso. Así si utilizamos un hardware que estaba en desuso o desconectado, (y lo conectamos) y volvemos a ejecutar el comando anterior veremos la nueva información
Nos mostrará información en columnas con la interrupción el uso en cada procesador y que driver las usa, una búsqueda en internet nos ayudara a comprender que hace cada driver
Tened mucho cuidado ya que algunos dispositivos no pueden ser conectados en caliente (con la máquina encendida), podrías dañar la máquina, el dispositivo o ambos
/proc es un sistema virtual de archivos no un sistema de archivos físicos. Linux utiliza este sistema para guardar distintos tipos de información del sistema
Es un método de comunicación con los puertos de E/S. Permite que los dispositivos se comuniquen directamente con la memoria, sin la intervención de la CPU. Con esto se quita carga a la CPU y seguramente se aumente el rendimiento del sistema. Cada canal DMA puede ser utilizado por un único dispositivo.
cat /proc/dma
nos mostrara los canales DMA en uso.
Son direcciones de memoria reservadas para la comunicación entre dispositivos físicos hardware y la CPU. Podemos ver que direcciones (puertos) estan en uso examinando el fichero /proc/ioports
cat /proc/ioports
Nos mostrará información en columnas con las direcciones de memoria utilizadas y que dispositivo la esta utilizando.
Una vez mas internet nos puede ayudar a interpretar los resultados ya que hay algunos dispositivos con nombres poco descriptivos
Tened mucho cuidado ya que algunos dispositivos no pueden ser conectados en caliente (con la máquina encendida), podrías dañar la máquina, el dispositivo o ambos
/proc es un sistema virtual de archivos no un sistema de archivos físicos. Linux utiliza este sistema para guardar distintos tipos de información del sistema
Mediante la BIOS podemos decidir, al menos en la mayoría de los casos, la secuencia de arranque, lo que viene a querer decir que creamos una lista de dispositivos con los que probar a iniciar el sistema, como por ejemplo:
Ahora bien aunque esta es una secuencia habitual, no es una secuencia recomendable, ya que con esto facilitamos el posible acceso al sistema mediante cualquier medio extraible al sistema. Cualquiera con un disco de arranque bien sea por disquetera o por cd-rom podría reiniciar el sistema para tomar el control del mismo.
Esta configuración es adecuada mientras realizamos la instalación del sistema, o tengamos que realizar operaciones de mantenimiento que así lo requieran. Una vez terminadas estas operaciones lo mejor es modificar esta lista para que solamente pueda arrancar desde el dispositivo (normalmente un disco duro) que hayamos destinado a tal uso.
No voy a entrar en temas de geometrías (CHS, LBA) traducciones CHS por parte de la BIOS, etc. ya que este tema solo daremos unas nociones básicas.
En los sistemas mas modernos podremos configurarlos para que se pueda iniciar desde un pen-drive
Los dispositivos de conexión en frío son aquellos que solamente se deben conectar o desconectar con la máquina apagada y desconectada. Esto es así, porque su conexión/desconexión con la máquina encendida puede producir una avería tanto en el dispositivo como en la máquina como por ej. dispositivos serie tipo RS232, paralelo,... y por supuesto todos los que van en el interior de la caja como discos duros, microprocesadores, RAM, ...
En este ultimo caso hay que puntualizar, que sobre todo en entornos de servidores profesionales, existen placas base que permiten la conexión de dispositivos en caliente discos duros, micros, memoria, ... y esto es así para facilitar la actualización/ampliación de los equipos sin necesidad de apagar el sistema, ya que en estos entornos se debe evitar al máximo el apagado de la máquina puesto que esto supone dejar a la organización sin sistema informático.
Por el contrario los dispositivos de conexión en caliente son aquellos que se pueden conectar con la máquina encendida, usb, ieee-1394, ethernet, ....
Ficheros y programas a tener en cuenta:
Es la denominación que utiliza linux para referirse a un programa/proceso que se esta ejecutando siempre y en las "tinieblas" (no profundizo mas)
Linux trata los dispositivos como ficheros, por lo que cuando se conecta uno se "monta" en una parte de nuestro sistema de archivos para poder acceder a él (tampoco profundizo mas)
En los sistemas modernos los dispositivos se montan y desmontan automáticamente, al menos en sistemas de hogar, en los sistemas profesionales bien administrados, incluso a algunos usuarios les resultara imposible poder utilizar dispositivos extraíbles, puesto que el administrador del sistema no les permitirá esta opción. Así se evita que se pueda extraer información, de cualquier tipo, del sistema por ese usuario/grupo de usuarios. Esto es así porque por la naturaleza del roll del usuario en cuestión no necesita poder introducir/sacar información del sistema bajo ningún concepto.
Las tarjetas PCI se conectan a un bus del mismo nombre, que es el bus de expansión estándar para la mayoría de dispositivos internos. Al contrario que los dispositivos antiguos en los que su configuración se debía hacer mediante jumpers, microswitch, ... , actualmente y gracias a los dispositivos PCI los cuales fueron concebidos para una configuración automática o plug-and-play estas configuraciones (IRQ,DMA,Puertos) se realizan mediante software.
Resumiendo estas tarjetas de expansión son capaces de analizar nuestro sistema y utilizar aquellas configuraciones que están libres, o que no deberían causar ningún conflicto, aunque nos podemos encontrar con algunas configuraciones, no correctas para nuestro sistema.
Si nuestros dispositivos no se detectan adecuadamente podemos experimentar con esta opción del kernel.
Ademas de las opciones de configuración, podemos utilizar el comando lspci, que dispone de varias opciones, para comprobar como están configurados los distintos dispositivos.
Los dispositivos hardware los administran/manejan los drivers del kernel, la mayoría de estos vienen en forma de módulos del kernel. Se tratan de ficheros independientes, que como norma suelen estar guardados en el directorio /lib/modules . Normalmente Linux cargará los módulos necesarios para nuestro hardware, aunque en caso de ser necesario podremos cargar y descargar módulos manualmente según nuestras necesidades (p.e. un dispositivo no funciona correctamente, existen funcionalidades del dispositivo que no podemos utilizar o simplemente no funciona en absoluto).
Podemos saber qué módulos están cargados en el sistema utilizando lsmod. No recibe argumentos y genera una salida tabulada, realizad una prueba para ver la información que nos facilita (tal y como indica la información facilitada por man sobre este comando nos presenta información existente en /proc/modules formateada).