GNU/Linux >> Tutoriales Linux >  >> Linux

Linux vs Unix:¿Cuál es la diferencia?

Si eres un desarrollador de software de 20 o 30 años, has crecido en un mundo dominado por Linux. Ha sido un actor importante en el centro de datos durante décadas, y aunque es difícil encontrar informes definitivos sobre la cuota de mercado de los sistemas operativos, la participación de Linux en los sistemas operativos del centro de datos podría llegar al 70 %, y las variantes de Windows se llevan casi todo el porcentaje restante. . Los desarrolladores que utilizan cualquier nube pública importante pueden esperar que el sistema de destino ejecute Linux. La evidencia de que Linux está en todas partes ha crecido en los últimos años cuando agrega sistemas integrados basados ​​en Android y Linux en teléfonos inteligentes, televisores, automóviles y muchos otros dispositivos.

Aun así, la mayoría de los desarrolladores de software, incluso aquellos que han crecido durante esta venerable "revolución de Linux", al menos han oído hablar de Unix. Suena similar a Linux, y probablemente haya escuchado que la gente usa estos términos indistintamente. O tal vez haya escuchado que Linux es un sistema operativo "similar a Unix".

Entonces, ¿qué es este Unix? Las caricaturas hablan de "barbas grises" parecidas a magos sentados detrás de pantallas verdes brillantes, escribiendo código C y scripts de shell, alimentados por café filtrado a la antigua. Pero Unix tiene una historia mucho más rica más allá de los programadores C barbudos de la década de 1970. Si bien abundan los artículos que detallan la historia de Unix y las comparaciones "Unix vs. Linux", este artículo ofrecerá antecedentes de alto nivel y una lista de las principales diferencias entre estos mundos complementarios.

Los inicios de Unix

La historia de Unix comienza en AT&T Bell Labs a fines de la década de 1960 con un pequeño equipo de programadores que buscan escribir un sistema operativo multitarea y multiusuario para el PDP-7. Dos de los miembros más notables de este equipo en las instalaciones de investigación de Bell Labs fueron Ken Thompson y Dennis Ritchie. Si bien muchos de los conceptos de Unix se derivaron de su predecesor (Multics), la decisión del equipo de Unix a principios de la década de 1970 de reescribir este pequeño sistema operativo en el lenguaje C es lo que separó a Unix de todos los demás. En ese momento, los sistemas operativos rara vez eran portátiles, si es que alguna vez lo eran. En cambio, por la naturaleza de su diseño y lenguaje fuente de bajo nivel, los sistemas operativos estaban estrechamente vinculados a la plataforma de hardware para la que habían sido creados. Al refactorizar Unix en el lenguaje de programación C, Unix ahora podría ser portado a muchas arquitecturas de hardware.

Además de esta nueva portabilidad, que permitió a Unix expandirse rápidamente más allá de Bell Labs a otros usos de investigación, académicos e incluso comerciales, varios principios clave del diseño del sistema operativo resultaron atractivos para usuarios y programadores. Por un lado, la filosofía Unix de Ken Thompson se convirtió en un poderoso modelo de computación y diseño de software modular. La filosofía de Unix recomendaba utilizar programas pequeños, especialmente diseñados, en combinación para realizar tareas generales complejas. Dado que Unix se diseñó en torno a archivos y conductos, este modelo de "conexiones" de entradas y salidas de programas en un conjunto lineal de operaciones en la entrada todavía está de moda en la actualidad. De hecho, el actual modelo de computación en la nube sin servidor debe gran parte de su herencia a la filosofía de Unix.

Rápido crecimiento y competencia

A finales de la década de 1970 y 1980, Unix se convirtió en la raíz de un árbol genealógico que se expandió a través de la investigación, la academia y un creciente negocio comercial de sistemas operativos Unix. Unix no era un software de código abierto, y el código fuente de Unix se podía licenciar a través de acuerdos con su propietario, AT&T. La primera licencia de software conocida se vendió a la Universidad de Illinois en 1975.

Unix creció rápidamente en la academia, con Berkeley convirtiéndose en un importante centro de actividad, dado el año sabático de Ken Thompson allí en los años 70. Con toda la actividad en torno a Unix en Berkeley, nació una nueva entrega de software de Unix:Berkeley Software Distribution, o BSD. Inicialmente, BSD no era una alternativa a Unix de AT&T, sino un complemento con software y capacidades adicionales. Cuando llegó 2BSD (la segunda distribución de software de Berkeley) en 1979, Bill Joy, un estudiante graduado de Berkeley, había agregado programas ahora famosos como vi y la consola C (/bin/csh).

