En ce qui concerne n'importe quel système d'exploitation Linux, y compris Ubuntu, les gens ont tendance à distinguer les termes noyau et système d'exploitation . C'est correct pour Windows et la famille OS X, mais pourquoi est-il si répandu dans la communauté Linux? Existe-t-il un moyen de mettre à jour le noyau du système d'exploitation, sans avoir le système d'exploitation lui-même mis à jour? Ou vice versa? Si oui, comment cela peut-il être utile?
9
Réponses:
L'ensemble du système GNU / Linux est construit en utilisant l'approche modulaire. Vous pouvez principalement mettre à niveau ( remplacer en général) un seul module sans en toucher d'autres. Le module en question peut être un chargeur de démarrage, un noyau, un shell, une commande, un environnement de bureau, une application GUI, peu importe…
Bien sûr, c'est vrai tant que vous êtes capable de gérer correctement les dépendances. Dans l'ensemble des distributions autour d'Ubuntu, APT est utilisé pour résoudre automatiquement les dépendances.
Vous pouvez installer une autre version du noyau à l'aide de la commande:
Tant qu'APT le permet, vous devriez pouvoir redémarrer et utiliser la version sélectionnée du noyau, qu'elle soit générique, à faible latence, etc. Ou vous construisez vous-même une version du noyau, par exemple Linux en temps réel , et l'utilisez avec votre système actuel .
la source
/etc/issue
fourni par lebase-files
paquet. Comme je l'ai déjà écrit, cela n'a aucun rapport avec la version du noyau.Comme vous le savez, le noyau est une partie importante du système d'exploitation, dans les distributions GNU / Linux, vous pouvez facilement mettre à jour le noyau sans toucher à une autre partie du système d'exploitation. Cependant, nous mettons simplement à jour une partie de notre système d'exploitation.
Un système d'exploitation est composé de deux parties, l'espace noyau et l'espace utilisateur.
Alors oui, vous pouvez mettre à jour votre espace noyau sans toucher à votre espace utilisateur si seule la nouvelle version est compatible avec votre espace utilisateur actuel.
Et à propos de la mise à jour des outils de l'espace utilisateur, c'est un autre oui.
Lorsque vous exécutez:
S'il y avait une mise à jour disponible pour le noyau, vous obtiendrez:
donc vous ne faites que mettre à jour votre espace utilisateur et quand vous exécutez quelque chose comme
vous mettez à jour tout, y compris le noyau.
Pour mettre à niveau uniquement votre noyau vers une version plus récente, utilisez quelque chose comme:
pour trouver une liste des noyaux plus récents, puis installez-le en tant que nouveau package, par exemple:
la source
sudo apt upgrade
mettra également à jour le noyau si de nouvelles versions sont disponibles.sudo apt full-upgrade
enlèvera bien les fesses, ce quiasudo apt upgrade
ne fera pas.upgrade
sous-commande, il n'installera aucun nouveau paquet et ne supprimera aucun paquet, c'est pourquoi nous l'utilisonsdist-upgrade
. fonctionne au moinsapt-get
de cette façon;) j'ai donc mis à jour mes commandes pour éviter toute confusion.apt
commande, après une courte recherche, il semble que votre réponse est correcte maintenant,apt
etapt-get
gérez la chose différemment, voir hiroom2.com/2016/05/20/ubuntu-16-04-debian-8-apt -commande /… . Donc quelques connaissances pour nous deux ...Tout d'abord, quelques clarifications, car je sens que vous ne comprenez pas comment les systèmes GNU / Linux ont vu le jour. Soyez indulgent si ce n'est pas nouveau pour vous:
"Kernel" n'est pas seulement un autre programme qui s'exécute, mais c'est la partie du système d'exploitation fournissant les fonctions de base: si vous voulez démarrer un programme (par exemple, vous tapez "ls" sur la ligne de commande), le binaire doit être chargé à partir du disque (qui inclut certaines opérations du système de fichiers pour le localiser et une certaine gestion des fichiers pour le lire), puis un "environnement de processus" est créé: la mémoire est attribuée, un numéro de processus est émis, etc., etc. Toutes les anciennes activités (FS, lecture depuis un fichier, ...) sont gérés par les bibliothèques système, mais ces dernières sont des fonctions du noyau. Dans un certain sens, le noyau "est l'OS" et tout le reste n'est que décoration autour de lui.
"Linux" est en fait (seulement!) Un noyau sans aucune autre partie d'un OS autour. Linus Torvalds a commencé à l'écrire en prenant le noyau du système d'exploitation du modèle MINIX d'Andrew Tanenbaums et en le complétant pour qu'il devienne un noyau complet et réel. À ce jour, il y a Linus (et beaucoup d'autres qui contribuent / ont contribué) qui développent ce noyau. Ce noyau est toujours très similaire à UNIX, mais PAS à un noyau UNIX.
"GNU" a commencé comme une initiative pour "améliorer" de nombreuses commandes UNIX courantes. Je ne discuterai pas s'ils ont réussi ou non, mais ils ont certainement écrit beaucoup de logiciels et à un moment donné, ils avaient une collection de programmes utilitaires. Ils ont même commencé à développer leur propre noyau OS (HURD), qui était basé en grande partie sur UNIX, mais qui était définitivement différent. Mais à ce jour, HURD est à ses débuts et n'est guère une solution de travail. "GNU" btw. est l'abréviation de "GNU (is) Not UNIX" - ils ont essayé de surmonter certaines limitations (perçues ou réelles) d'UNIX avec l'intention de créer un successeur d'UNIX (encore une fois: je ne veux pas entrer dans la discussion s'ils ont réussi ou pas - je m'en fiche si c'est "mieux" ou "pire", mais c'est définitivement différent!).
Donc, avec un ensemble d'outils dépourvu de noyau et un noyau dépourvu de jeu d'outils, c'était un développement naturel de réunir ces deux: GNU / Linux a été créé.
Pourtant, pour avoir un système d'exploitation fonctionnel (et fonctionnel), vous avez besoin de plus qu'un simple noyau et un ensemble d'outils: vous avez besoin d'un système de gestion de packages, vous avez besoin de procédures d'installation, vous avez besoin de configurations de modèles, vous avez besoin ...
Plusieurs personnes différentes (ou des groupes de personnes) sont arrivées à cette conclusion et ont utilisé la combinaison GNU / Linux pour créer un système GNU / Linux de leur choix, en ajoutant exactement les choses dont j'ai parlé ci-dessus: elles ont créé un gestionnaire de paquets, un système d'emballage , les procédures d'installation et quoi de plus. Ces différents groupes (respectivement les résultats de leurs efforts) sont ce que sont les différentes distributions. Aujourd'hui, il y a trois gestionnaires de paquets différents en place (apt pour Debian et les systèmes dérivés comme * ubuntu, rpm pour RedHat et les systèmes dérivés comme Fedora, CentOS et plus, pacman pour ArchLinux) mais tous ceux-ci ne font que gérer des paquets de logiciels qui sont (essentiellement) la même chose: ce qui est appelé lorsque vous émettez "ls" ou "df", etc.,
Donc, "en principe", vous pouvez mettre à jour le noyau seul, comme l'ont fait les personnes qui ont créé une distribution à partir de différentes versions de tous les logiciels dont j'ai parlé plus haut.
Mais, et c'est un vrai gros MAIS: parce qu'il n'y a pas seulement le noyau et quelques logiciels supplémentaires mais beaucoup d'autres choses à garder à l'esprit, comme les outils de configuration du système (systemd, que certaines distributions utilisent et d'autres non), le réseau des outils de gestion comme NetworkManager, qui à son tour dépend de certaines versions de la bibliothèque GNOME, etc., etc. - une "distribution" est une chose assez complexe et il y a des chances que si vous essayez de mettre à jour le noyau, vous finissez par mettre à jour beaucoup de d'autres choses en raison des nombreuses interdépendances.
Pourtant, et aussi "en principe", comme ci-dessus: vous pouvez également créer votre propre distribution en téléchargeant toutes les sources, en les compilant, en trouvant un ensemble fonctionnel de combinaisons de versions, en mettant en place un système de packaging (ou en utilisant l'une des existantes) ) - et ainsi de suite, jusqu'à ce que vous disposiez d'un système distribuable, installable et configurable. C'est ce que font les créateurs de distributions comme Ubuntu et ce n'est pas un miracle - juste beaucoup de travail complexe, donc en réalité la plupart des utilisateurs évitent cela et utilisent quelque chose qu'ils peuvent en étant prêts à l'emploi.
J'espère que cela répond à votre question.
la source
La réponse la plus simple n'a rien à voir avec Ubuntu; il est lié à la façon dont GNU / Linux est construit. Si vous essayez de le regarder en tant que développeur système, vous verrez deux mondes, chacun séparé par une bordure nette (l'ABI).
Le monde du noyau, où travaillent les développeurs de bas niveau, est un système à part entière. Il contient tout ce que vous trouverez normalement dans une application régulière. La seule différence est que l'utilisateur n'est pas la personne réelle qui utilise la machine, mais le monde de l'espace utilisateur. L '"application" du noyau est l'homme du milieu, le serveur qui utilise la machine - le fantôme dans le shell.
Maintenant, l'espace utilisateur est le monde normal sur lequel les utilisateurs et les développeurs de tous les jours jouent. Il a des API rigides, des règles, des fichiers et, le plus important, une image abstraite et enfantine de la machine sur laquelle il fonctionne. Étant donné que l'utilisateur ne voit que cette partie et que cela représente 99% de la taille de la distribution, il est facile de le nommer Système d'exploitation. La bonne nomenclature est de l'appeler une distribution de logiciels, créée par une entité (Canonical, Fedora, etc.), utilisant un noyau (Linux, HURD, BSD, etc.), et construite à l'aide d'un ensemble d'outils (généralement fournis par GNU ).
Pour répondre à votre question, dans GNU / Linux (comme dans Windows et OSX, croyez-moi), vous pouvez changer le noyau, pas seulement la version, mais l'architecture entière (Linux Kernel, vs HURD Kernel), et, tant que l'ABI n'est pas touché, ne faites jamais un seul changement dans le monde des utilisateurs ... À l'époque, quand le vrai homme devait construire le noyau à partir des sources, vous pouviez passer par plusieurs changements comme ceux-ci, pour obtenir une webcam USB merdique pour travailler ... Maintenant, avec le noyau modulaire, il vous suffit d'installer un module, et vous obtiendrez un tout nouveau monde de noyau, avec l'ABI (parfois) étendu avec de nouvelles fonctionnalités ...
Encore une fois, c'est la même chose pour l'espace utilisateur. Lorsque vous installez une nouvelle application, à partir, disons, d'un référentiel Ubuntu, 99% du temps, votre plus grande préoccupation est la compatibilité des autres composants de l'espace utilisateur, pas du noyau réel. Il y a des cas, où la version du noyau dicte (via ABI) la gamme de choses qui peuvent être installées dans l'espace utilisateur, mais le but (pour les développeurs, au moins) est de faire disparaître cela ...
Une autre chose à méditer, vous pouvez (et c'est assez facile) créer votre propre distribution GNU / Linux unique en son genre. Obtenez un noyau, quelques scripts simples, plusieurs applications et vous êtes prêt. C'est aussi simple que cela (jetez un oeil aux distributions OpenWRT GNU / Linux, pour les équipements réseau, la distribution entière tient comme 16 Mo, ou plus).
la source
Je suppose qu'ils sont séparés car le noyau est un élément critique. Un noyau avec une régression, ou juste une mise à jour échouée, pourrait faire beaucoup de dégâts. Vous voudrez peut-être le mettre à jour moins fréquemment; ou seulement après avoir attendu un certain temps pour vous assurer que personne ne signale de bogues inquiétants.
Certains utilisateurs avancés ou professionnels recompilent également le noyau pour modifier son comportement afin de mieux répondre à leurs besoins. Dans ce cas, vous ne voudriez évidemment pas qu'il soit automatiquement remplacé par la version d'usine à chaque mise à niveau.
la source