Foro de elhacker.net

Informática => Hardware => Mensaje iniciado por: Lieutenant McFarley en 21 Febrero 2022, 12:45 pm



Título: Dudas direcciones de memoria, arranque de PC, sectores disco y otras
Publicado por: Lieutenant McFarley en 21 Febrero 2022, 12:45 pm
Perdón por largo, es para juntar varias preguntas relacionadas y ordenar lo mejor posible en vez de muchos hilos nuevos; y por si no es en este foro, sino cambiar al suyo.
Leyendo por aquí y allí quedan muchas dudas porque la informacion de internet es dispersa y no está organizada sistematica. A ver si se puede aclarar algo.

1.- Las direcciones de memoria que usa directamente CPU son todas RAM o algunas no?

2.- Ejemplo algunos puertos E/S, o todos, tienen asignadas direcciones de memoria? Si es asi esas direcciones son fisicas o sea que CPU al acceder a esas direcciones está accediendo a circuitos hardware? O el SO usa ciertas direcciones RAM pero solo para puertos y no para datos/programa?

3.- Al encender PC lo primero es el proceso POST de firmware/ROM, o sea BIOS-UEFI, es correcto?. Esas direcciones son físicas y no de RAM, no? Entonces las direcciones de RAM tienen que tener otros números de celda, es OK? Leido que POST está en F000:FFF0: esa direcc. es de RAM o es direcc. fisica de ROM? O el ordenador la coge de chip físico y la copia en RAM y ahi ejecuta?

4.- Si 2 y 3 son ciertos, cuando se dice que un PC tiene XX Gb de RAM, estan contando incluidas las direcciones que se usan para puertos y las de ROM o son cuentas aparte?

5.- Después del POST siempre se busca sector 0 (MBR?) de la 1ª unidad que contenga código máquina ejecutable, o sea con 0x55 y 0xAA en bytes 511 y 512 es correcto? Las unidades que no tengan esos valores en esos bytes es que son solo almacenamiento, es OK? Cuando se encuentra una unidad, CD, USB, disco duro... con esos valores se va a los bytes de codigo ejecutable, se copian en RAM y CPU empieza a ejecutar, es asi? Si es así, se copia siempre el codigo máquina en la misma zona de RAM para ejecutar o depende del programa? Es decir, el código de la unidad de arranque se va a pasar a la misma dirección de memoria si es un sistema Windows, o un Linux, o un GRUB de arranque multiple, o un USB o CD de recuperación, o un USB de un programa propio hecho en binario ejecutable por un usuario booteable? Segun sea se cargará en zonas de memoria distintas o siempre se va cargar en la misma zona de RAM? Si es siempre igual, a partir de cual direccion de memoria es ésa en que se carga el primer código ejecutable tras el POST?

Se que son muchas prguntas, y puede que mas aclaraciones segun respuestas, gracias a quien pueda aclarar parte o todo de estas dudas. Tambien servirá a otros.