Publicado en www.lopeztorrijos.com (http://www.lopeztorrijos.com)

Inicio > Nociones básicas sobre configuración del hardware - Presentación

Nociones básicas sobre configuración del hardware - Presentación

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

BIOS - EFI - OpenFirmware

BIOS (Básic Input Output System) Sistema Básico de Entrada Salida

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)

IRQ Interruption Request (Petición de Interrupción)

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

 

Direcciones de DMA (Direccionamiento directo de memoria)

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.

Direcciones de E/S (Puertos E/S)

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

 

Dispositivos de Arranque - Secuencia de Arranque

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:

  1. disquetera
  2. cd-rom
  3. disco duro 1
  4. disco duro 2
  5. ...

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

Dispositivos de Conexión en Frio/Caliente

Dispositivos de conexión en frío / caliente ¿Que significa esto?

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:

  • sysfs montado en /sys
  • /dev
  • HAL esto es un "demonio"
  • D_Bus otro demonio
  • udev sistema de archivos virtual montado en /dev
  • ...

¿Qué es un demonio?

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)

¿Qué es montar un dispositivo?

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.

Configurar tarjetas PCI

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.

  • El kernel o núcleo de linux nos permite indicarle en que forma se detectarán los dispositivos PCI, Bus Options>PCI Acces Mode (esto lo podremos hacer en la compilación del kernel). Esta opción nos permite las siguientes opciones para detectar los dispositivos:
  1. BIOS Emplear la BIOS.
  2. MMConfig Utilizar un protocolo del mismo nombre.
  3. Direct método propio de linux.
  4. Any Cualquiera en el siguiente orden MMConfig, Direct, BIOS

Si nuestros dispositivos no se detectan adecuadamente podemos experimentar con esta opción del kernel.

  • La BIOS suele tener opciones de PCI que permiten modificar el modo en que se asignan los recursos, esta opción solamente será de utilidad si tememos nuestro kernel con la opción de BIOS.
  • Algunos drivers de linux admiten opciones, tendremos que consultar su documentación y luego pasárselo al kernel empleando un cargador de arranque, o como opciones del módulo de kernel correspondiente.
  • setpci utilidad para consultar y ajustar directamente las configuraciones de los dispositivos PCI, esta herramienta es más útil tanto mas conozcamos de nuestro hardware.

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.

Información sobre los módulos del kernel

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).

Francisco Javier López Torrijos
Analista Sistemas Informáticos de Gestión
Diseño y Desarrollo Web

 


URL de origen (modified on 05/07/2013 - 21:31): http://www.lopeztorrijos.com/node/47