07 Oct

Introducción al Software Informático

El software está formado por un conjunto de instrucciones que permiten al ordenador realizar tareas específicas. Estas instrucciones se escriben en un lenguaje que el ordenador pueda interpretar, originalmente en lenguaje máquina (binario), y más tarde en lenguajes de bajo y alto nivel, cada vez más parecidos al lenguaje natural.

Un programa es un conjunto de instrucciones que ejecutan una tarea concreta. El software agrupa programas que garantizan el funcionamiento del ordenador y la realización de tareas para el usuario.

Tipos Principales de Software

Existen tres tipos principales de software:

  • Software de Sistema: Incluye el Sistema Operativo y las utilidades que gestionan el hardware.
  • Software de Programación: Herramientas que permiten a los desarrolladores crear nuevos programas (editores, compiladores, depuradores).
  • Software de Aplicación: Programas diseñados para realizar tareas específicas para el usuario (ofimática, juegos, navegadores).

El Sistema Operativo (SO)

El Sistema Operativo (SO) es el conjunto de procesos que gestiona los recursos del hardware y ofrece servicios a los programas de usuario. Actúa como intermediario entre el hardware y las aplicaciones.

Se inicia al encender el ordenador y es el software más importante, ya que coordina y controla:

  • El arranque del ordenador.
  • La ejecución de programas y procesos.
  • La seguridad y protección del sistema.
  • Los archivos y las comunicaciones.
  • Los usuarios del sistema.
  • Los recursos como procesador, memoria, almacenamiento y dispositivos de entrada/salida.

Componentes Esenciales de un Sistema Operativo

Los principales componentes de un sistema operativo son:

  • Interfaz de Usuario (UI): Es la parte visible que permite al usuario comunicarse con el sistema. Traduce las acciones del usuario (como clics o teclas) en órdenes que el sistema puede ejecutar.
  • Núcleo (Kernel): Es el componente principal que controla el hardware y coordina los demás módulos. Gestiona el tiempo del procesador y la ejecución de programas mediante un submódulo denominado planificador.
  • Administrador de Memoria: Asigna partes de la memoria RAM a los programas que lo necesitan y organiza los datos almacenados en dispositivos masivos. Utiliza memoria virtual para simular una memoria mayor de la que realmente tiene el sistema.
  • Sistema de Entrada/Salida (E/S): Gestiona la comunicación entre el ordenador y los dispositivos periféricos, tratando todos los dispositivos de forma similar para el usuario. Usa técnicas como las colas o “spoolers” para almacenar temporalmente los datos y evitar que los programas se detengan cuando un dispositivo (por ejemplo, una impresora) no está disponible.
  • Administrador de Archivos: Organiza y mantiene la estructura de los datos del sistema, controlando la creación, modificación y eliminación de archivos. Supervisa el uso del almacenamiento, colabora con la memoria para transferir datos y gestiona los privilegios de acceso para proteger la información compartida o privada.
  • Administrador de Procesos: Reparte el tiempo del microprocesador entre los distintos procesos que están listos para ejecutarse. Solo uno puede funcionar a la vez, por lo que este componente decide de forma equitativa y eficiente qué proceso debe ejecutarse en cada momento. Es esencial en los sistemas operativos multitarea y de tiempo real.

Características de un Buen Sistema Operativo

Un buen sistema operativo debe garantizar:

  • Seguridad: Proteger la integridad, disponibilidad y confidencialidad de los datos.
  • Eficiencia: Mantener un buen rendimiento incluso con gran carga de trabajo.
  • Estabilidad: Ser tolerante a fallos de hardware o software.
  • Administración: Permitir un uso racional y controlado de los recursos.
  • Flexibilidad: Poder instalarse en distintos tipos de plataformas.
  • Concurrencia: Permitir el acceso simultáneo de varios usuarios y tareas.

Familias de Sistemas Operativos

Las familias de sistemas operativos más conocidas son:

  • Windows: Nació como un entorno gráfico basado en MS-DOS, caracterizado por su uso de ventanas independientes. Desarrollado por Microsoft, es el sistema operativo más utilizado en ordenadores de escritorio o sobremesa, con una arquitectura orientada a procesadores Intel/AMD. Existen múltiples versiones adaptadas a distintas plataformas (servidor, sobremesa o móvil) y arquitecturas (32 y 64 bits), siendo Windows 11 la más reciente.
  • Unix: Es uno de los sistemas operativos más antiguos, creado por AT&T en 1971. Fue pionero en ser de propósito general, multitarea y multiusuario. Es muy usado en entornos científicos y académicos, y de él derivan muchos sistemas, incluido GNU/Linux.
  • GNU/Linux: Es un sistema operativo libre y de código abierto, creado en 1991 por Linus Torvalds con base en el proyecto GNU de Richard Stallman. Es eficiente, robusto y flexible, gracias a su modelo no comercial y colaborativo. Se distribuye bajo la licencia GNU GPL, lo que permite su libre uso y modificación. Actualmente, es el sistema más utilizado en servidores y superordenadores, siendo empleado por el 100% de los 500 más potentes del mundo. Existen diversas distribuciones adaptadas a diferentes necesidades, como Ubuntu, popular en ordenadores personales por su seguridad, estabilidad y ausencia de virus, aunque su uso en PC sigue siendo menor comparado con Windows. Android, el sistema operativo más usado en móviles, y Google Chrome OS nacen a partir de GNU/Linux.
  • Mac OS X: Es un sistema operativo desarrollado por Apple, originado a partir de los sistemas MAC-OS de 1984. Su primera versión apareció en 2002 y está basada en UNIX. Destaca por su excelente rendimiento en tareas multimedia y gráficas. Además, cuenta con una versión específica para dispositivos móviles llamada iOS.