Además de BSD, que se convirtió en una de las ramas más populares de la familia Unix, las ofertas comerciales de Unix explotaron durante la década de 1980 y en la década de 1990 con nombres como HP-UX, AIX de IBM, Solaris de Sun, Sequent y Xenix. A medida que las ramas crecieron desde la raíz original, comenzaron las "guerras de Unix" y la estandarización se convirtió en un nuevo enfoque para la comunidad. El estándar POSIX nació en 1988, así como otros seguimientos de estandarización a través de The Open Group en la década de 1990.

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

Alrededor de este tiempo, AT&T y Sun lanzaron System V Release 4 (SVR4), que fue adoptado por muchos proveedores comerciales. Por separado, la familia de sistemas operativos BSD había crecido a lo largo de los años, lo que llevó a algunas variaciones de código abierto que se lanzaron bajo la licencia BSD ahora familiar. Esto incluía FreeBSD, OpenBSD y NetBSD, cada uno con un mercado objetivo ligeramente diferente en la industria de servidores Unix. Estas variantes de Unix continúan teniendo algún uso en la actualidad, aunque muchas han visto cómo su participación en el mercado de servidores se reduce a un solo dígito (o menos). BSD puede tener la base de instalación más grande de cualquier sistema Unix moderno en la actualidad. Además, BSD puede reclamar cada unidad de hardware Apple Mac enviada en la historia reciente, ya que su sistema operativo OS X (ahora macOS) es un derivado de BSD.

Si bien la historia completa de Unix y sus variantes académicas y comerciales podría tomar muchas más páginas, por el bien del enfoque de nuestro artículo, pasemos al surgimiento de Linux.

Ingrese a Linux

Lo que hoy llamamos el sistema operativo Linux es en realidad la combinación de dos esfuerzos de principios de la década de 1990. Richard Stallman buscaba crear una alternativa verdaderamente gratuita y de código abierto al sistema propietario Unix. Estaba trabajando en las utilidades y programas bajo el nombre GNU, un acrónimo recursivo que significa "¡GNU no es Unix!" Aunque había un proyecto de kernel en marcha, resultó ser difícil, y sin un kernel, el sueño de un sistema operativo libre y de código abierto no se podía realizar. Fue el trabajo de Linus Torvald —producir un kernel funcional y viable al que llamó Linux— lo que dio vida al sistema operativo completo. Dado que Linus estaba usando varias herramientas GNU (por ejemplo, GNU Compiler Collection o GCC), la combinación de las herramientas GNU y el kernel de Linux fue una combinación perfecta.

Las distribuciones de Linux cobraron vida con los componentes de GNU, el kernel de Linux, la interfaz gráfica de usuario de X-Windows del MIT y otros componentes de BSD que podían usarse bajo la licencia BSD de código abierto. La popularidad temprana de distribuciones como Slackware y luego Red Hat le dio al "usuario común de PC" de la década de 1990 acceso al sistema operativo Linux y, con él, muchas de las capacidades y utilidades del sistema propietario Unix que usaban en su vida laboral o académica.

Debido a que todos los componentes de Linux son gratuitos y de código abierto, cualquiera podría crear una distribución de Linux con un poco de esfuerzo, y pronto el número total de distribuciones alcanzó los cientos. Por supuesto, muchos desarrolladores utilizan Linux a través de proveedores en la nube o mediante el uso de distribuciones gratuitas populares como Fedora, Ubuntu de Canonical, Debian, Arch Linux, Gentoo y muchas otras variantes. Las ofertas comerciales de Linux, que brindan soporte además de los componentes gratuitos y de código abierto, se volvieron viables a medida que muchas empresas, incluida IBM, migraron de Unix propietario a ofrecer soluciones de software y middleware sobre Linux. Red Hat creó un modelo de soporte comercial en torno a Red Hat Enterprise Linux, al igual que el proveedor alemán SUSE con SUSE Linux Enterprise Server (SLES).

Comparando Unix y Linux

Hasta ahora, hemos analizado la historia de Unix y el surgimiento de Linux y los fundamentos de GNU/Free Software Foundation de una alternativa gratuita y de código abierto a Unix. Examinemos las diferencias entre estos dos sistemas operativos que comparten gran parte de la misma herencia y muchos de los mismos objetivos.

Desde la perspectiva de la experiencia del usuario, ¡no hay mucho que sea diferente! Gran parte del atractivo de Linux era la disponibilidad del sistema operativo en muchas arquitecturas de hardware (incluida la PC moderna) y la capacidad de usar herramientas familiares para los administradores y usuarios del sistema Unix.

Debido a los estándares y el cumplimiento de POSIX, el software escrito en Unix podría compilarse para un sistema operativo Linux con un esfuerzo de portabilidad generalmente limitado. Los scripts de shell podrían usarse directamente en Linux en muchos casos. Mientras que algunas herramientas tenían opciones de bandera/línea de comandos ligeramente diferentes entre Unix y Linux, muchas funcionaban igual en ambos.

