Cuando se trata de cualquier sistema operativo Linux, incluido Ubuntu, las personas tienden a distinguir los términos kernel y sistema operativo . Esto es correcto para Windows y la familia OS X, pero ¿por qué está tan extendido entre la comunidad Linux? ¿Hay alguna manera de actualizar el núcleo del sistema operativo, sin tener el sistema operativo actualizado? ¿O viceversa? Si es así, ¿cómo puede ser útil?
9
Respuestas:
Todo el sistema GNU / Linux se construye utilizando el enfoque modular. En su mayoría, puede actualizar ( reemplazar en general) un solo módulo sin tocar otros. El módulo en cuestión puede ser un gestor de arranque, kernel, shell, comando, entorno de escritorio, aplicación GUI, lo que sea ...
Por supuesto, es cierto siempre que pueda administrar las dependencias correctamente. En el conjunto de distribuciones alrededor de Ubuntu, APT se usa para resolver dependencias automáticamente.
Puede instalar otra versión del kernel usando el comando:
Siempre y cuando APT lo permita, debería poder reiniciar y usar la versión seleccionada del núcleo, ya sea genérica, de baja latencia, etc. O puede construir una versión del núcleo usted mismo, por ejemplo , Linux en tiempo real , y usarla con su sistema actual .
fuente
/etc/issue
proporcionado por elbase-files
paquete. Como ya he escrito, no está relacionado con la versión del kernel.Como sabe, el núcleo es una parte importante del sistema operativo, en las distribuciones de GNU / Linux puede actualizar fácilmente el núcleo sin tocar otra parte del sistema operativo. Sin embargo, simplemente estamos actualizando una parte de nuestro sistema operativo.
Un sistema operativo se compone de dos partes, espacio de kernel y espacio de usuario.
Entonces, sí, puede actualizar su espacio de kernel sin tocar su espacio de usuario si solo la nueva versión es compatible con su espacio de usuario actual.
Y sobre la actualización de las herramientas de espacio de usuario, es otro sí.
Cuando corres:
Si hubiera una actualización disponible para el núcleo, obtendrá:
así que solo está actualizando su espacio de usuario y cuando ejecuta algo como
está actualizando todo, incluido el kernel.
Para actualizar solo su Kernel a una versión más nueva, use algo como:
para encontrar una lista de núcleos más nuevos, luego instálelo como un nuevo paquete, por ejemplo:
fuente
sudo apt upgrade
también actualizará el kernel si hay nuevas versiones disponibles.sudo apt full-upgrade
eliminará bien el culo de los paquetes, lo queasudo apt upgrade
no hará.upgrade
subcomando, no instalará ningún paquete nuevo y tampoco elimina ningún paquete, por eso lo usamosdist-upgrade
. al menosapt-get
funciona de esta manera;) así que actualicé mis comandos para evitar confusiones.apt
-command, después de una breve investigación se ve que su respuesta es correcta ahora,apt
yapt-get
ocupe de lo diferente, veo hiroom2.com/2016/05/20/ubuntu-16-04-debian-8-apt -command / ... . Así que algo de conocimiento para los dos ...Primero, algunas aclaraciones, porque siento que no entiendes cómo surgieron los sistemas GNU / Linux. Ten paciencia conmigo si esto no es nada nuevo para ti:
"Kernel" no es solo otro programa que se ejecuta, sino que es la parte del sistema operativo que proporciona las funciones básicas: si desea iniciar un programa (digamos que escribe "ls" en la línea de comando) el binario debe cargarse desde el disco (que incluye algunas operaciones del sistema de archivos para localizarlo y algún manejo de archivos para leerlo), luego se crea un "entorno de proceso": se asigna memoria, se emite un número de proceso, etc., etc. Todas las actividades anteriores (FS, lectura de archivo, ...) son manejados por las bibliotecas del sistema, pero las últimas son funciones del núcleo. En cierto sentido, el núcleo "es el sistema operativo" y todo lo demás es solo decoración a su alrededor.
"Linux" es de hecho (¡solo!) Un núcleo sin otras partes de un sistema operativo. Linus Torvalds comenzó a escribirlo tomando el núcleo del sistema operativo de la plantilla MINIX de Andrew Tanenbaums y completándolo para que fuera un núcleo real y funcional. Hasta el día de hoy, hay Linus (y muchos otros que contribuyen / han contribuido) que desarrollan este núcleo. Este núcleo sigue siendo muy similar a UNIX, pero NO es un núcleo UNIX.
"GNU" comenzó como una iniciativa para "mejorar" muchos comandos comunes de UNIX. No discutiré si tuvieron éxito o no, pero definitivamente escribieron mucho software y en un momento tuvieron una colección de programas de utilidad. Incluso comenzaron a desarrollar un núcleo de sistema operativo propio (HURD), que se basaba en gran medida en UNIX, pero definitivamente era diferente. Pero hasta el día de hoy HURD está en su desarrollo inicial y apenas es una solución que funcione. "GNU" por cierto. es la abreviatura de "GNU (is) Not UNIX" - trataron de superar algunas limitaciones (percibidas o reales) de UNIX con la intención de crear un sucesor para UNIX (de nuevo: no quiero entrar en la discusión si tuvieron éxito o no, no me importa si es "mejor" o "peor", ¡pero definitivamente es diferente!).
Entonces, con un conjunto de herramientas que carecen de un núcleo y un núcleo que carece de un conjunto de herramientas, fue un desarrollo natural juntar estos dos: se creó GNU / Linux.
Aún así, para tener un SO operativo (y viable) necesita algo más que un núcleo y un conjunto de herramientas: necesita un sistema de gestión de paquetes, necesita procedimientos de instalación, necesita configuraciones de plantilla, necesita ...
Varias personas diferentes (o grupos de ellos) llegaron a esta conclusión y usaron la combinación GNU / Linux para crear un sistema GNU / Linux de su agrado, agregando exactamente las cosas de las que hablé anteriormente: crearon un administrador de paquetes, un sistema de empaque , procedimientos de instalación y qué más. Estos diferentes grupos (respectivamente, los resultados de sus esfuerzos) son las diferentes distribuciones. Hoy en día existen tres administradores de paquetes diferentes (aptos para Debian y sistemas derivados como * ubuntu, rpm para RedHat y sistemas derivados como Fedora, CentOS y más, pacman para ArchLinux) pero todos estos solo administran paquetes de software que es (esencialmente) lo mismo: cómo se llama cuando emite "ls" o "df", etc.,
Entonces, "en principio" puede actualizar el núcleo solo, como lo hicieron las personas que crearon una distribución a partir de varias versiones de todo el software que mencioné anteriormente.
Pero, y este es un gran PERO: porque no solo hay el kernel y algún software adicional, sino muchas otras cosas a tener en cuenta, como las herramientas de configuración del sistema (systemd, que algunas distribuciones usan y otras no), la red herramientas de administración como NetworkManager, que a su vez depende de algunas versiones de la biblioteca GNOME, etc., etc. - una "distribución" es algo bastante complejo y es probable que si intentas actualizar el kernel termines actualizando mucho otras cosas debido a las muchas interdependencias.
Aún así, y también "en principio", como arriba: también puede crear su propia distribución descargando todas las fuentes, compilándolas, encontrar un conjunto de combinaciones de versiones que funcionen, poner algún sistema de empaque en su lugar (o usar uno de los existentes) ) - y así sucesivamente, hasta que tenga un sistema distribuible, instalable y configurable. Esto es lo que hacen los creadores de distribuciones como Ubuntu y no es un milagro, solo un montón de trabajo complejo, por lo que en realidad la mayoría de los usuarios evitan eso y usan algo que pueden listos para usar.
Espero que esto responda tu pregunta.
fuente
La respuesta más simple no tiene nada que ver con Ubuntu; está relacionado con la forma en que se construye GNU / Linux. Si intenta verlo como un desarrollador de sistemas, verá dos mundos, cada uno separado por un borde afilado (el ABI).
El mundo del kernel, donde trabajan los desarrolladores de bajo nivel, es un sistema en sí mismo. Tiene todo lo que normalmente encontrarás en una aplicación normal. La única diferencia es que el usuario no es la persona real que usa la máquina, sino el mundo del espacio del usuario. La "aplicación" del núcleo es el intermediario, el servidor que usa la máquina, el fantasma en el shell.
Ahora, el espacio de usuario es el mundo normal en el que están jugando los usuarios y desarrolladores cotidianos. Tiene API rígidas, reglas, archivos y, lo más importante, una imagen abstracta e infantil de la máquina en la que se está ejecutando. Dado que el usuario solo está viendo esta parte, y esto representa el 99% del tamaño de distribución, es fácil nombrarlo mal como Sistema Operativo. La nomenclatura correcta es llamarlo una distribución de software, creada por alguna entidad (Canonical, Fedora, etc.), usando un núcleo (Linux, HURD, BSD, etc.), y construida usando un conjunto de herramientas (generalmente proporcionadas por GNU )
Para responder a su pregunta, en GNU / Linux (al igual que en Windows y OSX, confíe en mí), puede cambiar el kernel, no solo la versión, sino toda la arquitectura (Linux Kernel, vs HURD Kernel) y, siempre que el ABI no se toca, nunca haga un solo cambio en el mundo del usuario ... En el pasado, cuando el hombre real tenía que construir el núcleo desde las fuentes, podía realizar varios cambios como estos, para obtener una cámara web USB horrible. para trabajar ... Ahora, con el kernel modular, solo tiene que instalar un módulo, y obtendrá un nuevo mundo de kernel, con el ABI (a veces) extendido con nuevas características ...
De nuevo, lo mismo para el espacio de usuario. Cuando instala una nueva aplicación, desde, digamos, un repositorio de Ubuntu, el 99% del tiempo, su mayor preocupación es la compatibilidad de los otros componentes del espacio de usuario, no el núcleo real. Hay casos en los que la versión del kernel dicta (a través de ABI) el rango de cosas que se pueden instalar en el espacio de usuario, pero el objetivo (al menos para los desarrolladores) es hacer que esto desaparezca ...
Otra cosa para reflexionar es que puede (y es bastante fácil) construir su propia distribución especial de GNU / Linux única en su tipo. Obtenga un kernel, algunos scripts simples, varias aplicaciones y listo. Es así de fácil (eche un vistazo a las distribuciones OpenWRT GNU / Linux, para el equipo de red, toda la distribución cabe como 16Mb, más o menos).
fuente
Supongo que se mantienen separados porque el núcleo es una parte crítica. Un kernel con una regresión, o simplemente una actualización fallida, podría causar mucho daño. Es posible que desee actualizarlo con menos frecuencia; o solo después de esperar un tiempo para asegurarse de que nadie reporte errores preocupantes.
Además, algunos usuarios avanzados o profesionales vuelven a compilar el núcleo para modificar su comportamiento y adaptarlo mejor a sus necesidades. En tal caso, obviamente no querrá que se reemplace automáticamente con la versión de fábrica cada vez que actualice.
fuente