Tecnología y gadgets

UNIX: qué es, cómo funciona y por qué cambió la historia de los sistemas operativos

10 min de lectura

UNIX: qué es, cómo funciona y por qué cambió la historia de los sistemas operativos

UNIX es uno de los sistemas operativos más importantes de la historia de la informática. Aunque sus primeras versiones aparecieron hace más de medio siglo, muchas de las ideas desarrolladas alrededor de UNIX continúan presentes en sistemas actuales, desde servidores y estaciones de trabajo hasta diferentes sistemas derivados de su filosofía.

Su importancia no se debe únicamente a que fuera uno de los primeros sistemas operativos multiusuario y multitarea. UNIX también introdujo una forma de organizar el software y trabajar con el sistema mediante herramientas pequeñas, combinables y orientadas a realizar tareas concretas.

¿Qué es UNIX?

UNIX es una familia de sistemas operativos que comenzó a desarrollarse a finales de la década de 1960 en los laboratorios Bell.

Entre las personas más importantes en sus primeros años se encuentran Ken Thompson y Dennis Ritchie, quienes participaron en el desarrollo del sistema y de herramientas fundamentales asociadas a él.

UNIX fue diseñado para permitir que varios usuarios pudieran trabajar con un ordenador y ejecutar diferentes procesos.

Con el tiempo aparecieron numerosas versiones, variantes y sistemas relacionados con UNIX.

La historia de UNIX está estrechamente vinculada al desarrollo de otros sistemas operativos y a conceptos que posteriormente se convertirían en habituales en informática.

¿Para qué sirve UNIX?

UNIX se utiliza principalmente como sistema operativo para gestionar los recursos de un ordenador y proporcionar un entorno en el que puedan ejecutarse diferentes programas.

Entre sus funciones se encuentran:

  • Gestionar procesos.
  • Administrar memoria.
  • Controlar dispositivos.
  • Gestionar archivos.
  • Gestionar usuarios y permisos.
  • Proporcionar herramientas de red.
  • Ejecutar aplicaciones.
  • Permitir la automatización de tareas.
  • Facilitar la administración mediante terminal.

Aunque el UNIX original tuvo diferentes entornos gráficos a lo largo de su historia, la línea de comandos siempre ha ocupado un lugar especialmente importante dentro de su filosofía.

El origen de UNIX

UNIX comenzó a desarrollarse alrededor de 1969 en Bell Labs.

Ken Thompson empezó a trabajar en un sistema operativo más pequeño después de que se abandonara el proyecto Multics, en el que Bell Labs había participado.

Posteriormente, Dennis Ritchie y otros investigadores contribuyeron al desarrollo del sistema.

Uno de los momentos importantes de su historia fue la reescritura de UNIX en lenguaje C durante los primeros años de la década de 1970.

Esto tuvo una enorme importancia porque permitió hacer que el sistema fuese mucho más portable entre diferentes arquitecturas de ordenador.

UNIX y el lenguaje C

La relación entre UNIX y C es especialmente importante.

Antes de C, muchos sistemas operativos dependían en gran medida del lenguaje ensamblador de una arquitectura concreta.

La creación de C permitió desarrollar buena parte de UNIX utilizando un lenguaje de mayor nivel sin abandonar completamente el control sobre los recursos del sistema.

Esto facilitó la adaptación de UNIX a diferentes ordenadores.

La influencia fue enorme:

UNIX
  ↓
Lenguaje C
  ↓
Portabilidad
  ↓
Nuevas plataformas
  ↓
Influencia en otros sistemas

Además, C se convirtió posteriormente en uno de los lenguajes fundamentales para desarrollar software de sistemas.

UNIX como sistema multiusuario

Una característica importante de UNIX es su capacidad multiusuario.

Esto significa que diferentes usuarios pueden utilizar el mismo sistema informático y disponer de sus propios archivos, procesos y permisos.

Por ejemplo:

Usuario A
   ├── archivos
   └── procesos

Usuario B
   ├── archivos
   └── procesos