Los Lenguajes de Programación

Los lenguajes de programación permiten comunicar al ordenador instrucciones precisas mediante algoritmos, que son secuencias de reglas para realizar tareas concretas. No existe un lenguaje universal, por lo que se han creado muchos lenguajes artificiales. Un programa es un algoritmo escrito en un lenguaje que la máquina puede entender.

La unidad básica es la instrucción, formada por símbolos y reglas que definen la sintaxis y la semántica del lenguaje. Los lenguajes de programación usan símbolos y caracteres legibles en lugar de ceros y unos. Se dividen en dos tipos principales: lenguajes de bajo nivel y lenguajes de alto nivel.

Lenguajes de Bajo Nivel

Los lenguajes de bajo nivel son comprendidos directamente por el ordenador, lo que los hace rápidos y eficientes.

  • Lenguaje o Código Máquina: Está formado por instrucciones escritas en binario que controlan directamente el procesador. Es rápido y muy optimizado, aunque cada procesador tiene su propio código. Fue el primer lenguaje usado en los inicios de la informática.
  • Lenguaje Ensamblador: Creado en 1945, simplifica la programación en código máquina mediante símbolos y mnemotécnicos. Se usa principalmente para programar controladores y componentes de hardware debido a su precisión y cercanía al lenguaje del procesador.

Lenguajes de Alto Nivel

Los lenguajes de alto nivel surgieron para facilitar la programación, resolviendo las dificultades del código máquina y ensamblador. Permiten escribir programas en un lenguaje similar al humano, que luego se traduce a lenguaje máquina mediante compiladores.

Los lenguajes de alto nivel buscan ser independientes de la máquina, asemejarse al lenguaje natural para minimizar errores y facilitar la programación mediante librerías y rutinas reutilizables. Desde los primeros lenguajes como Fortran y Cobol, han surgido muchos otros como Python, Java, JavaScript, PHP y C/C++, adaptados a distintos tipos de aplicaciones.

Traductores de Lenguaje

Los lenguajes de programación usan símbolos que facilitan la escritura y reducen errores, por lo que se necesitan traductores que conviertan el código fuente en código máquina. Existen tres tipos principales de traductores:

  • El Ensamblador: Traduce directamente el código ensamblador a código máquina, convirtiendo cada instrucción en su equivalente. En algunos casos, una instrucción puede generar varias instrucciones en código máquina, llamadas macros, y el ensamblador que las usa se denomina macroensamblador.
  • El Compilador: Traduce el código fuente de los lenguajes de alto nivel a código máquina, generando un programa ejecutable. Este proceso convierte todo el código de una sola vez y no permite ejecutar hasta corregir errores. Los compiladores usan un linker para unir subprogramas y crear un único programa objeto. Los programas compilados se ejecutan rápido, pero no pueden modificarse en ejecución, son menos portables y dependen de la máquina.
  • El Intérprete: Traduce y ejecuta el código fuente instrucción por instrucción, lo que hace que los programas sean más lentos que los compilados. Permite detener, modificar y continuar la ejecución del programa, siendo más flexibles y robustos. Además, son fácilmente transportables y suelen ser independientes de la máquina. Ejemplos: HTML, XML, PHP y JavaScript.

Aplicaciones Informáticas y Licencias de Software

Clasificación de Aplicaciones

Las aplicaciones informáticas cubren todo tipo de tareas y se clasifican en grupos como: ofimática, científicos, gráficos, comunicaciones, seguridad, multimedia, juegos y educativos, utilidades de disco y aplicaciones a medida.

Tipos de Licencia de Software

Hay dos tipos principales de licencia de software:

  • Software Libre: Puede ser distribuido, modificado, copiado y usado libremente, siempre que incluya su código fuente. Según la licencia, el usuario tiene diversas libertades, aunque no implica que sea gratuito. La licencia más conocida es la GNU-GPL, creada por Richard Stallman (FSF). No debe confundirse el software libre con el software gratuito ni con el de código abierto, ya que sus filosofías son distintas.
  • Software Propietario o Privativo: Limita al usuario en su uso, modificación y distribución, ya que su código fuente no está disponible o su acceso es restringido. El creador define las condiciones mediante licencias (como shareware o freeware), por lo que este tipo de software no siempre es de pago.

Deja un comentario