Perché molti processi vengono eseguiti come figli di launchd?

3

Quando la maggior parte dei processi è stata eseguita da child di launchd anziché dal kernel pid?

    
posta craig 14.12.2018 - 15:39
fonte

1 risposta

4

macOS deriva dalla tradizione Unix dei sistemi operativi. Qui i processi sono disposti in un albero, cioè una gerarchia con processi genitore e figlio.

Da ciò segue che la maggior parte è un processo di root da cui vengono generati altri processi. Questo processo su macOS moderno è avviato.

Nelle versioni precedenti di OS X un processo chiamato initd prendeva il posto di launchd. Launchd è essenzialmente un sostituto moderno e superset di initd.

Non c'è alcuna "offerta" inerente all'avere launchd come processo genitore.

Il motivo per cui non è ad esempio kernel_task è che sta per il calcolo che avviene in modalità kernel - cioè una modalità privilegiata sulla CPU.

Launchd è il primo processo in modalità utente avviato dal kernel all'avvio del sistema. Modalità utente significa che è meno privilegiato della modalità kernel. Launchd quindi gestisce l'avvio del resto dei processi necessari per avere un sistema funzionante e utilizzabile.

    
risposta data 14.12.2018 - 19:23
fonte

Leggi altre domande sui tag