Un système d'exploitation, abrégé sous forme d'OS, est un logiciel qui contrôle les composants matériels d'un système, que ce soit un téléphone, un ordinateur portable ou un bureau. Il est en charge de la communication entre le logiciel et le matériel. Windows XP, Windows 8, Linux et Mac OS X sont tous des exemples de systèmes d'exploitation. Le système d'exploitation se compose de:
Espace du noyau et espace utilisateur
Espace du noyau: Le noyau se trouve dans un état système élevé, qui comprend un espace mémoire protégé et un accès complet au matériel de l'appareil. Cet état système et cet espace mémoire est tout à fait appelé espace de noyau. Dans l'espace du noyau, l'accès principal au matériel et aux services système est géré et fourni en tant que service au reste du système.
Espace utilisateur: Les applications de l'utilisateur sont effectuées dans l'espace utilisateur, où ils peuvent atteindre un sous-ensemble des ressources disponibles de la machine via les appels du système de noyau. En utilisant les services de base fournis au noyau, une application de niveau utilisateur peut être créée comme un logiciel de productivité de jeu ou de bureau par exemple.
Linux
Linux a gagné en popularité au fil des ans en raison de son open source, basé sur une conception de type UNIX, et porté sur plus de plates-formes par rapport à d'autres systèmes d'exploitation concurrents. Il s'agit d'un système d'exploitation, comme indiqué, qui ressemble à un système d'exploitation UNIX OS - un système d'exploitation multi-utilisateur stable, et qui a été assemblé en tant que logiciel libre et open-source pour le développement et la distribution. Ce qui signifie que toute personne ou entreprise a la permission d'utiliser, d'imiter, d'étudier et de modifier le système d'exploitation Linux d'une manière qu'il désire.
Le noyau Linux
Depuis sa première sortie le 17 septembre 1991, le noyau Linux a défié toutes les chances d'être le composant déterminant de Linux. Il a été publié par Linus Torvalds et utilise le GNU / Linux pour décrire le système d'exploitation. Le système d'exploitation Android basé sur le noyau sur les smartphones a fait de Linux sa concurrence pour être la plus grande base de systèmes d'exploitation installés de tous les systèmes d'exploitation à usage général. L'histoire du noyau Linux peut être trouvée ici.
Un noyau peut être monolithique, microkernel ou hybride (comme l'OS X et Windows 7). Le noyau Linux est un noyau de système d'exploitation monolithique qui ressemble au système Unix. La ligne de systèmes d'exploitation Linux communément appelée les distributions Linux est basée sur ce noyau. Le noyau monolithique, contrairement au microkernel, englobe non seulement l'unité de traitement centrale, la mémoire et l'IPC, mais a également des pilotes de périphérique, des appels de serveur système et une gestion du système de fichiers. Ils sont les meilleurs pour communiquer avec le matériel et effectuer plusieurs tâches simultanément. C'est pour cette raison que les processus ici réagissent à un rythme rapide.
Cependant, les quelques revers sont l'énorme installation et l'empreinte mémoire nécessaire et une sécurité inadéquate car tout fonctionne en mode superviseur. En revanche, un micro-cercle peut réagir lentement aux appels d'application en tant que services utilisateur et le noyau est séparé. Ils sont donc plus petits par rapport au noyau monolithique. Les microkernels sont facilement extensibles, mais plus de code sont nécessaires pour écrire un microkernel. Le noyau Linux est écrit dans les langages de programmation C et d'assemblage.
La relation du noyau Linux avec le matériel
Le noyau peut gérer le matériel du système à travers ce qui est appelé interruption. Lorsque le matériel veut s'interfacer avec le système, une interruption est émise qui interrompt le processeur qui à son tour fait de même vers le noyau. Pour fournir une synchronisation, le noyau peut désactiver les interruptions, que ce soit un seul ou tous. Dans Linux, cependant, les gestionnaires d'interruption ne s'exécutent pas dans un contexte de processus, ils s'exécutent plutôt dans un contexte d'interruption non associé à aucun processus.Ce contexte d'interruption particulier existe uniquement pour laisser un gestionnaire d'interruption réagir rapidement à une interruption individuelle, puis à quitter enfin.
Ce qui rend le noyau Linux différent des autres noyaux Unix classiques?
Des différences significatives existent entre le noyau Linux et les noyaux Unix classiques; comme indiqué ci-dessous:
Composants du noyau Linux
Un noyau est simplement un gestionnaire de ressources; La ressource gérée peut être un processus de processus, de mémoire ou de matériel. Il gère et arbitre l'accès à la ressource entre plusieurs utilisateurs concurrents. Le noyau Linux existe dans l'espace du noyau, sous l'espace utilisateur, où les applications de l'utilisateur sont exécutées. Pour que l'espace utilisateur communique avec l'espace du noyau, une bibliothèque GNU C est incorporée qui fournit un forum pour l'interface d'appel système pour se connecter à l'espace du noyau et permettre la transition vers l'espace utilisateur.
Le noyau Linux peut être classé en trois niveaux primaires:
La perspective architecturale du noyau Linux se compose: interface d'appel système, gestion des processus, système de fichiers virtuel, gestion de la mémoire, pile de réseau, architecture et pilotes de l'appareil.
Appels et interruptions du système
Les applications transmettent des informations au noyau via les appels système. Une bibliothèque contient des fonctions avec lesquelles les applications fonctionnent. Les bibliothèques alors, via l'interface d'appel système, ordonne au noyau d'effectuer une tâche qui souhaite l'application. Qu'est-ce qu'un appel système Linux?
Les interruptions offrent un moyen par lequel le noyau Linux gère le matériel des systèmes. Si le matériel doit communiquer avec un système, une interruption sur le processeur fait l'affaire, et cela est transmis au noyau Linux.
Interfaces du noyau Linux
Le noyau Linux propose diverses interfaces aux applications d'espace utilisateur qui effectuent une variété de tâches et ont des propriétés différentes. Il existe deux interface de programmation d'applications distinctes (API); le Espace des utilisateurs du noyau et le noyau interne. L'API Linux est le Espace des utilisateurs de noyau API; Il donne accès à des programmes dans l'espace utilisateur dans les ressources et services système du noyau. Il est composé de l'interface d'appel système et des sous-programmes de la bibliothèque GNU C.
Linux Abi
Cela fait référence à l'espace de l'utilisateur du noyau ABI (interface binaire d'application). Ceci est expliqué comme l'interface qui existe entre les modules de programme. Lorsque vous comparez API et ABI, la différence est que les ABI sont utilisés pour accéder aux codes externes qui sont déjà compilés tandis que l'API sont des structures de gestion des logiciels. Définir un ABI important est majoritairement le travail des distributions Linux que pour le noyau Linux. Un ABI spécifique doit être défini pour chaque ensemble d'instructions, par exemple, x86-64. Les utilisateurs finaux des produits Linux sont intéressés par l'ABIS plutôt que par l'API.
Interface d'appel système
Comme discuté précédemment, cela joue un rôle plus important dans le noyau. C'est une dénomination de toute la partie de tous les appels système existants.
La bibliothèque standard C
Tous les appels système du noyau sont dans la bibliothèque GNU C tandis que l'API Linux est composé de l'interface d'appel système et de la bibliothèque GNU C, également appelée GLIBC.
Interface du système d'exploitation portable (POSIX)
POSIX est un terme collectif de normes pour maintenir la compatibilité entre les systèmes d'exploitation. Il déclare l'API avec les interfaces utilitaires et les coquilles de ligne de commande. L'API Linux, non seulement a les fonctionnalités utilisables définies par le POSIX, mais a également des fonctionnalités supplémentaires dans son noyau:
Plus d'informations sur la norme POSIX sont là.
Les versions précédentes du noyau Linux étaient de telle manière que toutes leurs parties étaient statiques fixées en un, monolithique. Cependant, les noyaux Linux modernes ont la plupart de leurs fonctionnalités contenues dans des modules qui sont mis dans le noyau dynamiquement. Contrairement aux types monolithiques, est appelé grains modulaires. Une telle configuration permet à un utilisateur de charger ou de remplacer les modules dans un noyau en cours d'exécution sans avoir besoin de redémarrer.
Le module de noyau chargé de Linux (LKM)
La façon de base d'ajouter du code dans le noyau Linux passe par l'introduction de fichiers source à l'arborescence source du noyau. Cependant, vous voudrez peut-être ajouter un code pendant que le noyau fonctionne. Le code ajouté de cette façon est appelé module de noyau chargé. Ces modules particuliers effectuent diverses tâches mais sont spécifiées en trois: pilotes de périphériques, pilotes de système de fichiers et appels système.
Le module du noyau chargé peut être comparé aux extensions du noyau dans d'autres systèmes d'exploitation. Vous pouvez mettre un module dans le noyau en le chargeant en tant que LKM ou en le liant dans le noyau de base.
Les avantages du LKMS sur la liaison dans le noyau de base:
Utilisations de LKMS
Contrairement à ce que la plupart des gens disent, compiler le noyau Linux est une tâche simple. Ce qui suit est une illustration étape par étape du processus en utilisant l'une des distributions Linux: Fedora 13 KDE. (Il est conseillé de sauvegarder vos données et de plan.conf juste au cas où quelque chose se passe mal)
TAR XVJF Linux-2.6.37.le goudron.bz2 |
Il est possible de mettre à niveau un noyau Linux d'une ancienne version à une version plus récente, tout en conservant toutes les options de configuration de la version précédente. Pour y parvenir, il faut d'abord sauvegarder le .configurer fichier dans le répertoire source du noyau; C'est dans le cas où quelque chose se passe mal lorsque vous essayez de mettre à niveau votre noyau. Les étapes sont:
Télécharger la nouvelle source; Les développeurs du noyau Linux comprennent que certains utilisateurs peuvent ne pas vouloir télécharger le code source complet pour les mises à jour du noyau, car cela perdrait du temps et la bande passante. Par conséquent, un patch est mis à disposition qui peut mettre à niveau une ancienne version du noyau. Les utilisateurs n'ont qu'à savoir quel patch s'applique à une version particulière, car un fichier de patch de noyau ne mettra à jour le code source qu'à partir d'une version spécifique. Les différents fichiers de correctifs peuvent être appliqués de la manière suivante;
Voici des étapes plus détaillées pour le processus pour mettre à jour votre noyau de Source sur Debian et des binaires pré-construits sur Centos et Ubuntu.
Le noyau Linux agit principalement comme un gestionnaire de ressources agissant comme une couche abstraite pour les applications. Les applications ont une connexion avec le noyau qui à son tour interagit avec le matériel et les services les applications. Linux est un système multitâche permettant à plusieurs processus d'exécuter simultanément. Le noyau Linux est populaire en raison de sa nature open source qui permet aux utilisateurs de modifier le noyau vers ce qui leur convient et leur matériel. Par conséquent, il peut être utilisé dans une variété d'appareils, contrairement à d'autres systèmes d'exploitation.
La caractéristique modulaire du noyau Linux ajoute plus de frisson à ses utilisateurs. Cela est dû à la grande variété de modifications qui peuvent être apportées ici sans redémarrer le système. La flexibilité donne à ses utilisateurs une grande pièce pour actualiser leur imagination.
De plus, la nature monolithique du noyau est un grand avantage car elle a une capacité de traitement élevée que le micro-noyau. Le principal revers avec le type de noyau Linux est que si l'un de ses services échoue, alors l'ensemble du système tombe avec. Les dernières versions ont été conçues d'une manière que si un nouveau service est ajouté, il n'est pas nécessaire de modifier l'ensemble du système d'exploitation. Ceci est une amélioration par rapport aux versions précédentes.