Usuario C
   ├── archivos
   └── procesos

El sistema operativo se encarga de gestionar estos recursos y controlar qué puede hacer cada usuario.

Esta característica hizo que UNIX resultara especialmente apropiado para universidades, empresas, servidores y grandes sistemas informáticos.

UNIX y la multitarea

UNIX también fue diseñado como un sistema multitarea.

Esto permite ejecutar diferentes procesos de forma concurrente.

Por ejemplo, un servidor UNIX puede estar ejecutando simultáneamente:

Servidor web
Base de datos
Servidor de correo
Procesos de mantenimiento
Servicios de red

El sistema operativo administra el procesador y los demás recursos para que los diferentes procesos puedan funcionar.

La multitarea es actualmente algo habitual, pero tuvo una gran importancia en la evolución de los sistemas operativos.

La filosofía de UNIX

Una de las aportaciones más importantes de UNIX fue su filosofía de diseño.

En lugar de crear una única aplicación gigantesca que hiciera todo, la idea consistía en disponer de herramientas pequeñas que realizaran tareas concretas y pudieran combinarse.

Por ejemplo:

Herramienta A
     ↓
Herramienta B
     ↓
Herramienta C
     ↓
Resultado

Esta filosofía permitió crear operaciones complejas combinando comandos sencillos.

Un ejemplo clásico es utilizar el pipe | para enviar la salida de un programa como entrada de otro.

Por ejemplo:

ls | grep ".txt"

El primer comando genera una lista y el segundo filtra los resultados.

Esta posibilidad de combinar herramientas es una de las características más reconocibles de los sistemas de tipo UNIX.

El sistema de archivos de UNIX

UNIX también utiliza una estructura de archivos jerárquica.

A diferencia de Windows, donde es habitual encontrar unidades como C:, en UNIX el sistema de archivos parte normalmente de una raíz:

/

A partir de ella aparecen diferentes directorios:

/
├── bin
├── etc
├── home
├── tmp
├── usr
└── var

Las rutas utilizan normalmente la barra /.

Por ejemplo:

/home/usuario/documentos

Esta estructura ha influido directamente en otros sistemas de tipo UNIX y en Linux.

Todo es un archivo

Una de las ideas tradicionalmente asociadas con UNIX es:

«Todo es un archivo».

Esta expresión hace referencia a la forma en que muchos recursos del sistema pueden representarse mediante interfaces de archivo.

Los archivos normales son, evidentemente, archivos, pero determinados dispositivos y recursos también pueden exponerse mediante interfaces similares.

Esto permite utilizar herramientas y mecanismos comunes para trabajar con diferentes recursos del sistema.

No significa literalmente que absolutamente todo sea un archivo, sino que la interfaz de archivos desempeña un papel central en la arquitectura UNIX.

Usuarios, grupos y permisos

UNIX incorpora un sistema de usuarios, grupos y permisos.

Cada archivo puede tener asociados permisos que determinan quién puede:

Leer
Escribir
Ejecutar

Por ejemplo:

-rwxr-xr--

representa diferentes permisos para el propietario, el grupo y otros usuarios.

Este modelo permite controlar el acceso a archivos y recursos.

Los sistemas derivados de UNIX, como Linux y macOS, mantienen conceptos similares.

La terminal en UNIX

La terminal es una de las herramientas más importantes en los sistemas UNIX.

A través de ella podemos ejecutar comandos para:

  • Crear archivos.
  • Copiar información.
  • Mover archivos.
  • Eliminar elementos.
  • Buscar información.
  • Gestionar procesos.
  • Configurar servicios.
  • Administrar usuarios.
  • Trabajar con redes.
  • Automatizar tareas.

Por ejemplo:

pwd

muestra el directorio actual.

cd documentos

permite cambiar de directorio.

Y:

ls

muestra el contenido del directorio.

Estas herramientas pueden parecer sencillas, pero permiten realizar operaciones muy complejas cuando se combinan.

¿Qué es un shell?

El shell es el programa que interpreta los comandos que introduce el usuario y permite interactuar con el sistema.

Uno de los shells más conocidos es Bourne shell (sh).

Posteriormente aparecieron otros, como:

  • Bash.
  • KornShell.
  • C shell.
  • Zsh.

El shell también permite crear scripts para automatizar tareas.

Por ejemplo:

#!/bin/sh

echo "Hola, mundo"

Este pequeño script ejecuta un comando mediante el shell.

UNIX y los scripts

La posibilidad de automatizar tareas mediante scripts es otra característica importante de la cultura UNIX.

En lugar de realizar manualmente una operación repetitiva, podemos escribir una secuencia de comandos.

Por ejemplo:

Buscar archivos
      ↓
Filtrar resultados
      ↓
Procesar información
      ↓
Guardar resultado

Esto resulta especialmente útil para administradores de sistemas, desarrolladores y profesionales que trabajan con servidores.

UNIX y las redes

UNIX tuvo también una gran importancia en el desarrollo de sistemas conectados en red.

Las herramientas de red y la filosofía de trabajo mediante pequeños programas facilitaron la administración y automatización de sistemas.

Con el tiempo, los sistemas UNIX se convirtieron en una plataforma importante para servidores y estaciones de trabajo.

Muchas herramientas y conceptos relacionados con redes que actualmente utilizamos en sistemas Linux y macOS tienen una relación histórica con UNIX.

¿Qué relación existe entre UNIX y Linux?

Esta es una de las dudas más frecuentes.

Linux no es UNIX, aunque está inspirado en UNIX y sigue muchas de sus ideas.

Linux es un kernel de código abierto creado por Linus Torvalds en 1991.

Posteriormente se utilizó junto con herramientas del proyecto GNU y otros componentes para crear sistemas completos conocidos como distribuciones Linux.

Podemos representarlo así:

UNIX
  │
  │ Influencia y filosofía
  ↓
Linux
  │
  ↓
Distribuciones
  ├── Debian
  ├── Ubuntu
  ├── Fedora
  └── Arch Linux

Linux no deriva directamente del código fuente original de UNIX, aunque comparte numerosas características conceptuales.

¿Qué relación tiene UNIX con macOS?

macOS tiene una relación mucho más directa con la familia UNIX.

Su núcleo, XNU, combina componentes procedentes de Mach y BSD.

Además, macOS cuenta con certificación UNIX en determinadas versiones y sigue numerosas convenciones de los sistemas UNIX.

Por eso, alguien acostumbrado a utilizar una terminal Linux puede encontrar muchos conceptos familiares al trabajar con macOS.

Por ejemplo:

ls
cd
pwd
cp
mv
rm

son comandos habituales en ambos entornos.

UNIX frente a Windows

UNIX y Windows representan tradiciones diferentes dentro de la evolución de los sistemas operativos.

Windows se desarrolló alrededor de una arquitectura y una experiencia de usuario diferentes.

UNIX puso históricamente un gran énfasis en:

  • Multiusuario.
  • Multitarea.
  • Terminal.
  • Herramientas pequeñas.
  • Composición de comandos.
  • Permisos.
  • Automatización.
  • Portabilidad.

Windows también ofrece actualmente herramientas de terminal y automatización, pero su historia y arquitectura son diferentes.

¿Qué sistemas operativos están relacionados con UNIX?

A lo largo de los años han aparecido numerosos sistemas relacionados con UNIX.

Entre ellos encontramos diferentes variantes comerciales y sistemas derivados o compatibles.

Algunos nombres importantes son:

  • BSD.
  • FreeBSD.
  • OpenBSD.
  • NetBSD.
  • Solaris.
  • AIX.
  • HP-UX.
  • macOS.

No todos tienen exactamente la misma relación con UNIX. Algunos derivan históricamente de UNIX, mientras que otros son sistemas tipo UNIX que siguen muchas de sus convenciones.

La organización The Open Group mantiene la especificación y el programa de certificación Single UNIX Specification, utilizado para determinar qué sistemas cumplen determinados requisitos de la marca UNIX.