Una nota al margen es que la popularidad del hardware y el sistema operativo macOS como plataforma para el desarrollo que apunta principalmente a Linux puede atribuirse al sistema operativo macOS similar a BSD. Muchas herramientas y scripts destinados a un sistema Linux funcionan fácilmente dentro de la terminal macOS. Muchos componentes de software de código abierto disponibles en Linux están fácilmente disponibles a través de herramientas como Homebrew.

Las diferencias restantes entre Linux y Unix se relacionan principalmente con el modelo de licencia:código abierto frente a software patentado con licencia. Además, la falta de un kernel común dentro de las distribuciones de Unix tiene implicaciones para los proveedores de software y hardware. Para Linux, un proveedor puede crear un controlador de dispositivo para un dispositivo de hardware específico y esperar que, dentro de lo razonable, funcione en la mayoría de las distribuciones. Debido a las ramas comerciales y académicas del árbol de Unix, es posible que un proveedor tenga que escribir diferentes controladores para las variantes de Unix y tener licencias y otras preocupaciones relacionadas con el acceso a un SDK o un modelo de distribución para el software como un controlador de dispositivo binario en muchos Variantes de Unix.

A medida que ambas comunidades maduraron durante la última década, muchos de los avances en Linux se adoptaron en el mundo de Unix. Muchas utilidades GNU se pusieron a disposición como complementos para los sistemas Unix en los que los desarrolladores querían características de los programas GNU que no forman parte de Unix. Por ejemplo, AIX de IBM ofreció una caja de herramientas AIX para aplicaciones Linux con cientos de paquetes de software GNU (como Bash, GCC, OpenLDAP y muchos otros) que podrían agregarse a una instalación AIX para facilitar la transición entre Linux y los sistemas AIX basados ​​en Unix. .

Unix patentado todavía está vivo y bien y, con muchos proveedores importantes que prometen soporte para sus versiones actuales hasta bien entrada la década de 2020, no hace falta decir que Unix estará presente en el futuro previsible. Además, la rama BSD del árbol Unix es de código abierto, y NetBSD, OpenBSD y FreeBSD tienen sólidas bases de usuarios y comunidades de código abierto que pueden no ser tan visibles o activas como Linux, pero se mantienen firmes en los informes recientes de uso compartido de servidores. , con números muy por encima de los propietarios de Unix en áreas como el servicio web.

Donde Linux ha mostrado una ventaja significativa sobre Unix propietario es en su disponibilidad a través de una gran cantidad de dispositivos y plataformas de hardware. El Raspberry Pi, popular entre los aficionados y entusiastas, funciona con Linux y ha abierto la puerta a todo un espectro de dispositivos IoT que ejecutan Linux. Ya hemos mencionado dispositivos Android, automóviles (con Automotive Grade Linux) y televisores inteligentes, donde Linux tiene una gran participación de mercado. Todos los proveedores de la nube del planeta ofrecen servidores virtuales que ejecutan Linux, y muchas de las pilas nativas de la nube más populares de la actualidad están basadas en Linux, ya sea que se trate de tiempos de ejecución de contenedores o Kubernetes o muchas de las plataformas sin servidor que están ganando popularidad.

Una de las representaciones más reveladoras del ascenso de Linux es la transformación de Microsoft en los últimos años. Si les hubieras dicho a los desarrolladores de software hace una década que el sistema operativo Windows "ejecutaría Linux" en 2016, la mayoría se habría reído histéricamente. Pero la existencia y la popularidad del Subsistema de Windows para Linux (WSL), así como las capacidades anunciadas más recientemente, como el puerto de Windows de Docker, incluida la compatibilidad con LCOW (contenedores de Linux en Windows), son evidencia del impacto que ha tenido Linux, y claramente seguirá teniendo, en todo el mundo del software.


Este artículo se publicó originalmente en mayo de 2018 y el editor lo actualizó.


Linux
  1. Migración de Unix a Linux

  2. ¿Cuál es la diferencia entre localizar y encontrar el comando en Linux?

  3. ¿Cuál es la diferencia entre 'localizar' y 'buscar' en Linux?

  4. ¿Qué es el mensaje Tienes nuevo correo en Linux/UNIX?

  5. ¿Cuál es la diferencia entre Unix, Linux, BSD y GNU?

¿Cuál es la diferencia entre Linux y Unix?

¿Cuál es la diferencia entre Rsync y BTRFS en Linux?

iptables vs nftables:¿Cuál es la diferencia?

Ruta absoluta vs relativa en Linux:¿Cuál es la diferencia?

Linux frente a Unix

¿Qué es el comando matar en Linux?