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:
- 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:
- ¿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)?
- ¿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?
- ¿Cómo garantizan las licencias de tipo copyleft (como la licencia GPL) que el software permanezca libre para futuras generaciones de desarrolladores?
- ¿Qué riesgos de seguridad y cumplimiento legal afronta una empresa que utiliza software propietario sin las licencias de activación o auditoría correspondientes?
- ¿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?
- ¿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.
