Software

El software es la parte del ordenador que no se puede tocar. Está formado por programas, datos e instrucciones que indican al hardware cómo realizar las distintas tareas.

Clasificación y Tipos de Software

El software se divide en grandes categorías según su propósito funcional y su nivel de proximidad con la máquina:
  • Software de Sistema: Programas diseñados para servir de base e interfaz entre el hardware y el resto de aplicaciones. Gestiona los recursos del sistema, la memoria y los controladores de dispositivos. Ejemplos: controladores o drivers de impresoras, tarjetas gráficas o tarjetas de red, Gestores de arranque (GRUB, Windows Boot Manager), Utilidades del sistema (Administrador de tareas, Liberador de espacio en disco), etc.
  • Sistemas Operativos (SO): El software de sistema más crítico (ej. Linux, Windows, macOS). Administra el procesador, las unidades de almacenamiento, la seguridad y permite la ejecución de los programas de usuario. Ejemplos: Windows 11, Ubuntu, Debian, Fedora, macOS, Android, iOS, etc.
  • Software de Aplicación: Programas orientados a resolver necesidades específicas del usuario final o de la organización. Ejemplos: suites ofimáticas, navegadores web, bases de datos corporativas, programas de diseño, etc.
  • Software de Programación: Conjunto de herramientas, editores de código, compiladores, depuradores e intérpretes que permiten a los desarrolladores escribir, probar y construir nuevas aplicaciones y sistemas lógicos. Ejemplos: Editores de código (Visual Studio Code, Notepad++, Sublime Text), Entornos de desarrollo (Visual Studio, IntelliJ IDEA, Eclipse, NetBeans, PyCharm), Compiladores (GCC, Clang, Microsoft Visual C++), Intérpretes (Python, Node.js), Depuradores (GDB, Visual Studio Debugger), Control de versiones (Git), etc.


Modelos de Licenciamiento: Software Libre vs. Propietario

Las licencias determinan legalmente los derechos, restricciones y libertades que tiene el usuario sobre el uso, modificación y redistribución del código:

  • Software Propietario (Privativo): El código fuente está protegido y restringido por el creador o empresa desarrolladora. El usuario adquiere una licencia de uso limitada, sin derecho a inspeccionar el código interno, modificarlo o redistribuirlo libremente (ej. Microsoft Office, Windows).
  • Software Libre y de Código Abierto (Open Source): Garantiza al usuario cuatro libertades fundamentales: usar el programa con cualquier propósito, estudiar cómo funciona y adaptarlo (acceso al código fuente), redistribuir copias y mejorar el software públicamente (ej. GNU/Linux, Apache, Python). Existen variantes como las licencias permisivas (MIT, Apache) y las copyleft (GPL).

Analogía: Imagina un libro de cocina profesional en un gran restaurante. El software propietario sería una receta secreta y patentada de un restaurante famoso que nadie más puede copiar, mientras que el software libre equivaldría a una receta compartida en un libro abierto donde cualquier cocinero puede leer los ingredientes, mejorarla y prepararla libremente.

Actividad práctica

Objetivo:

Identificar y clasificar diferentes programas y licencias utilizados habitualmente en un entorno informático.

Tarea:

  1. Clasifica cada uno de los siguientes programas indicando el tipo de software y el tipo de licencia:
Software Tipo de software Tipo de licencia
Windows 11
Ubuntu
Microsoft Word
LibreOffice
Google Chrome
Mozilla Firefox
Visual Studio Code
Visual Studio
Debian
PyCharm Community
GCC
Python
Git
VLC Media Player
Adobe Photoshop
GIMP
AutoCAD
DaVinci Resolve
MySQL
Driver de una impresora
Administrador de tareas de Windows
GRUB
Android
macOS
Notepad++
Haz clic aquí para ver las soluciones y explicaciones
Software Tipo de Software Tipo de licencia Función
Windows 11 Sistema operativo Propietario Administra el hardware y permite ejecutar aplicaciones.
Ubuntu Sistema operativo Libre Sistema operativo basado en GNU/Linux.
Microsoft Word Software de aplicación Propietario Procesador de textos.
LibreOffice Software de aplicación Libre Suite ofimática.
Google Chrome Software de aplicación Propietario Navegador web.
Mozilla Firefox Software de aplicación Libre Navegador web de código abierto.
Visual Studio Code Software de programación Libre Editor de código.
Visual Studio Software de programación Propietario Entorno de desarrollo (IDE).
Debian Sistema operativo Libre Distribución GNU/Linux de código abierto.
PyCharm Community Software de programación Libre IDE para desarrollar programas en Python.
GCC Software de programación Libre Compilador de varios lenguajes.
Python Software de programación Libre Lenguaje e intérprete para ejecutar programas.
Git Software de programación Libre Sistema de control de versiones.
VLC Media Player Software de aplicación Libre Reproductor multimedia.
Adobe Photoshop Software de aplicación Propietario Editor de imágenes.
GIMP Software de aplicación Libre Editor de imágenes de código abierto.
AutoCAD Software de aplicación Propietario Programa de diseño CAD.
DaVinci Resolve Software de aplicación Propietario Editor de vídeo.
MySQL Software de aplicación Libre Sistema gestor de bases de datos.
Driver de una impresora Software de sistema Normalmente propietario Permite al sistema operativo comunicarse con la impresora.
Administrador de tareas de Windows Software de sistema Propietario Utilidad para gestionar procesos y recursos del sistema.
GRUB Software de sistema Libre Gestor de arranque del sistema operativo.
Android Sistema operativo Libre (AOSP) Sistema operativo para dispositivos móviles.
macOS Sistema operativo Propietario Gestiona el hardware de los ordenadores Apple.
Notepad++ Software de programación Libre Editor de código fuente.

