3 votes

Pourquoi la plupart des processus s'exécutent-ils en tant qu'enfants de launchd ?

Quand la plupart des processus ont été exécutés en tant qu'enfant de launchd au lieu du pid du noyau ?

4voto

Jose Chavez Points 645

MacOS est issu de la tradition Unix des systèmes d'exploitation. Ici, les processus sont disposés en arbre, c'est-à-dire une hiérarchie avec des processus parents et enfants.

Il en découle qu'il doit y avoir un processus racine à partir duquel les autres processus sont créés. Ce processus sur les MacOS modernes est launchd.

Sur les versions antérieures de OS X, un processus nommé initd prenait la place de launchd. Launchd est essentiellement un remplacement moderne et un sur-ensemble d'initd.

Il n'y a pas d'"offre" inhérente à avoir launchd comme processus parent.

La raison pour laquelle il ne s'agit pas, par exemple, de kernel_task est qu'il s'agit de calculs effectués en mode noyau, c'est-à-dire en mode privilégié sur l'unité centrale.

Launchd est le premier processus en mode utilisateur lancé par le noyau lorsque le système démarre. Le mode utilisateur signifie qu'il est moins privilégié que le mode noyau. Launchd s'occupe ensuite de lancer le reste des processus nécessaires pour que le système fonctionne et soit utilisable.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X