¿De verdad crees que conoces con exactitud la arquitectura de tu ordenador? Si quieres programar, lo mejor que puedes hacer, es conocer con precisión, como está formado tu ordenador y que función exacta cumple cada componente.
En este artículo, intentaremos “destripar” virtualmente nuestro ordenador, para poder entenderlo, ayudándonos del comando lshw, al cual podremos acceder como super-usuario.
Arquitectura de computadoras: conociendo el hardware
El hardware es todo elemento físico involucrado en una computadora o cualquier tipo de dispositivo electrónico inteligente.Un ordenador, con respecto al hardware, se encuentra compuesto por una serie de dispositivos, clasificados según la función que éstos desempeñen. Dicha clasificación, se compone de:
Dispositivos de entrada Dispositivos de salida Dispositivos de comunicación Dispositivos de almacenamiento Dispositivos de cómputo
/home/manu/ # lshw -short H/W path Device Class Description ========================================================= system 1001HA (1001HA) /0 bus 1005HA /0/0 memory 64KiB BIOS /0/4 processor Intel(R) Atom(TM) CPU N270 @ 1.6 /0/4/5 memory 24KiB L1 cache /0/4/6 memory 512KiB L2 cache /0/4/0.1 processor Logical CPU /0/4/0.2 processor Logical CPU /0/18 memory 2GiB System Memory /0/18/0 memory 2GiB DIMM SDRAM Synchronous /0/100 bridge Mobile 945GME Express Memory Contr /0/100/2 display Mobile 945GME Express Integrated G /0/100/2.1 display Mobile 945GM/GMS/GME, 943/940GML E /0/100/1b multimedia N10/ICH 7 Family High Definition A /0/100/1c bridge N10/ICH 7 Family PCI Express Port /0/100/1c.1 bridge N10/ICH 7 Family PCI Express Port /0/100/1c.1/0 wlan0 network RT3090 Wireless 802.11n 1T/1R PCIe /0/100/1c.3 bridge N10/ICH 7 Family PCI Express Port /0/100/1c.3/0 eth0 network AR8132 Fast Ethernet /0/100/1d bus N10/ICH 7 Family USB UHCI Controll /0/100/1d.1 bus N10/ICH 7 Family USB UHCI Controll /0/100/1d.2 bus N10/ICH 7 Family USB UHCI Controll /0/100/1d.3 bus N10/ICH 7 Family USB UHCI Controll /0/100/1d.7 bus N10/ICH 7 Family USB2 EHCI Control /0/100/1e bridge 82801 Mobile PCI Bridge /0/100/1f bridge 82801GBM (ICH7-M) LPC Interface Br /0/100/1f.2 scsi0 storage 82801GBM/GHM (ICH7-M Family) SATA /0/100/1f.2/0.0.0 /dev/sda disk 160GB ST9160314AS /0/100/1f.2/0.0.0/1 /dev/sda1 volume 12GiB EXT4 volume /0/100/1f.2/0.0.0/2 /dev/sda2 volume 12GiB EXT4 volume /0/100/1f.2/0.0.0/3 /dev/sda3 volume 125GiB Extended partition /0/100/1f.2/0.0.0/3/5 /dev/sda5 volume 2GiB Linux swap / Solaris partitio /0/100/1f.2/0.0.0/3/6 /dev/sda6 volume 61GiB Linux filesystem partition /0/100/1f.2/0.0.0/3/7 /dev/sda7 volume 62GiB Linux filesystem partitionLos dispositivos de entrada son todos aquellos que permiten la entrada de datos a un ordenador. Estos dispositivos, son los que permiten al usuario interactuar con el ordenador. Ejemplos: teclado, mouse (ratón), micrófono, webcam, scanner, etc.
Los dispositivos de salida, son todos aquellos que permiten mostrar la información procesada por el ordenador. Ejemplos: monitor, impresora, auriculares, altavoces, etc.
Los dispositivos de comunicación son aquellos que permiten la comunicación entre dos o más ordenadores. Ejemplos: modem, router, placa de red, bluetooth, etc.
Los dispositivos de almacenamiento, son todos aquellos que permiten almacenar datos en el ordenador. Ejemplos: disco duro, pendrive, disket, CD, DVD, etc.
Los dispositivos de cómputo, son aquellos encargados de realizar las operaciones de control necesarias, sobre el resto de los dispositivos del ordenador. Estos dispositivos, se encuentran disponibles, en todos los ordenadores, y los mismos se describen a continuación.
CPU
La CPU (Central Processing Unit – Unidad Central de Procesamiento), también llamada procesador o microprocesador, es un circuito microscópico que interpreta y ejecuta instrucciones. La CPU se ocupa del control y del proceso de datos en las computadoras. Generalmente, la CPU es un microprocesador fabricado en un chip, un único trozo de silicio que contiene millones de componentes electrónicos. El microprocesador de la CPU está formado por una unidad aritmético-lógica que realiza cálculos y comparaciones y toma decisiones lógicas (determinando si una afirmación es cierta o falsa mediante las reglas del álgebra de Boole. Para aceptar órdenes del usuario, acceder a los datos y presentar los resultados, la CPU se comunica a través de un conjunto de circuitos o conexiones llamado bus. El bus conecta la CPU a los dispositivos de almacenamiento (por ejemplo un disco duro), los dispositivos de entrada (por ejemplo un teclado o un mouse) y los dispositivos de salida (por ejemplo un monitor o una impresora).
/home/manu/ # lshw -C bus -short H/W path Device Class Description ========================================================= /0 bus 1005HA /0/100/1d bus N10/ICH 7 Family USB UHCI Controll /0/100/1d.1 bus N10/ICH 7 Family USB UHCI Controll /0/100/1d.2 bus N10/ICH 7 Family USB UHCI Controll /0/100/1d.3 bus N10/ICH 7 Family USB UHCI Controll /0/100/1d.7 bus N10/ICH 7 Family USB2 EHCI ControlCuando se ejecuta un programa, el registro de la CPU, llamado contador de programa, lleva la cuenta de la siguiente instrucción del programa, para garantizar que las instrucciones se ejecuten en la secuencia adecuada. La unidad de control de la CPU coordina y temporiza las funciones de la CPU, tras lo cual recupera la siguiente instrucción desde la memoria. En una secuencia típica, la CPU localiza la instrucción en el dispositivo de almacenamiento correspondiente. La instrucción viaja por el bus desde la memoria hasta la CPU, donde se almacena en el registro de instrucción. Entretanto, el contador de programa se incrementa en uno para prepararse para la siguiente instrucción. A continuación, la instrucción actual es analizada por un decodificador, que determina lo que hará la instrucción. Cualquier dato requerido por la instrucción es recuperado desde el dispositivo de almacenamiento correspondiente y se almacena en el registro de datos de la CPU. A continuación, la CPU ejecuta la instrucción y, los resultados se almacenan en otro registro o se copian en una dirección de memoria determinada[0].
Memoria
La memoria es la encargada de almacenar toda la información que el ordenador se encuentra utilizando. Existen tres tipos de memoria: memoria RAM, memoria ROM y memoria caché.
/home/manu/ # lshw -C memory -short H/W path Device Class Description ========================================================= /0/0 memory 64KiB BIOS /0/4/5 memory 24KiB L1 cache /0/4/6 memory 512KiB L2 cache /0/18 memory 2GiB System Memory /0/18/0 memory 2GiB DIMM SDRAM SynchronousListando componentes de memoria
Memoria RAM
La memoria RAM (Random Access Memory), es la memoria desde la cual, el procesador recibe las instrucciones y guarda los resultados. Se utiliza como memoria de trabajo para el sistema operativo, los programas y la mayoría del software. Es allí donde se cargan todas las instrucciones que ejecutan el procesador y otras unidades de cómputo. Se denominan “de acceso aleatorio” (random access) porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder a la información de la manera más rápida posible. Durante el encendido del ordenador, la rutina POST verifica que los módulos de memoria RAM estén conectados de manera correcta. En el caso que no existan o no se detecten los módulos, la mayoría de tarjetas madres (motherboard) emiten una serie de pitidos que indican la ausencia de memoria principal. Terminado ese proceso, la memoria BIOS[1] (memoria ROM) puede realizar un test básico sobre la memoria RAM indicando fallos mayores en la misma[2].
/home/manu/ # lshw -C memory -short | grep -i ram /0/18/0 memory 2GiB DIMM SDRAM SynchronousFiltrando la memoria RAM
Memoria ROM
La memoria ROM (Read Only Memory), es permanente, ya que lo que permanece en la ROM no se pierde aunque el ordenador se apague. Su función principal es guardar información inicial que el ordenador necesita para colocarse en marcha una vez que se enciende. Permite solo la lectura de la información y no su escritura, independientemente de la presencia o no de una fuente de energía. Los datos almacenados en la ROM no se pueden modificar, o al menos no de manera rápida o fácil. Se utiliza principalmente para contener el firmware (programa que está estrechamente ligado a hardware específico, y es poco probable que requiera actualizaciones frecuentes) u otro contenido vital para el funcionamiento del dispositivo, como los programas que ponen en marcha el ordenador y realizan los diagnósticos[3].
/home/manu/ # lshw -C memory -short | grep -i bios /0/0 memory 64KiB BIOSFiltrando la memoria ROM (también llamada BIOS)
Memoria caché
La memoria caché es aquella que se usa como puente entre el CPU y la memoria RAM para evitar demoras en el procesamiento de los datos. Existen varios núcleos de esta memoria (denominados con la letra L y un número, por ejemplo L1). Cuanto menor el número más rápida es la memoria. Por proximidad a la CPU, es mucho más rápida que la memoria RAM y también, mucho mas pequeña.
/home/manu/ # lshw -C memory -short | grep cache /0/4/5 memory 24KiB L1 cache /0/4/6 memory 512KiB L2 cacheFiltrando la memoria caché
Bus de datos
El bus de datos (o canal de datos) es un sistema digital que transfiere datos entre los componentes de una computadora o entre computadoras. Está formado por cables o pistas en un circuito impreso, dispositivos como resistores y condensadores además de circuitos integrados.
Notas adicionales sobre el comando lshw
Como hemos podido notar, el comando lshw nos permite listar el hardware de nuestro equipo. En este artículo, hemos utilizado el comando lshw con las siguientes opciones:
-short Utilizada para listar el hardware en formato compacto. -C tipo_de_componente Utilizada para filtrar la salida, por el tipo de componente indicado.
Otras opciones pueden conocerse mediante man lshw.
También hemos concatenado (con |) el comando lshw con el comando grep patrón a fin de que la salida de lshw sea a la vez, filtrada por el patrón indicado. Cuando utilizamos la opción -i del comando grep, lo hicimos para que la búsqueda no distinga entre mayúsculas y minúsculas.
Fuente: debianhackers.net
Gracias a: eugeniabahit
Saludos...
No hay comentarios:
Publicar un comentario
Puedes comentar sin registrarte, si pones tu nick o nombre mejor..