Si j'ai bien compris, c'est le noyau qui interagit avec le matériel et gère la mémoire, les périphériques d'E/S, etc. Le noyau fait donc tout, mais il n'est qu'une partie du système d'exploitation. Qu'y a-t-il d'autre dans un système d'exploitation ? Juste les applications qui sont livrées avec lui ? Par exemple, qu'est-ce qu'Ubuntu a d'autre qu'un noyau ? Le bureau Gnome et quelques autres applications ?
Réponses
Trop de publicités?Le Shell, bien sûr.
La métaphore originale qui a donné naissance au mot "noyau" est trop souvent oubliée. La métaphore est qu'un système d'exploitation est une graine ou une noix. Le "noyau" de la graine est le cœur du système d'exploitation, qui fournit les services du système d'exploitation aux programmes d'application, entouré par le "Shell" de la graine, qui est ce que les utilisateurs voient de l'extérieur.
Certaines personnes veulent lier "kernel" (et, en fait, "Shell") pour être plus spécifiques que cela. Mais en réalité, il y a beaucoup de variations entre les systèmes d'exploitation. La définition d'un "Shell" n'est pas la moindre de ces variations. sh
de Netware à Workplace Shell d'OS/2 en passant par l'explorateur de Windows NT), mais il y a aussi beaucoup de différences d'un système d'exploitation à l'autre en ce qui concerne ce qui fait ou ne fait pas partie d'un "noyau" (qui peut ou non inclure les entrées/sorties sur disque, par exemple). Il est préférable de se rappeler que ces termes sont des métaphores .
Il existe d'autres terminologies. Dans la terminologie de l'ordinateur central d'IBM, le "noyau" dans la métaphore de la graine et de la noix est appelé programme de contrôle . Parmi les autres noms, on peut citer le superviseur , le moniteur , le noyau et le exécutif . La carotte est une autre métaphore biologique assez évidente. Il est intéressant de noter qu'il en va de même pour un autre nom. Harvey M. Deitel, dans son livre Systèmes d'exploitation appelle le programme de contrôle noyau et dit
Le noyau représente normalement une petite partie du code de ce que l'on considère généralement comme l'ensemble du système d'exploitation [...]
Le mot "noyau" vient du latin noyau et désigne le cerneau d'une noix (cf. le latin nux qui signifie "noix"). Ainsi, le fait d'appeler le programme de contrôle "le noyau" revient à faire la même analogie entre le système d'exploitation et l'écrou. Cette analogie n'est pas seulement utilisée pour les systèmes d'exploitation. Si vous êtes familier avec la chimie, par exemple, vous saurez qu'un atome noyau est entouré d'électrons dans coquilles .
Ce que la personne sous pseudonyme new123456
Le texte ci-dessous illustre les erreurs qui résultent de l'oubli des origines de ces métaphores au point de confondre la partie avec le tout et le noyau avec l'ensemble du système d'exploitation. Le fait d'être un programme "userland" ne fait pas du Shell moins l'extérieur du système d'exploitation, ni moins ce qui entoure le noyau. De plus, loin d'être une idée propre au DOS qui ne s'applique pas à Unix au-delà de la version 7, cette idée est à la fois répandue et courante dans le monde Unix.
(Il est ironique de constater que new123456
se trompe de DOSisme. La métaphore du noyau/Shell était assez étrangère au DOS dans ses premières années, qui privilégiait le processeur de commande et similaires, de CP/M. Comme CP/M avant lui, MS-DOS était divisé en deux parties système d'exploitation de base des disques (BDOS), la système d'entrée-sortie de base (BIOS - et non pas le micrologiciel du système), le processeur de commande et le services d'entretien . Le code a été divisé en fichiers de cette manière. C'est un autre exemple, en fait, de la façon dont le noyau/Shell métaphore ne couvre pas vraiment ou ne correspond pas entièrement à l'objectif de la réel dans de nombreux systèmes d'exploitation).
new123456
oublie ce que Deitel a écrit sur le fait que le noyau est une partie de le système d'exploitation global. Un système d'exploitation est à la fois et Shell. C'est en effet la métaphore. M. Deitel n'est pas le seul dans ce cas. Il existe des quantités de livres sur Unix expliquant la métaphore Unix en tant que noix, depuis les années 1980. Je recommande les ouvrages d'Urban et de Tiemann, à savoir Apprendre FreeBSD en 24 heures (SAMS, ISBN 9780672324246), pour la simple raison qu'il contient, à la page 54, un diagramme illustrant la métaphore du système d'exploitation en tant que graine, et - étonnamment - c'est l'un des rares livres à le faire.
Le nom "nucleus" est probablement le nom le plus ancien ; il est certainement antérieur à Unix, qui favorise la terminologie kernel/Shell qui est aujourd'hui - probablement en grande partie grâce à Unix - la plus répandue. Voici ce que l'on trouve dans le livre d'Alan C. Shaw de 1974 La conception logique des systèmes d'exploitation (Prentice-Hall, ISBN 9780135401125) par exemple :
La partie du système qui réside en permanence dans la mémoire centrale est historiquement appelée "mémoire centrale". noyau . Le noyau est généralement constitué d'un ensemble minimal de primitives et de processus pour la gestion des processus, des ressources et des entrées-sorties.
Shaw a aussi un diagramme.
Les autres parties du système d'exploitation comprennent les pilotes qui interagissent avec le noyau, plusieurs couches de programmes d'aide qui gèrent l'interface utilisateur, le réseau et d'autres parties essentielles du système d'exploitation qui se situent entre le noyau et l'application proprement dite.
Pour donner un exemple, j'ai montré la structure d'OS X Comme vous pouvez le voir, au-dessus du noyau (bleu clair) se trouvent plusieurs couches de fonctionnalités "de base", d'outils système, de services et d'API (interface de programmation d'applications) avant même d'arriver à l'interface graphique, qui est ce avec quoi vous travaillez généralement dans les applications proprement dites.
La plupart des systèmes d'exploitation ont une structure similaire, mais il existe une grande marge de manœuvre en ce qui concerne la part du noyau. Voir l'article de Wikipédia sur Micro-noyaux pour une comparaison.
EDIT - Pour répondre à votre commentaire (mon commentaire est devenu un peu long)
Usted pourrait En effet, ce sont toutes ces applications d'assistance qui fournissent l'interface que vous voyez et utilisez.
Une fois que le noyau est démarré (et qu'il a initialisé le matériel), il tente de passer le relais à d'autres parties du système d'exploitation GNU/Linux qui fournissent les fonctionnalités nécessaires au démarrage des services (tels que UDEV qui remplit /dev
avec des interfaces de périphériques bruts permettant aux programmes d'utiliser des éléments tels que les disques durs, les ports série, etc.) et des programmes permettant de configurer le réseau ( dhcpcd ) et des API telles que X.org pour que les applications puissent afficher les fenêtres et les icônes par le biais d'un gestionnaire de fenêtres tel que GNOME o KDE .
Mais oui, vous pourriez simplement démarrer le noyau lui-même, il resterait là avec une invite "J'ai démarré, et maintenant ?