Unix vs Linux
Este articulo viene a colación sobre la alta confusión que existe sobre Unix y Linux, y es que estoy un poco harto de ver artículos por la red con el titulo «Como instalar Unix», cuando realmente son simples tutoriales de como instalar Ubuntu u otras distribuciones linux. Por dios…., Unix no es Linux.
No seré yo el que rebata las enseñanzas del actual profesorado, sus motivos tendrán para tal afirmación pero es errónea y ademas grave (los que llevan muchos años en este mundo saben de que hablo). Linux es un derivado de Unix (o una copia) eso está claro, pero no tienen nada que ver ni es su concepto, ni en su fin.
Antes de Linux, MacOS o Windows, Unix dominaba el mundo de la informática, y esta no sería lo que es actualmente sin la visión de Ken Thompson y Dennis Ritchie que anticipándose a los tiempos, y junto a otros colaboradores como Bell Labs crearon un entorno de programación colaborativo que ahora conocemos como «desarrollo abierto».
Hoy conocemos sus principales diferencias entre Unix y Linux, a ver si se disipan las dudas de muchos usuarios
Unix vs Linux
No voy a sacar ninguna bandera a favor de Unix o Linux, son diferentes. Una cosa si puedo afirmar, los linuxeros más viejos del lugar comenzaron con derivados de Unix al estilo BSD o similares. Actualmente quedan pocas alternativas puras, podíamos hablar de Oracle Solaris, FreeBSD (excelente sistema operativo) y poco más que sea accesible para un usuario común (no profesional).
Bueno…vamos a dejarnos de chachara y vamos al articulo, jaja.
¿Qué es UNIX?
Unix es considerada como la madre de la mayoría de sistemas operativos. Su diseño se basa en la «Filosofía Unix»:
- Almacenamiento de datos en texto plano.
- Sistema de archivos jerárquico.
- Manejo de dispositivos (también otros específicos de comunicación) entre procesos (IPC) como archivos.
- Uso de muchas herramientas de software.
- Aplicaciones pequeñas, simples y modulares que se puedan fusionar con un intérprete en línea de comandos.
- No a los programas monolíticos, son pesados y no permiten su diversificación.
Cita sobre la filosofía de Unix:
“Nuestra filosofía no se puede escribir en una sola frase, ya que su principio es la idea de que el poder de un sistema proviene más de las relaciones entre los programas que de los propios programas. Muchas aplicaciones de UNIX hacen su trabajo de forma aislada, pero combinadas con otras se convierten en herramientas muy útiles incluso para usos generales. ” – Brian Kernighan y Rob Pike.
Arquitectura de Unix
El Kernel de Unix tiene el control total sobre el sistema. Tiene otros subsistemas que manejan los servicios como el sistema de archivos, los recursos, la administración de memoria, aplicaciones de inicio y otras tareas básicas de bajo nivel.
El núcleo es el corazón del sistema operativo, y ejerce como si fuera una interfaz entre el usuario y el hardware. Cada subsistema del kernel tiene sus propias características como concurrencia, memoria virtual, paginación y su sistema de archivos virtual.
En las capas externas de la arquitectura Unix, nos encontramos con la shell, sus comandos y herramientas. La shell (mal llamada terminal o consola) es la interfaz entre el usuario y el núcleo; cuando el usuario introduce comandos, estos son interpretados y llaman a las herramientas o aplicaciones que corresponda.
Ejemplo del sistema operativo Unix es Solaris y HP-UX. Los mayores distribuidores de sistemas UNIX incluyen IBM, HP y SUN.
¿Qué es Linux?
Como ya dijimos anteriormente se confunden los términos Unix y Linux; muchos usuarios se hacen las siguientes preguntas:
- ¿Linux y Unix son lo mismo?
- ¿Cuales son las diferencias entre Unix y Linux?
- ¿Linux es como Unix?
- ¿Linux basado en Unix?
Estas preguntas se pueden responder en una sola linea…
Linux y Unix son diferentes pero tienen similitudes, recuerda que Linux es un clon de Unix.
Linux no es Unix, pero si es similar, podríamos decir que es una continuación de la base del diseño de Unix. Las muchas y excelentes distribuciones Linux son el mejor ejemplo de ello, BSD (Berkley Software Distribution) y su derivado FreeBSD también es otro buen ejemplo (aunque derivo por otro camino).
Podemos decir que un sistema operativo de tipo Unix, es el que funciona de manera similar a los Unix puros sin que sea necesario que cumpla con la especificación UNIX (SUS), o POSIX (interfaz portátil del sistema operativo). De todas formas si se quiere que The Open Group lo certifique como Unix, debe cumplir el standard.
Pocos sistemas UNIX están registrados como tal, podemos hablar de macOS, Solaris y AIX. Y si tenemos en cuanta POSIX, Linux lo consideramos como un sistema operativo parecido a Unix, pero no Unix
Si leemos el archivo readme del kernel Linux, nos dice que Linux es un clon de UNIX desarrollado desde cero por Linus Torvalds y su equipo. OJO!!!, este texto es solo para cumplir el standard POSIX, porque si el kernel Linux fue escrito desde cero y se diseño para que trabajara como Unix, pero no contiene el código original de Unix… no lo podríamos considerar como derivado de Unix.
Otro detalle importante que muchos pasan por alto y que deriva en equivocaciones, es que Linux solo es el núcleo y no el sistema operativo completo. Otros desarrolladores empaquetan el kernel Linux en sus distribuciones, ahora si que se considera un sistema operativo completo.
No lo olvides, Linux es solo el Kernel, solo las distribuciones Linux se consideran como sistemas operativos. Si lo comparamos con UNIX, este si es un sistema operativo completo pues todo proviene del mismo desarrollador.
En resumen, una distribución Linux es un sistema operativo creado sobre el kernel de Linux al que se adjuntan varias aplicaciones entre las que se encuentra el sistema de administración de paquetes.
Una distribución estándar Linux consta de un kernel Linux, un sistema GNU, utilidades GNU, bibliotecas, compiladores, software adicional, documentación, un sistema de ventanas, un administrador de ventanas y un entorno de escritorio. Normalmente todo es gratuito y de código abierto.
Diferencias entre UNIX y Linux
Diferencias entre UNIX y Linux
Diferencias de concepto
UNIX | LINUX |
---|---|
Sistema operativo original desarrollado por AT&T | Núcleo del sistema operativo GNU / Linux |
Código original desarrollado por AT&T | Código original desarrollado por Linus y la Fundación GNU |
La marca UNIX está certificada por Open Group | La marca Linux es propiedad de Linus Trovalds y es administrada por Linux Mark Institute de la Fundación Linux |
System-V Unix y derivados como IBM-AIX y HP-UX; Berkeley Unix y derivados como FreeBSD y macOS | GNU / Linux y derivados como Debian o Fedora |
Unix es parcialmente de código abierto con la Licencia BSD. La fuente de System-V Unix tiene licencia comercial patentada | Código abierto con licencia copyleft |
Los derivados son mantenidos por empresas incluyendo el núcleo | Las distros son mantenidas por la comunidad aplicando el kernel de Linux Torvalds |
Diseñado para un público minoritario y para un conjunto definido de plataformas y aplicaciones | Diseñado como plataforma escalable de uso general |
Soporte con coste | Soporte comunitario gratuito / Soporte con coste de proveedores de servicios |
Interfaces muy estables | Interfaces que evolucionan constantemente con el peligro de inestabilidad u otros problemas derivados |
Pocas actualizaciones, no son necesarias | Debido a la rápida evolución de las herramientas, las actualizaciones son frecuentes |
Admite pocos sistemas de archivos | Admite la mayoría de sistemas de archivos |
Cada variante tiene su potente herramienta de administración de sistema | Las herramientas de administración de sistema son muy limitadas y a veces de terceros |
Indicada para servidores y usuarios con altos conocimientos | Valida para la mayoría de entornos |
Las herramientas en línea de comandos y las utilidades gráficas son similares a Linux | Las herramientas en línea de comandos y las utilidades gráficas son similares a Unix |
Diferencias de desarrollo
UNIX | LINUX | |
---|---|---|
Desarrollo | Desarrollado en Bell Labs por Kenneth Lane Thompson, Dennis Ritchie y otros apoyos | Inspirado en MINIX (similar a Unix), Linux fue desarrollado por Linus Torvalds. Al ser de código abierto muchos programadores colaboran con la comunidad linux |
Escrito en | C y lenguaje ensamblador | C y otros lenguajes de programación |
OS family | Unix | Unix-like |
Estado del desarrollo | Actual | Actual |
Tipo de fuente | Normalmente de código cerrado. Existen sistemas operativos Unix open source como illumos y BSD; FreeBSD, Solaris, OpenIndiana, OmniOS, etc | Open source |
Lenguaje | Ingles | Muchos idiomas |
Primer lanzamiento | Fue lanzado externamente en octubre de 1973, pero se venia utilizando en Bell Labs desde 1970 | Septiembre de 1991 |
Tipo de kernel | Existen versiones monolíticas pero como norma general se compone de varios microkernel | Kernel monolítico (al ser monolítico se vuelve muy pesado en maquinas antiguas) |
Tipo de licencia | Puede variar, algunas son propietarias y otras free/OSS | GNUv2 (GPL General Public License) |
Sitio web oficial | http://opengroup.org/unix | https://www.kernel.org |
Interfaz de usuario predeterminada | CLI (Command Line Interface) and Graphical (X Windows system) | Unix shell |
Interfaz en modo texto | Originalmente Bourne shell, pero es compatible con otros interpretes de comandos | Por defecto BASH, pero es compatible con otros interpretes de comandos |
Coste ($ / €) | Depende de la empresa propietaria. Ya vimos en esta tabla que también existen versiones open source | Lo puedes conseguir y usar libremente. Existen distribuciones con añadidos específicos, normalmente empresariales que si tienen un coste |
Algunos ejemplos | IBM AIX, Solaris, HP-UX, Darwin, macOS X, etc... | Debian, Ubuntu, Fedora, Red Hat, Android, etc... |
Detección y solución de errores | Los errores son poco comunes, si se da el caso, y como suelen ser sistemas propietarios deberás esperar el parche correspondiente | Linux está impulsado la comunidad open, muchos desarrolladores de todo el mundo trabajan continuamente en el código. La detección y solución de errores es bastante rápida |
Seguridad | Unix se considera muy seguro. Es aún más difícil de infectar que linux. Actualmente no hay virus en propagación activos | Linux se considera muy bien protegido contra el malware. Esto es por la falta de acceso a la raíz, y las rápidas actualizaciones. Desde 2018, no se ha extendido ningún nuevo virus |
El Kernel: Unix vs Linux
Como podemos apreciar en la siguiente imagen, existen tres tipos de kernel: monolítico, micro e híbrido (combinación de monolítico y micro).
Tipos de Kernel
En una arquitectura de núcleo monolítico, todo el sistema operativo funciona desde un único núcleo. Este sistema es el más extendido pero tiene la pega de requerir un hardware más potente, pues utiliza una interfaz virtual de alto nivel.
El núcleo de Linux tiene características similares a los de Unix, pero existen puntos que los diferencian en gran medida.
En la arquitectura de microkernel, los servicios centrales del sistema se ejecutan en un solo proceso, el resto de servicios en diferentes procesos. El tamaño del código fuente de los micro es mucho menor, eso repercute de manera considerable en un rendimiento superior.
Características del Kernel
Kernel Unix | Kernel Linux | |
---|---|---|
Tipo | El núcleo de Unix puede ser monolítico, microkernel o híbrido, depende del sistema elegido | Monolítico |
Agregar o eliminar características | El kernel Unix necesita la vinculación estática de los nuevos sistemas que se agregan | Los componentes del núcleo, las unidades de dispositivo, se pueden agregar y eliminar dinámicamente como módulos. Esta característica se conoce como módulos de núcleo cargables (LDM) |
Streams | En Unix se incluye el subsistema E/S de secuencias como interfaz para escribir controladores de dispositivo, controladores de terminal, etc... | En Linux, no hay subsistemas E/S de secuencias |
Sistema preventivo | Solo algunos son preventivos, como por ejemplo el de Solaris | Normalmente no |
Subprocesos multiples (LWP) | En Unix, el LWP se basa en hilos del kernel | En Linux, LWP se crea llamando a la función clone (). Estos procesos pueden compartir memoria física, archivos abiertos, espacio de direcciones, etc... |
Hilos del Kernel | Los hilos se utilizan para cambiar los procesos | Solo para ejecutar códigos del kernel de forma periódica |
Comparamos Unix con Linux
Las comparaciones son odiosas, pero una vez que ya conocemos las principales diferencias entre Unix y Linux creo que es necesario.
Linux vs Solaris
Solaris (Oracle Solaris) es un sistema operativo de la familia Unix, lo comparamos con Linux.
- Linux admite más arquitecturas de sistema que Solaris. Linux es más portátil.
- En los últimos años linux hace un gran esfuerzo en la integración del nuevo hardware, Solaris no es tan rápido.
- La estabilidad de Solaris es algo sorprendente, le das con un martillo y no se rompe, ja.
Existen otras diferencias técnicas entre los dos, pero aquí solo hemos hablado de uso y rendimiento.
Conclusión final
Unix es el padre de todos los sistemas operativos actuales eso está claro. La principal diferencia entre los dos no es su presentación, sino en cómo funcionan, principalmente el núcleo.
Linux (y otros sistemas tipo Unix) son libres, los sistemas Unix no lo son (salvo excepciones ya mencionadas). El coste se debe tener en cuenta, y linux en este tema es el mejor.
También destacamos que Linux es más flexible si lo comparamos con los Unix puros, y es uno de los detalles que hace que linux sea tan popular. Los comandos Unix y Linux, no son los mismos pero si muy similares, es como si hablamos de Debian y RHEL.
Después de este articulo me gustaría que se empiecen a corregir informaciones erróneas como esta…
Unix sysadmin since 1991 dice: Ubuntu es una buena opción para comenzar con Unix, ya que es muy fácil de instalar y viene con una buena GUI también.
o como esta otra…
Pasos para instalar Unix: Instale Red Hat Enterprise Linux 7 de 64 bits (RHEL), descargue RHEL desde ………
Canales de Telegram: Canal SoloLinux – Canal SoloWordpress
Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.
¡Genial!
Muy bueno, detallado y esclarecedor.
A ver si empezamos ya a desbancar mitos.
¡Gracias!
Gracias por tu comentario Henry.
Pensaba,cómo la mayoría,que UNIX y LINUX eran lo mismo.Muchas gracias por la aclaración Sergio
Es un error extendido Manex. Gracias por tu comentario.
Ya sabía que no eran lo mismo pero no con tanto detalle ni en que puntos… Gracias de nuevo Sergio.
Gracias a ti por visitarnos Carlos.
Un saludo
Buen articulo. Gracias por la info.
¿Es muy importante el color del gato, o lo verdaderamente importante es que el gato cace ratones?.
jajaj muy bueno.
Lo más importante es que cace ratones, es evidente. Pero no sabes el color de tu gato???, dependiendo del color tendra un tipo de pelo u otro, por tanto diferentes cuidados, no te parece?
Un saludo.
Pues yo creo que la diferencia entre un gato atigrado y un tigre, son más que colores… el gato puedes tenerlo en cualquier casa (portátil) y a alguien puede sobrarle una cría (gratuito).
Quise decir portable, no portátil.
Excelente reflexión, plas,plas,plas, 🙂