Como el identificador de kernel de la función de inicio () y el identificador de proceso del proceso de inicio son ambos 1, se denominan inicio, por lo que la función de inicio () y el proceso de inicio son fáciles de generar. No esta claro
La principal diferencia:
1, la función init () es parte del código del kernel, se ejecuta en modo kernel y es parte del código ejecutable independiente.
2, el proceso de inicio en el sistema operativo Linux
es un proceso especial, es el primer proceso de usuario iniciado y ejecutado por el kernel, por lo que no se está ejecutando en el estado del kernel En su lugar, se ejecuta en modo de usuario. Su código no forma parte del núcleo en sí, pero se almacena en la imagen del ejecutable en el disco duro, no es diferente de otros procesos de usuario.
Proceso No. 0 - > Kernel Thread No. 1 -> > Kernel Process No. 1 - > init Process (Proceso de usuario No. 1)
Process No. 0: Este es el sistema Un proceso que se forma automáticamente en el momento del arranque es en realidad el propio kernel. Es el antecesor de todos los procesos que luego se producen en el sistema. Cuando el sistema del kernel completa su propia inicialización, el propio kernel llama a la función kernel_thread (), que crea el primer subproceso del kernel utilizando la llamada al sistema int 0x80.
Nº 1 subproceso del kernel: el llamado subproceso del kernel, en el sistema Linux se refiere al proceso sin espacio de almacenamiento virtual, el subproceso del kernel puede usar directamente el espacio de direcciones físicas, ejecutándose en el estado del kernel. Después de que vuelve la llamada de sistema de interrupción suave, los procesos padre e hijo se determinan comparando los valores de los registros ESP y ESI. Si el valor del registro ESP es igual al valor del registro ESI, el sistema considera que es el proceso principal, el núcleo mismo, que es el número de proceso 0. De lo contrario, es el primer hilo del kernel creado por el kernel. Así que este hilo es el hilo número 1.
Proceso del kernel No. 1: Si es el subproceso del kernel No. 1, el programa controla la subrutina para ejecutar directamente la función init (). Luego, el hilo No. 1 evolucionará hacia el proceso del kernel No. 1.
proceso de inicio: la función init () llama a execve () para cargar el programa ejecutable init () desde el archivo /etc /inittab y lo ejecuta. A partir de ese momento, el proceso del kernel de la función init () evoluciona hacia el proceso init. . En otras palabras, el proceso init es generado por la función init (). El fork () no se usa en esta evolución, por lo que el identificador de proceso del proceso init sigue siendo el identificador 1 del número de proceso de kernel 1. Al ver esto, de repente recordé que en el sistema de archivos raíz incrustado, también ejecuté primero el subproceso de inicio del núcleo. El subproceso ejecutará el script ./linuxrc. Al final de ./linuxrc: execve /sbin /init, vaya a ejecutar el usuario. El proceso de inicio del espacio, que ejecutará el script inittab (si existe).
Un administrador del sistema Linux solicitó ayuda al autor recientemente. Dijo que desplegaron un si
1. /La partición raíz es una partición requerida, particionada de acuerdo con su situación real.
La línea de comandos de Linux es útil, eficiente y divertida, pero a veces peligrosa, especialment
Primero, habilite temporalmente la tarjeta de red y configure la IP: # ifconfig -a /* Vea todos los
Comparte el método de visualización d progreso d
Sistemas de archivos Ext2 y Ext3
Varios métodos de zona horaria cambia Linux
El servidor Linux se está ejecutando durante 210 días más o menos
Linux comando lsof use tutorial
Configuración y despliegue de Linux del eclipse de entorno de desarrollo de Flex
Habilidades de uso clásico de Linux 8
Solución de matriz de puntos de visualización de fuente china de Fedora 17
¿Quieres ser un programador integrado? Debes saber 0x10 preguntas básicas
Win7 estableció el método de punto de acceso a Wifi
Se excluyen las fallas comunes del enrutador de banda ancha
Vista previa anual de PC de Win10 14332 actualizó el contenido
¿Cómo resolver el problema de la solución de problemas de compatibilidad del sistema Win7?
¿Cómo configurar la memoria virtual?
Resumen de utilidades de Windows XP
Windows 2000 también es compatible con el programa
Código de error 0x0000008E de pantalla azul de arranque de equipo de Windows7 cómo resolver