Maison  >  Article  >  Opération et maintenance  >  Existe-t-il une fonction principale dans le noyau Linux ?

Existe-t-il une fonction principale dans le noyau Linux ?

百草
百草original
2023-07-10 10:09:041850parcourir

Il existe une fonction principale dans le noyau Linux, car la fonction principale se trouve en haut du code du noyau Linux. La fonction principale est principalement responsable de l'obtention des variables d'environnement du système à partir du Kernel Control Block (KCB) et de l'initialisation des modules requis par le système. La fonction principale est le point d'entrée du programme. Main est un nom d'interface convenu entre l'application et le système d'exploitation, donc la première fonction de chaque application sous Linux doit être principale.

Existe-t-il une fonction principale dans le noyau Linux ?

L'environnement d'exploitation de cet article : système Linux 5.18.14, ordinateur DELL G3.

Le noyau Linux a la fonction principale ; La fonction principale est le point d'entrée du programme. Main est un nom d'interface convenu entre l'application et le système d'exploitation, donc la première fonction de chaque application sous Linux doit être principale.

Le noyau Linux est le cœur du système d'exploitation. Il est responsable de l'exécution des pilotes, des tâches de démarrage, de la gestion des erreurs, de la gestion de la mémoire et d'autres fonctions sous-jacentes du système d'exploitation. Cet article présentera la fonction principale importante du noyau Linux.

La fonction principale se trouve en haut du code du noyau Linux. La fonction principale est principalement chargée d'obtenir les variables d'environnement du système à partir du Kernel Control Block (KCB) et d'initialiser les modules requis par le système (gestion de la mémoire, pilotes de périphériques, etc.).

Le langage C stipule que la fonction principale ne peut avoir que deux paramètres, l'un est argc, l'autre est argv et argc ne peut être qu'un entier, et le second doit être un tableau de pointeurs vers des chaînes

Puisque la fonction principale ne peut pas. être utilisé par un autre appel de fonction, il est donc impossible d'obtenir la valeur réelle à l'intérieur du programme. Alors, où attribuez-vous les valeurs réelles des paramètres aux paramètres formels de la fonction main

? En fait, les valeurs des paramètres de la fonction principale sont obtenues à partir de la ligne de commande du système d'exploitation. Lorsque nous voulons exécuter un fichier exécutable,

tapez le nom du fichier à l'invite DOS, puis entrez les paramètres réels pour transférer ces paramètres réels vers les paramètres formels de main. La forme générale de la ligne de commande dans l'invite DOS est la suivante :

C:>paramètres du nom du fichier exécutable... Cependant, une attention particulière doit être portée au fait que les deux paramètres formels de main ne sont pas identiques. position comme paramètres dans la ligne de commande. Le paramètre

argc: correspondant représente le nombre de paramètres dans la ligne de commande (notez que le nom du texte lui-même est également un paramètre. La valeur de

rgc est automatiquement attribuée par le système). en fonction du nombre réel de paramètres lors de la saisie de la ligne de commande

argv : Le paramètre est un tableau de pointeurs de chaîne, et la valeur de chaque élément est la première adresse de chaque chaîne dans la ligne de commande (les paramètres sont traités comme des chaînes) . La longueur du tableau de pointeurs

est le nombre de paramètres. La valeur initiale de l'élément du tableau est automatiquement attribuée par le système

Analyse du code source du noyau Linux de la fonction principale

1 La fonction principale est l'entrée du langage C. Cette phrase est correcte mais cette phrase l'est. juste une convention, pas une règle éternelle. La loi d’airain immuable ! À en juger par le code assembleur le plus essentiel du programme, il est seulement convenu qu'une fois l'assembly initialisé, il passe à une étiquette nommée « main » ; l'implication est que cette étiquette peut également être renommée. Par exemple, l'entrée du langage C. pour Linux est start_kernel ( ); De cette adresse d'étiquette, le monde du langage C viendra. Le nom principal est simplement dû à l'accord de tout le monde. Vous pouvez jouer si vous ne respectez pas l'accord, tout comme le câble de chargement d'Apple et d'autres choses sont différentes des autres.

2. Il n'y a pas plusieurs fonctions principales lors de la compilation ! Bien que chaque application ait une fonction principale (du point de vue de l'application, le point d'entrée de l'application est la fonction principale cependant, les applications sont compilées indépendamment et ne seront pas compilées ensemble, et le noyau du système d'exploitation l'est encore moins) ; pour interagir avec l'application Compilé ensemble! Il n’y a donc aucun conflit entre plusieurs réseaux ! ! Il peut s'agir de l'interface unifiée entre le système d'exploitation et le programme d'application, ou cela peut être l'effet secondaire de dire que main est le point d'entrée du programme. Main est un nom d'interface convenu entre le programme d'application et le système d'exploitation ! La première fonction de chaque application sous Linux doit donc être principale. Sauf si vous modifiez l'interface de planification du noyau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn