Unix en un sistema operativo que permite la ejecución de distintas tareas de forma simultánea, soporta tener múltiples usuarios y es portable, lo que significa que es capaz de ser usado en máquinas que poseen distintas arquitecturas. Fue desarrollado en Bell Labs de AT&T en el año 1969 por Ken Thompson, Dennis Ritchie y Douglas McIlroy, entre otros empleados que también trabajaban en aquella compañía.

Fue en 1970, cuando consiguieron el apoyo tecnológico de los laboratorios Bell, ya que consiguieron que Unix se pudiera ejecutar no solo en la máquina PDP-7 sino en la PDP-11/20. En aquel momento contaba con un programa para dar formato a textos y un editor de texto. En el año 1972, fue cuando se reescribió Unix con el lenguaje de programación C, lo que lo hizo portable y le dio un gran éxito, ya que pudo usarse en otras compañías y universidades. En la década de los ochentas, se fueron desarrollando versiones sucesivas de Unix y en años siguientes aparecieron versiones que emulaban sus funciones.

Uno de ellos fue Linus Torvalds con su Linux, en 1991, núcleo que fue utilizado por GNU en el año siguiente. En los cinco años que vinieron después, Novell adquirió la división que trabajaba en Unix de AT&T, hubo problemas legales con BSD por copiar partes de Unix y se revendió la división a Santa Cruz Operation, que continúa comercializando System V en su Unixware, un sistema operativo basado en Unix.

Alternativas usadas hoy en día se basaron en Unix

La marca Unix solo se le puede aplicar a sistemas operativos que cumplen la llamada «Single Unix Specification» y han pagado las regalías que especifican. Pero en la práctica, se le aplica a sistemas basados en POSIX (del inglés Portable Operating System Interface y la X final viene de Unix, como una seña de identidad para su API), como lo son Linux, FreeBSD, NetBSD, OpenBSD o Mac OS X (este último alcanzó la certificación Unix en su versión 10.5). Para nombrar a los sistemas operativos que no tienen la certificación Unix es frecuente que veamos palabras como UNX*, *UNIX**, **NIX o más raramente **N?X*, por lo que si alguna vez buscáis un programa para Linux y veis que tiene una versión para *nix, sabréis que esa es la versión que tenéis que usar. No es una nomenclatura que me guste particularmente, ya que puede a inducir a errores.

Si soléis usar la terminal tanto en Linux como en Mac OS X, podréis comprobar como muchos de los comandos que usáis habitualmente han sido implementados basándose en algunos de los que se usan en Unix. Es interesante comprobar la forma en la que antiguos comandos de Unix han sido conservados de una forma parecida en los sistemas operativos que han prevalecido en estos días. De los siguientes comandos, hay varios que probablemente habréis usado en más de una ocasión. Os reto a que me digáis cuantos de los siguientes comandos sois capaces de reconocer:

ar as b bas bcd boot cal cat chdir check chmod chown cmp cp date db dbppt dc df dsw dtf du ed find for form hup lbppt ld ln ls mail mesg mkdir mkfs mount mv nm od pr rew rkd rkf rkl rm rmdir roff sdate sh stat strip su sum tap tm tty type un wc who write

La filosofía Unix es capaz de apreciarse en cada una de las herramientas anteriores, cuyos valores de simpleza, reusabilidad y capacidad de modularización, son inspiración para multitud de proyectos que usamos en nuestro día a día. Dicha filosofía, se basa en construir software mediante un código que sea corto, simple, claro y extensible.