¿Qué significa POSIX?

Otro término relacionado con UNIX es POSIX.

POSIX es un conjunto de estándares que define interfaces y comportamientos destinados a favorecer la portabilidad entre diferentes sistemas operativos.

Muchas herramientas y sistemas tipo UNIX siguen estándares POSIX, aunque POSIX y UNIX no son exactamente lo mismo.

Un sistema puede ser compatible con determinadas partes de POSIX sin ser un sistema UNIX certificado.

Esta distinción resulta importante cuando hablamos de compatibilidad entre diferentes sistemas operativos.

¿UNIX sigue utilizándose actualmente?

Sí.

Aunque el UNIX original ya no ocupa el mismo lugar que tuvo durante décadas anteriores, diferentes sistemas UNIX y derivados continúan utilizándose en determinados entornos.

Algunos sistemas empresariales, servidores especializados y determinadas infraestructuras siguen utilizando plataformas UNIX comerciales.

Además, sistemas como macOS mantienen una relación directa con la tradición UNIX, mientras que Linux ha heredado muchas de sus ideas.

Por tanto, la influencia de UNIX sigue siendo visible en la informática actual.

¿Por qué es importante aprender UNIX?

Comprender UNIX puede resultar especialmente útil para quienes quieren trabajar en:

  • Administración de sistemas.
  • Servidores.
  • Desarrollo de software.
  • DevOps.
  • Ciberseguridad.
  • Redes.
  • Computación científica.
  • Sistemas de alto rendimiento.

Muchos conceptos que se aprenden utilizando UNIX también aparecen posteriormente en Linux y macOS.

Aprender comandos, permisos, procesos, pipes y scripts proporciona una base muy útil para trabajar con sistemas modernos.

La influencia de UNIX en la informática moderna

Quizá el mayor legado de UNIX no sea un determinado programa, sino una forma de diseñar sistemas.

La idea de utilizar herramientas pequeñas, especializadas y combinables continúa presente en numerosos entornos.

También encontramos conceptos heredados de UNIX en:

Linux
macOS
Android
Servidores
Contenedores
Herramientas DevOps
Sistemas de desarrollo

Incluso muchas herramientas modernas de desarrollo utilizan terminales y comandos inspirados directamente en esta tradición.

En resumen

UNIX es una familia histórica de sistemas operativos que comenzó a desarrollarse en Bell Labs a finales de los años 60 y que tuvo una enorme influencia en la evolución de la informática.

Sus características más importantes incluyen:

  • Sistemas multiusuario.
  • Multitarea.
  • Gestión de procesos.
  • Sistema de archivos jerárquico.
  • Usuarios y permisos.
  • Terminal.
  • Shells.
  • Scripts.
  • Herramientas pequeñas y combinables.
  • Gran importancia de la portabilidad.

Su desarrollo estuvo estrechamente relacionado con el nacimiento y evolución del lenguaje C, lo que ayudó a extender UNIX a diferentes arquitecturas.

Linux no es UNIX, pero está fuertemente inspirado en sus conceptos y filosofía. macOS, por su parte, tiene una relación directa con la tradición UNIX y utiliza el núcleo XNU.

Aunque muchas de las implementaciones originales de UNIX han quedado relegadas a determinados entornos, sus ideas continúan formando parte de la base de muchos sistemas informáticos actuales.

Productos recomendados

Seleccionados de nuestra tienda para este tema

Plafón LED de techo rectangular ultrafino de 23 pulgadas… Hasta -75% Plafón LED de techo rectangular ultrafino de 23 pulgadas… El precio original era: 263,92 €.El precio actual es: 65,98 €. Ver opciones
Si eres de jerseys navideños feos, este de El Regreso al… -95% Si eres de jerseys navideños feos, este de El Regreso al… El precio original era: 226,50 €.El precio actual es: 11,99 €. Añadir al carrito
Leave a comment

Carrito de compra

×

No hay productos en el carrito.