1.1.-Software y Hardware
1.1. Relación entre el software y el hardware (CE 1.a)¶
Idea principal
El hardware aporta los componentes físicos y el software aporta las instrucciones. Un programa solo puede ejecutarse cuando ambos colaboran, con el sistema operativo como intermediario entre las aplicaciones y muchos dispositivos.
Un ordenador personal, un portátil, un teléfono móvil o una tableta combina hardware y software. En este tema estudiaremos qué incluye cada parte, cómo se comunican durante la ejecución de un programa y por qué esta relación importa al desarrollar aplicaciones.
El objetivo no es memorizar una lista de componentes, sino comprender qué ocurre cuando una aplicación recibe datos, los procesa, los guarda y muestra un resultado.
Según la normativa del módulo Entornos de Desarrollo, este contenido contribuye al siguiente resultado de aprendizaje y criterio de evaluación:
| Código | Descripción |
|---|---|
| RA 1 | Reconoce los elementos y herramientas que intervienen en el desarrollo de un programa informático, analizando sus características y las fases en las que actúan hasta llegar a su puesta en funcionamiento. |
| CE 1.a | Se ha reconocido la relación de los programas con los componentes del sistema informático: memoria, procesador, periféricos, entre otros. |
Qué deberías saber al terminar
Al acabar este apartado deberías poder:
- distinguir hardware y software mediante ejemplos;
- explicar la función de la CPU, la RAM, el almacenamiento y los periféricos;
- describir el recorrido de los datos durante la ejecución de un programa;
- relacionar estas decisiones con el rendimiento de una aplicación.
Mapa del tema
Seguiremos esta secuencia: hardware → software → comunicación entre ambos → ejemplo práctico con Tetris → importancia para el desarrollo.
1. Hardware: la parte física¶
La Real Academia Española define hardware como el «conjunto de los componentes que integran la parte material de una computadora». En términos prácticos, es todo lo que forma parte físicamente del sistema: se puede ver, tocar o conectar.
Esto incluye tanto componentes internos —circuitos, memoria, procesador o tarjeta gráfica— como periféricos externos —teclado, ratón, pantalla, impresora o memoria USB—.
Hardware
El hardware es el conjunto de componentes físicos que reciben, procesan, almacenan o muestran información.
Una analogía útil es imaginar una cocina moderna:
- los electrodomésticos y utensilios representan el hardware;
- el procesador es quien realiza las tareas;
- la memoria es el espacio donde se colocan temporalmente los ingredientes;
- los periféricos permiten interactuar con el exterior.
Componentes principales¶
| Componente | Función principal | Ejemplo durante un videojuego |
|---|---|---|
| Procesador (CPU) | Lee y ejecuta instrucciones, y realiza cálculos. | Calcula la posición y la velocidad de un personaje. |
| Memoria RAM | Mantiene temporalmente el código y los datos en uso. | Guarda la posición actual de las piezas. |
| Disco duro o SSD | Conserva datos a largo plazo, incluso al apagar el equipo. | Almacena el juego y una partida guardada. |
| Periféricos | Permiten la entrada, la salida o ambas. | El teclado recibe órdenes y la pantalla muestra el resultado. |
| GPU o tarjeta gráfica | Procesa y renderiza imágenes, especialmente en paralelo. | Dibuja la pieza en la posición calculada. |
La CPU también recibe los nombres de procesador, microprocesador o UPC (Unidad de Procesamiento Central). La RAM, en cambio, es volátil: necesita alimentación eléctrica y pierde su contenido al apagar el equipo. El SSD o el disco duro son almacenamiento persistente: conservan los archivos sin alimentación.
2. Software: instrucciones y datos¶
El IEEE define el software como el conjunto de programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación.
Dicho de forma sencilla, el software es la parte lógica del sistema: los programas y los datos que indican al hardware qué debe hacer. Se crea utilizando lenguajes de programación y puede tener distintos propósitos.
Software
El software es el conjunto de instrucciones, programas, procedimientos, documentación y datos que permiten realizar tareas con un sistema informático.
Algunos ejemplos son:
- navegadores web, como Google Chrome o Mozilla Firefox;
- sistemas operativos, como Windows, macOS o Linux;
- antivirus y otras utilidades de seguridad;
- aplicaciones ofimáticas, como Microsoft Word o LibreOffice;
- sistemas empresariales, como un BPMS, un ERP o un CRM.
Clasificación habitual del software¶
| Tipo | Para qué sirve | Ejemplos |
|---|---|---|
| Software de sistema | Gestiona los recursos básicos y permite que funcionen las aplicaciones. | Sistema operativo, controladores (drivers) y utilidades. |
| Software de aplicación | Resuelve una necesidad concreta de la persona usuaria. | Suite ofimática, navegador, editor de imágenes o videojuego. |
| Software de desarrollo | Ayuda a crear, traducir, probar o mantener otros programas. | Editor, compilador, intérprete, depurador o IDE. |
El sistema operativo es una pieza especialmente importante del software de sistema. Actúa como intermediario entre las aplicaciones y el hardware: administra la memoria, coordina procesos y ofrece servicios para acceder a discos, teclado, pantalla, red o impresora. Los controladores permiten que el sistema operativo conozca la forma concreta de comunicarse con cada dispositivo.
Volviendo a la analogía de la cocina, el software son las recetas y el sistema operativo es quien organiza el trabajo: proporciona al procesador los ingredientes que necesita, reserva espacio en la memoria y solicita los utensilios adecuados.
No confundas aplicación y software de desarrollo
Un editor como Visual Studio Code es un programa que se ejecuta sobre Windows, Linux o macOS, pero se clasifica como software de desarrollo porque su finalidad es ayudar a crear otros programas.
3. Cómo se comunican el software y el hardware¶
La ejecución de un programa puede entenderse como un ciclo de entrada, procesamiento, memoria y salida. De forma simplificada:
- El programa está almacenado de forma persistente en el SSD o disco duro.
- El sistema operativo lo carga, junto con sus datos, en la memoria RAM.
- La CPU recupera instrucciones y datos desde la RAM y ejecuta las instrucciones.
- El programa recibe entradas —por ejemplo, una pulsación de teclado— y actualiza sus datos.
- El resultado se envía a un dispositivo de salida, como la pantalla, o se guarda de nuevo en almacenamiento persistente.
flowchart LR
A[SSD o disco<br/>programa y datos] -->|cargar| B[RAM<br/>código y datos en uso]
B -->|leer instrucciones| C[CPU<br/>procesar y calcular]
D[Entrada<br/>teclado o ratón] -->|eventos| C
C -->|resultado| E[Salida<br/>pantalla o altavoces]
C -->|guardar| A
El disco duro también se considera un periférico de entrada/salida (E/S) porque permite leer datos y escribirlos. La CPU no almacena de forma permanente los documentos: los procesa y coordina operaciones, mientras que la RAM mantiene temporalmente la información que se está utilizando.
Una precisión importante
Una aplicación no suele enviar órdenes directamente al teclado. El teclado genera una entrada, el sistema operativo recibe el evento mediante su controlador y la aplicación consulta ese evento para reaccionar. Del mismo modo, la aplicación solicita guardar un archivo al sistema operativo, que se encarga de escribirlo en el almacenamiento.
Cada vez que ejecutamos un programa, la CPU recupera instrucciones y las ejecuta en pasos muy pequeños, millones de veces por segundo. Por ejemplo:
- Al escribir en un procesador de textos, el teclado envía pulsaciones al sistema; el sistema operativo las comunica a la aplicación y esta actualiza el documento en la RAM.
- Al guardar el documento, el sistema operativo toma los datos que están en memoria y los escribe en un archivo del SSD o del disco duro.
- Al mostrar el documento, la aplicación solicita una representación visual; la CPU y, cuando procede, la GPU procesan la información y la pantalla muestra los píxeles.
4. Ejemplo práctico: el juego Tetris¶
Tetris permite observar la colaboración entre varios componentes sin ocultar el proceso detrás de una aplicación compleja.
- Pulsas una flecha del teclado. El teclado, que es un dispositivo de entrada, genera un evento.
- El sistema operativo comunica el evento al juego.
- La CPU ejecuta el código del juego y calcula la nueva posición de la pieza.
- La RAM conserva temporalmente el estado del juego: piezas, posiciones, puntuación y nivel.
- La GPU puede renderizar la escena y la pantalla muestra el resultado.
- Si guardas la partida, el sistema operativo escribe sus datos en el SSD o disco duro.
- Cuando cierras el juego, el sistema operativo libera la memoria y otros recursos reservados.
sequenceDiagram
actor Jugador
participant Teclado
participant SO as Sistema operativo
participant Juego
participant CPU
participant RAM
participant GPU
participant Pantalla
Jugador->>Teclado: Pulsa una flecha
Teclado->>SO: Envía evento de entrada
SO->>Juego: Comunica la pulsación
Juego->>CPU: Solicita calcular el movimiento
CPU->>RAM: Actualiza el estado de la pieza
CPU->>GPU: Solicita dibujar la escena
GPU->>Pantalla: Envía la imagen
Pantalla-->>Jugador: Muestra la pieza desplazada
En este ejemplo, el software del juego define las reglas: qué ocurre al pulsar una tecla, cómo cae una pieza o cuándo se completa una línea. La CPU ejecuta esas instrucciones, la RAM mantiene los datos de la partida, la GPU se ocupa especialmente del renderizado y el sistema operativo coordina el acceso a los recursos.
CPU y GPU no hacen exactamente lo mismo
La CPU ejecuta la lógica general del programa, como la física, las colisiones o las reglas del juego. La GPU está especializada en realizar cálculos gráficos y dibujar la escena. En aplicaciones sencillas la división puede ser menos visible, pero el principio sigue siendo útil.
5. Por qué esta relación importa al desarrollar¶
Comprender la relación entre software y hardware es esencial para desarrollar aplicaciones eficientes. Una aplicación no utiliza recursos infinitos: consume tiempo de CPU, memoria RAM, almacenamiento, red y, en algunos casos, capacidad de cálculo gráfico.
Por ejemplo:
- un editor de vídeo puede necesitar mucha RAM; conviene liberar recursos que ya no se usan y evitar cargar datos innecesarios;
- una aplicación móvil debe tener en cuenta que el dispositivo puede disponer de menos memoria, procesador y batería que un ordenador;
- una aplicación que lee y escribe continuamente en disco puede ser más lenta que otra que trabaja en RAM y guarda solo cuando es necesario;
- conocer los periféricos y el sistema operativo ayuda a diseñar correctamente la entrada, la salida y la gestión de errores.
En el trabajo profesional, esta perspectiva permite elegir estructuras de datos adecuadas, controlar el consumo de memoria, reducir operaciones costosas y adaptar una aplicación a distintos dispositivos.
6. Buenas prácticas y errores frecuentes¶
| Situación | Por qué ocurre | Cómo evitarla |
|---|---|---|
| Confundir RAM con almacenamiento permanente | Ambas guardan datos, pero tienen distinta persistencia. | Recordar: RAM = temporal; SSD/HDD = persistente. |
| Afirmar que el monitor ejecuta el programa | El monitor solo muestra la salida recibida. | Separar procesamiento (CPU/GPU) de salida visual (pantalla). |
| Pensar que el disco ejecuta el juego | El programa se carga desde el disco, pero se ejecuta usando CPU y RAM. | Diferenciar cargar, ejecutar y guardar. |
| Confundir un periférico con software | Un dispositivo físico puede estar controlado por un programa. | Nombrar por separado dispositivo, controlador y aplicación. |
| Suponer que todas las aplicaciones controlan directamente el hardware | El acceso directo dificultaría la seguridad y la portabilidad. | Entender el papel del sistema operativo y sus controladores. |
Para analizar cualquier programa
Pregúntate siempre: ¿qué datos recibe?, ¿dónde se almacenan mientras se usan?, ¿qué componente los procesa?, ¿qué resultado produce? y ¿cuándo se guardan de forma permanente?
7. Resumen¶
En este tema has aprendido que:
- el hardware es la parte física del sistema y el software es la parte lógica;
- la CPU ejecuta instrucciones, la RAM mantiene temporalmente código y datos, y el SSD o disco duro conserva la información;
- los periféricos realizan operaciones de entrada, salida o entrada/salida;
- el sistema operativo hace de intermediario entre las aplicaciones y muchos componentes físicos;
- durante la ejecución, un programa se carga en RAM, la CPU procesa sus instrucciones y el resultado se comunica mediante dispositivos de E/S;
- en un videojuego como Tetris, teclado, CPU, RAM, GPU, pantalla y almacenamiento colaboran siguiendo las instrucciones del software;
- conocer el hardware permite diseñar aplicaciones más eficientes y adecuadas al dispositivo.
Idea clave
El software indica qué hacer, el hardware proporciona los medios para hacerlo y el sistema operativo coordina buena parte de esa colaboración. Esta relación es la base para comprender el código fuente, el código objeto y el código ejecutable del siguiente apartado.
Bibliografía y fuentes¶
- Real Academia Española: definición de hardware.
- IEEE Computer Society, IEEE Standard Glossary of Software Engineering Terminology (IEEE Std 610.12-1990).