¿Qué llamada al sistema crea el proceso principal?

¿Qué llamada al sistema crea el proceso principal?

Tengo entendido que forkes la llamada al sistema la que crea un nuevo proceso clonando el proceso principal. ¿Por qué se crea el proceso padre? Si se utiliza una biblioteca C para crear múltiples procesos, ¿cuál fue la llamada al sistema para crear el primer proceso? Por ejemplo al correr./main.o

Respuesta1

El propio kernel contiene una llamada interna para execve()crear el proceso 1 (init), que nunca sale.

Init() es la raíz de todo el árbol de procesos. Comienza bifurcando procesos para todos los servicios conocidos y otras tareas configuradas, y para todos los dispositivos de inicio de sesión.

Respuesta2

Cuando ejecuta su programa desde un shell, entonces el shell es su proceso principal.

El shell llama fork()para crear un nuevo proceso hijo y luego, en ese nuevo proceso, llama a uno de la exec()familia para comenzar a ejecutar su programa.

Si su programa se inicia mediante algún otro proceso (que no sea Shell), la secuencia es la misma.

Obviamente, esto tiene que comenzar en alguna parte: el ancestro último de todos los procesos es el initproceso (PID 0), que el núcleo inicia mágicamente para iniciar el espacio de usuario.

información relacionada