Linux se inspiró en Unix, pero Linux no es Unix, aunque definitivamente es similar a Unix. Explicaremos las principales diferencias entre estos dos famosos sistemas operativos.
¿La misma diferencia?
Linux es un sistema operativo gratuito y de código abierto. Unix es un producto comercial, ofrecido por una variedad de proveedores, cada uno con su propia variante, generalmente dedicada a su propio hardware. Es caro y de código cerrado. Pero Linux y Unix hacen más o menos lo mismo de la misma manera, ¿verdad? Más o menos, sí.
Las sutilezas son un poco más complicadas. Hay diferencias más allá de lo técnico y arquitectónico. Para comprender algunas de las influencias que han dado forma a Unix y Linux, debemos comprender sus historias de fondo.
Los orígenes de Unix
Unix tiene más de 50 años. Fue desarrollado en Corporación de equipos digitales (DIC) lenguaje ensamblador en un DIC PDP/7 como un proyecto no oficial en Laboratorios Bellentonces propiedad de AT&T. Fue portado en breve a un DIC PDP/11/20 computadora, y luego se extendió gradualmente a otras computadoras en Bell. Una reescritura en el lenguaje de programación c condujo a la versión de 1973 4 de Unix. Esto fue significativo porque las características del lenguaje C y del compilador significaban que ahora era relativamente fácil portar Unix a nuevas arquitecturas informáticas.
En 1973, Ken Thompson y Dennis Ritchie presentó un artículo sobre Unix en una conferencia. Como resultado, las solicitudes de copias de Unix llegaron a Bell. Debido a que la venta de sistemas operativos quedaba fuera del alcance de operaciones permitido de AT&T, no podían tratar a Unix como un producto. Esto llevó a que Unix se distribuyera como código fuente con licencia. Los costos nominales fueron suficientes para cubrir el envío y el embalaje y una «regalía razonable». Unix llegó «tal cual», sin soporte técnico ni corrección de errores. Pero obtuviste el código fuente… y pudiste modificarlo.
Unix experimentó una rápida adopción en las instituciones académicas. En 1975, Ken Thompson pasó un año sabático en Bell en la Universidad de California, Berkeley. Junto con algunos estudiantes de posgrado, comenzó a agregar y mejorar su copia local de Unix. El interés externo en las adiciones de Berkeley creció, lo que llevó al primer lanzamiento del Distribución de software de Berkeley (BSD). Se trataba de una colección de programas y modificaciones del sistema que se podían agregar a un sistema Unix existente, pero no era un sistema operativo independiente. Las versiones posteriores de BSD fueron sistemas Unix completos.
Ahora había dos versiones principales de Unix, la corriente AT&T y la corriente BSD. Todas las demás variantes de Unix, como AIX, HP-UXy Oráculo Solaris, son descendientes de estos. En 1984, se liberaron algunas de las restricciones a AT&T y pudieron producir y vender Unix.
Luego se comercializó Unix.
La génesis de Linux
Al considerar la comercialización de Unix como una erosión adicional de las libertades disponibles para los usuarios de computadoras, Richard Stallman se propuso crear un sistema operativo basado en la libertad. Es decir, la libertad de modificar el código fuente, redistribuir versiones modificadas del software y utilizar el software de la forma que el usuario considere conveniente.
El sistema operativo iba a replicar la funcionalidad de Unix, sin incluir ningún código fuente de Unix. Llamó al sistema operativo GNU y fundó la Proyecto GNU en 1983 para desarrollar el sistema operativo. En 1985 fundó la Fundación de Software Libre para promover, financiar y apoyar el proyecto GNU.
Todas las áreas del sistema operativo GNU estaban haciendo buenos progresos, excepto el núcleo. Los desarrolladores del proyecto GNU estaban trabajando en un microkernel llamado GNU Hurd, pero el progreso fue lento. (Todavía está en desarrollo hoy y se acerca su lanzamiento). Sin un kernel, no habría sistema operativo.
En 1987, Andrew Tanebaum lanzó un sistema operativo llamado MINIX (mini-Unix) como material didáctico para estudiantes que estudian diseño de sistemas operativos. MINIX era un sistema operativo funcional, similar a Unix, pero tenía algunas restricciones, especialmente con el sistema de archivos. Después de todo, el código fuente tenía que ser lo suficientemente pequeño como para garantizar que se cubriera adecuadamente en un solo semestre universitario. Hubo que sacrificar algunas funciones.
Para comprender mejor el funcionamiento interno del Intel 80386 en su nueva PC, un estudiante de informática llamó Linus Torvalds Escribí un código simple de cambio de tareas como ejercicio de aprendizaje. Con el tiempo, este código se convirtió en un protokernel elemental que se convirtió en el primer kernel de Linux. Torvalds estaba familiarizado con MINIX. De hecho, su primer kernel fue desarrollado en MINIX usando el compilador GCC de Richard Stallman.
Torvalds decidió crear su propio sistema operativo que superó las limitaciones del MINIX diseñado para la enseñanza. En 1991 hizo su anuncio famoso en el MINIX Usenet grupo, solicitando comentarios y sugerencias sobre su proyecto.
Linux no es realmente un clon de Unix. Si Linux fuera un clon de Unix, sería Unix. No lo es, es tipo Unix. La palabra «clon» implica que una pequeña parte del original se cultiva en una nueva réplica célula por célula del original. Linux fue creado de nuevo, para tener la apariencia de Unix y para satisfacer las mismas necesidades. Es menos un clon y más un replicante.
Pero de cualquier manera, Linux era un núcleo que buscaba un sistema operativo; GNU era un sistema operativo que buscaba un núcleo. En retrospectiva, lo que ocurrió después parece inevitable. También cambió el mundo.
Relacionado: El gran debate: ¿Es Linux o GNU/Linux?
¿Quién hace el desarrollo?
Una distribución de Linux es la suma de muchas partes diferentes, extraídas de muchos lugares diferentes. El kernel de Linux, el conjunto GNU de utilidades principales y las aplicaciones de usuario se combinan para crear una distribución viable. Y alguien tiene que hacer eso de combinar, mantener y administrar, al igual que alguien tiene que desarrollar el núcleo, las aplicaciones y las utilidades principales. Los mantenedores de la distribución y las comunidades de cada distribución desempeñan su papel en darle vida a una distribución de Linux tanto como lo hacen los desarrolladores del kernel.
Linux es el resultado de un esfuerzo colaborativo distribuido realizado por voluntarios no remunerados, por organizaciones como Canónico y sombrero rojoy personas patrocinadas por la industria.
Cada Unix comercial se desarrolla como una entidad única y coherente utilizando instalaciones de desarrollo internas (o subcontratadas estrictamente controladas). A menudo, estos tienen un núcleo único y están diseñados específicamente para las plataformas de hardware suministradas por cada proveedor.
Los derivados gratuitos y de código abierto del flujo BSD Unix, como FreeBSD, OpenBSDy dragónBSD, utilice una combinación de código BSD heredado y código nuevo. Ahora son proyectos apoyados por la comunidad y administrados de manera muy similar a las distribuciones de Linux.
Estándares y cumplimiento
En general, Linux no es ni Especificación única de Unix (SUS) ni POSIX obediente. Intenta satisfacer ambos estándares sin ser esclavo de ellos. Ha habido una o dos –literalmente, una o dos– excepciones, tales como Inspur K-UXun Linux chino compatible con POSIX.
Un verdadero Unix, al igual que las ofertas comerciales, es compatible. Algunos derivados de BSD, incluidas todas las versiones de macOS menos una, son compatibles con POSIX. Los nombres de las variantes, como AIX, HP-UX y Solaris, son marcas comerciales propiedad de sus respectivas organizaciones.
Marcas comerciales y derechos de autor
Linux es una marca registrada de Linus Torvalds. El Fundación Linux gestiona la marca en su nombre. El kernel de Linux y las utilidades principales se publican bajo varias versiones GNU. «copyleft» Licencias Públicas Generales. El código fuente está disponible gratuitamente.
Unix es una marca registrada de la Grupo abierto. Tiene derechos de autor, es propietario y es de código cerrado.
FreeBSD tiene derechos de autor de Proyecto FreeBSDy el código fuente está disponible.
Diferencias de uso
Desde la perspectiva de la experiencia del usuario, en la línea de comando, no hay mucha diferencia visible. Debido al cumplimiento y los estándares POSIX, el software escrito en Unix se puede compilar para un sistema operativo Linux con un esfuerzo de portabilidad limitado. Los scripts de Shell, por ejemplo, se pueden utilizar directamente en Linux en muchos casos con poca o ninguna modificación.
Algunas de las utilidades de línea de comandos tienen opciones de línea de comandos ligeramente diferentes, pero esencialmente el mismo arsenal de herramientas está disponible en ambas plataformas. De hecho, IBM AIX tiene un Caja de herramientas AIX para aplicaciones Linux. Esto permite al administrador del sistema instalar cientos de paquetes GNU (como Bash, GCC, etc.).
Los diferentes sabores de Unix tienen diferentes interfaces gráficas de usuario (GUI) disponible para ellos, al igual que Linux. Un usuario de Linux familiarizado con GNOMO o Compañero Tendrán que sentir su camino la primera vez que se encuentren. KDE o xfce, pero pronto lo retomarán. Es similar con la gama de GUI disponibles en Unix, como Motivo, Entorno de escritorio comúny el X Windows Sistema. Todos son lo suficientemente similares como para que cualquier persona que esté familiarizada con los conceptos de un entorno de ventanas con cuadros de diálogo, menús e íconos pueda navegar por ellos.
Aprenderá más sobre las diferencias mientras administra los sistemas. Por ejemplo, hay diferentes en eso mecanismos. Los derivados de System V Unix y los flujos BSD tienen diferentes sistemas de inicio. Las variantes de BSD gratuitas mantuvieron los esquemas de inicio de BSD. De forma predeterminada, las distribuciones de Linux utilizarán un sistema de inicio derivado de Unix System V o systemd.
Relacionado: Por qué systemd de Linux sigue siendo divisivo después de todos estos años
Cambio manual versus automático
Si puedes conducir uno, puedes conducir el otro, incluso si, para empezar, será un poco parar y empezar.
Dejando de lado el precio, las diferencias en filosofía, licencias, modelo de desarrollo, organización comunitaria y tipo y estilo de gobierno son mayores y más significativas que las diferencias en las banderas de línea de comando entre, digamos, una versión de grep y otra.
Las mayores diferencias no son las que ves en la pantalla.