¿Cuál es la diferencia entre UNIX y Linux? ¿Y qué es un núcleo?

 ¿Cuál es la diferencia entre UNIX y Linux? ¿Y qué es un núcleo?


Unix es un sistema operativo antiguo que data de la década de 1970. Era una época en la que una computadora era muy cara y era muy valioso que muchas personas pudieran usarla. Fue imitado por muchos otros sistemas operativos y Linux es un miembro de esa familia de imitadores.


"Linux", como nombre propio, se refiere únicamente al núcleo, que es el software que ejecuta el sistema en su totalidad. La CPU tiene dos modos principales de funcionamiento: sistema operativo y aplicación (para simplificar un poco). En el modo sistema operativo, solo se ejecuta el código del núcleo y en el modo aplicación se ejecutan todos los programas y aplicaciones. El acceso directo al hardware, como enviar comandos a un disco duro, no es posible en el modo aplicación, y el núcleo se encarga de gestionar esas cosas para las aplicaciones, ya que ejecuta los comandos en nombre de las aplicaciones y también impone reglas, como, por ejemplo, si un usuario no quiere que otros usuarios lean sus archivos, Linux no lo permitirá (excepto el usuario administrador). El núcleo se encarga de todas las tareas múltiples, la separación de aplicaciones, la asignación de memoria, la gestión de archivos y directorios, el bloqueo de aplicaciones que no funcionan correctamente, etc.


Si Linux es solo el núcleo, ¿qué aplicaciones ejecuta? La respuesta tradicional son las aplicaciones del proyecto GNU, de la Free Software Foundation. Estas completan el objetivo de semejanza a Unix que Linux proporciona con el procesamiento común, en su mayoría aplicaciones de línea de comandos que van con Linux. Ahora bien, no tienen por qué ser específicamente aplicaciones GNU, pero revisar las aplicaciones fundamentales del sistema operativo es una tarea enorme.


Así que ahora tienes un sistema operativo completo, que se inicia, detecta el hardware y ejecuta las primeras aplicaciones que te proporcionan una pantalla de inicio de sesión, etc.





El núcleo y el sistema operativo son términos un tanto vagos, no hay un significado exacto y preciso. Es como la diferencia entre un pueblo y una ciudad: hay personas que te darán definiciones muy específicas y precisas, y otras que te darán una definición específica y precisa que se excluye mutuamente.


Pero en términos generales:


Un núcleo es el software que organiza todo el hardware y proporciona una única plataforma para que todo lo demás en la computadora funcione, de modo que el resto del software pueda trabajar en conjunto. Puede tener un navegador web que se conecta a sitios web, mientras que Steam está descargando un juego y también está jugando a un juego en línea que también se conecta a Internet. El núcleo es el que determina cómo coordinar todas estas cosas para que todos los programas tengan tiempo en la CPU para ejecutarse, ninguno de ellos esté usando la RAM que los demás están usando al mismo tiempo, y todos puedan compartir una antena de radio que se encarga de la señalización wifi.


Un sistema operativo incluye un núcleo y, normalmente, también muchas cosas adicionales, y es el software de base destinado a hacer que el sistema sea realmente utilizable para los seres humanos. Por ejemplo, el sistema operativo MacOS incluye un entorno de escritorio gráfico completo, incluye Finder y muchas otras cosas. El escritorio gráfico de MacOS no está en el núcleo (el núcleo solo sirve para administrar el hardware y coordinar las cosas entre él), sino que es un paquete de software con el sistema destinado a permitir que un usuario humano realmente lo use.





UNIX era un sistema operativo creado en Bell Labs hace décadas, pero hoy UNIX es más bien una "variante" de otros sistemas operativos. Básicamente: UNIX era tan popular que mucha gente lo copió, y el UNIX original está prácticamente muerto, así que hoy "UNIX" sólo significa un sistema operativo que adopta por completo gran parte de cómo funcionaba originalmente UNIX. A menudo significa que un sistema es compatible con POSIX - POSIX fue básicamente un esfuerzo por hacer un estándar oficial basado en UNIX para que todos estos muchos sistemas operativos que imitaban a UNIX pudieran ponerse de acuerdo sobre algunas características básicas para que el software escrito para un sistema operativo de tipo UNIX pudiera funcionar en general en cualquier otro.


Técnicamente, Linux no es un sistema operativo, es solo un núcleo. Habitualmente se incluye junto con otro software, como la cadena de herramientas GNU, en las denominadas "distribuciones Linux", que son un sistema operativo completo.



Comentarios

Entradas más populares de este blog

Las pirámides de Egipto no fueron construidas por esclavos

¿Por qué no se permite usar auriculares u otros dispositivos electrónicos durante el despegue y aterrizaje del avión?

¿Cuánto tiempo tarda el agua en llegar a la vejiga y provocar ganas de orinar?