Cuando la mayoría de los procesos se ejecutan como un hijo de launchd
en lugar del pid del kernel?
Respuesta
¿Demasiados anuncios?MacOS procede de la tradición de los sistemas operativos Unix. Aquí los procesos se organizan en un árbol, es decir, una jerarquía con procesos padres e hijos.
De esto se deduce que debe haber un proceso root desde el que se generen otros procesos. Este proceso en los MacOS modernos es launchd.
En versiones anteriores de OS X un proceso llamado initd ocupaba el lugar de launchd. Launchd es esencialmente un reemplazo moderno y un superconjunto de initd.
No hay ninguna "oferta" inherente en tener a launchd como su proceso padre.
La razón por la que no es, por ejemplo, kernel_task es que representa el cálculo que ocurre en el modo kernel, es decir, un modo privilegiado en la CPU.
Launchd es el primer proceso en modo usuario iniciado por el kernel cuando el sistema arranca. Modo usuario significa que tiene menos privilegios que el modo kernel. Launchd se encarga de iniciar el resto de los procesos necesarios para que el sistema funcione y sea utilizable.
0 votos
Publicado apple.stackexchange.com/questions/329625/ . Incluso podría ser un duplicado, si alguien está dispuesto a proporcionar una respuesta más elaborada que describa cómo se crean los procesos iniciales en el arranque.
1 votos
Esto puede ser una buena lectura: Proceso de arranque de Apple