Me gustaría preguntar si es GRUB que cambie la CPU al modo protegido durante el arranque o es el kernel de Linux el que lo hace. Y también me gustaría preguntar: ¿el kernel mismo (vmlinuz) es un ELF o es un formato binario simple? Gracias.¿Cambia GRUB al modo protegido?
Respuesta
Según http://www.moses.uklinux.net/patches/lki-1.html Linux kernel es un binario ELF. Estoy bastante seguro de que es Linux el que cambia al modo protegido, no al cargador de arranque. Esta página coincide: http://oss.sgi.com/LDP/HOWTO/Kernel-HOWTO/linux_boot_process.html
GRUB hace te deja en modo protegido.
la larva Multiboot Specification (version 0.6.96) Section 3.2 le dice que esto
‘CR0’
bit 31 (PG) se debe borrar. Bit 0 (PE) debe estar configurado. Otros bits no están definidos.
Y CR0 Register mapping te dice que el sistema debe estar en modo protegido.
Linux no es un núcleo de arranque múltiple y no se basa en algún gestor de arranque para la conmutación de la PM, se deduce la Linux Boot Protocol. Pero Linux no cambiar el modo protegido en sí, y no se basa en el gestor de arranque
cheque: http://lxr.linux.no/#linux+v2.6.39/arch/x86/boot/main.c
Aquí se llama go_to_protected_mode();
cuando se llama a continuación protected_mode_jump()
que luego se hace el CR0
cosas (establece el bit 0)
(La otra parte dice que la paginación está desactivada)
EDITAR
Lo que puedo averiguar es que GRUB can detect linux boot protocol (GRUB2, y legado también debería) y carga Linux en la memoria, pero no cambia a modo protegido. Eche un vistazo a este enlace: http://www.gnu.org/software/grub/manual/grub.html#GNU_002fLinux y la sección 16 de la página en este enlace.
+1 para una respuesta correcta. Sin embargo, su pregunta está etiquetada como "linux", por lo que podría considerar reescribir su primera línea como "En otros sistemas operativos, GRUB _desde_ lo colocará en modo protegido, pero no en Linux" (o similar). – Nemo
en realidad estoy investigando para defender la línea anterior, qué sucede exactamente, y hay algo de confusión. pero no hay confusión de que Linux hace el cambio cuando se inicia Linux. Y para otros kernels compatibles con arranque múltiple, grub hace el cambio. – phoxis
Bastante justo. Estoy seguro de que Linux comienza en modo real porque una vez tuve que parchar ese código. De todos modos, cuando recibas una respuesta completa, creo que deberías abrir con la respuesta para Linux. – Nemo
- 1. "llamar" después de cambiar al modo protegido
- 2. Grub y entrar en modo real (programación de lenguaje ensamblador de bajo nivel)
- 3. Acceso al teclado en modo protegido en el ensamblaje x86
- 4. gestor de arranque - conmutando el procesador al modo protegido
- 5. Assembler salta en Modo protegido con GDT
- 6. Cómo detectar IE Modo protegido usando C#
- 7. Error de modo protegido de Internet Explorer
- 8. Cómo acceder al miembro protegido
- 9. CPU Cambia del modo de usuario al modo kernel: ¿qué es exactamente? ¿Cómo hace esta transición?
- 10. Detección de Vista IE7 Modo protegido con Javascript
- 11. ¿Cómo llamar al constructor protegido en C#?
- 12. Confusión: interno, protegido y protegido interna
- 13. el tamaño del marco no cambia en el modo horizontal
- 14. ¿Por qué IE9 cambia al modo de compatibilidad en mi sitio web?
- 15. Cómo mantener la reproducción de vídeo mientras se cambia al modo horizontal androide
- 16. Habilitación de GRUB para arrancar automáticamente desde el núcleo
- 17. Problema SSIS Error al descifrar el nodo XML protegido
- 18. C# acceso protegido campo
- 19. Método protegido Junit
- 20. Cómo acceder a AppData en IE Modo protegido (desde un BHO administrado)
- 21. Gemfile.lock no protegido - Heroku
- 22. ¿Cuál es la diferencia entre "protegido" e "interno protegido"?
- 23. ¿Cómo pasar del modo de usuario al modo kernel?
- 24. ¿Por qué no puedo llamar a las interrupciones de BIOS desde el modo protegido?
- 25. burla método protegido
- 26. Método protegido en Python
- 27. ¿Qué significa el modificador protegido?
- 28. ¿Por qué Visual Studio 2010 cambia las posiciones de mi ventana de diseño después de regresar al modo de diseño desde el modo de compilación?
- 29. acceso a método denegado al llamar al método protegido de la subclase java
- 30. permiso de modo de usuario denegado para enlazar al socket
¿Estás preguntando sobre grub legacy o grub2? –
Estoy interesado en ambas versiones de grub. – mnc
Creo que es seguro asumir que ambas versiones de Grub y LILO funcionarían exactamente igual en términos de sus preguntas (porque es el mismo kernel que están arrancando). –