Preguntas de reflexión:

  1. ¿Qué diferencia técnica y operativa fundamental existe entre un sistema operativo (software de sistema) y una aplicación ofimática (software de aplicación)?
  2. ¿Por qué los compiladores e intérpretes (software de programación) son indispensables para traducir el código escrito por humanos al lenguaje máquina que entiende la CPU?
  3. ¿Cómo garantizan las licencias de tipo copyleft (como la licencia GPL) que el software permanezca libre para futuras generaciones de desarrolladores?
  4. ¿Qué riesgos de seguridad y cumplimiento legal afronta una empresa que utiliza software propietario sin las licencias de activación o auditoría correspondientes?
  5. ¿De qué manera el modelo de desarrollo de código abierto fomenta la colaboración global y la innovación rápida en comparación con el desarrollo propietario cerrado?
  6. ¿Cuáles son las restricciones legales a las que se enfrenta un técnico de sistemas si decide modificar el código fuente de un programa privativo para solucionar un fallo crítico?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Qué diferencia técnica y operativa fundamental existe entre un sistema operativo (software de sistema) y una aplicación ofimática (software de aplicación)?

El sistema operativo es la capa lógica esencial que controla el hardware, gestiona la memoria, los procesos y los controladores, permitiendo que el equipo funcione y que otras herramientas se ejecuten sobre él. En cambio, una aplicación ofimática es un software de propósito específico que corre sobre el sistema operativo para que el usuario realice tareas concretas (como redactar documentos o tabular datos), siendo prescindible para el funcionamiento básico de la máquina.


2. ¿Por qué los compiladores e intérpretes (software de programación) son indispensables para traducir el código escrito por humanos al lenguaje máquina que entiende la CPU?

Porque los lenguajes de programación modernos utilizan estructuras abstractas y legibles en texto (como inglés estructurado), mientras que la CPU del hardware opera exclusivamente mediante impulsos eléctricos binarios (ceros y unos). Los compiladores e intérpretes actúan como traductores expertos que convierten esas líneas de código humano en instrucciones binarias ejecutables por el microprocesador.


3. ¿Cómo garantizan las licencias de tipo copyleft (como la licencia GPL) que el software permanezca libre para futuras generaciones de desarrolladores?

La cláusula copyleft obliga legalmente a que cualquier software derivado, modificado o ampliado a partir del código original protegido deba distribuirse obligatoriamente bajo los mismos términos de libertad y con su código fuente accesible. Esto impide legalmente que una empresa adquiera software libre, le añada modificaciones cerradas y lo comercialice como un producto privativo exclusivo.


4. ¿Qué riesgos de seguridad y cumplimiento legal afronta una empresa que utiliza software propietario sin las licencias de activación o auditoría correspondientes?

A nivel legal, se enfrenta a sanciones económicas severas, demandas por infracción de propiedad intelectual y pérdida de reputación corporativa. A nivel técnico y de seguridad, el uso de software no licenciado o pirateado suele impedir el acceso a actualizaciones oficiales y parches críticos de seguridad, dejando los sistemas expuestos a vulnerabilidades y programas maliciosos (malware).


5. ¿De qué manera el modelo de desarrollo de código abierto fomenta la colaboración global y la innovación rápida en comparación con el desarrollo propietario cerrado?

Al estar el código fuente disponible públicamente, miles de programadores de todo el mundo pueden revisar, auditar, corregir errores y proponer mejoras de forma descentralizada. Esto acelera exponencialmente la detección de fallos de seguridad y la creación de nuevas características, superando la capacidad de innovación limitada que imponen los equipos de desarrollo cerrados de una sola empresa.


6. ¿Cuáles son las restricciones legales a las que se enfrenta un técnico de sistemas si decide modificar el código fuente de un programa privativo para solucionar un fallo crítico?

En un programa privativo, el código fuente está protegido por derechos de autor y, por lo general, no es accesible ni puede modificarse sin autorización del propietario. Si un técnico de sistemas modifica el programa sin permiso, puede incumplir la licencia de uso y la legislación sobre propiedad intelectual, exponiéndose a sanciones legales y a la pérdida del soporte y las garantías del fabricante. Ante un fallo crítico, la solución correcta es comunicar la incidencia al desarrollador o aplicar las actualizaciones y parches oficiales proporcionados por este.