Solo para entendidos en Sistemas Operativos

A ver, esto es un poco dificil de explicar, Si la psp tiene un funcionamiento parecido al de un sistema operativo tendra unos registros, un procesador, BCP (Bloque de control de procesos) etc.

Mi razonamiento es el siguiente segun fanjita el gran problema que tiene con el firmware 2.01 es que no es capaz de ejecutar nada en modo nucleo, modo kernel como lo querais llamar, bien hasta ahi bien pero yo me pregunto lo siguiente:

Cuando un proceso esta en ejecucion los registros cambian continuamente, pero si entra el Sistema operativo mediante una interrupcion el proceso que se estaba ejecutando se detiene y quedan sus registros almacenados en el BCP para su posterior activacion, cuando el se vueleve a activar el proceso para seguir siendo ejecutado se reintegran los registros con los valores previamente guardados, uno de los registros es el registro de estado, bien aqui es a donde queria llegar,¿si cambiamos el bit de estado de este registro que estaba en nivel de usuario, podriamos ejecutar algo en modo kernel?

No estoy muy seguro si sera un disparate, pero tengo mucha curiosidad


Gracias
Eso no se puede hacer ya que para poder modificar un PCB tienes que tener ya privilegios de nucleo y no es tan facil, sino todo el mundo haria eso para hackear programas.Un saludo tio ;)
Respuesta corta: no es posible.

Respuesta larga:
Fanjita ejecuta su propio código a través de un exploit que le permite inyectar código y luego cambiar el flujo de ejecución al punto donde lo inyecta. Es decir, en ningún momento se produce un cambio de contexto.
Aún si se produjese un cambio de contexto, tampoco sería posible para un proceso modificar el PCB (esos datos son del SO y sólo puede modificarlos él mismo).
Y aún si pudieses modificar el PCB... ¿de qué te sirve cambiar el registro de estado?
Es evidente que la psp tiene S.O. pero el algoritmo de gestion de procesos es el que es, no el que a nosotros nos gustaria.
bueno... si el problema es acceder a librerias... podria crearse una inetrrupcion que captue el banco de memoria (PCB) i a partir de ahi copiar todas esas librerias en otra zona de la RAM en la que si que se pudiera ejecutar en modo usuario... Asi que el exploit supongo que se basaria en redirigir el PCB de esas librerias para cada instruccion que intente acceder a ellas... seria posible... ?
Por cierto, si alguien tiene algun datasheet del procesador.. o sabe donde encontralo..... seria de agradecer algun link... [tadoramo]

PD: bueno, acabo de leer un par de mensajes hacia arriba que no se puede modificar el PCB en modo usuario, pero... Y si se trabaja con direccionamiento directo... es decir @ entera en lugar de ahorrarte esos bits..???
Aki veo varios post con palabras tecnicas y algunos razonamientos ke demuestran ke algunos estudiais sistemas operativos.

sin embargo algunos os flipais un poco.

En modo "user" tu no puedes por las buenas acceder a los registros de la cpu, con lo ke olvidate de cambiar bits.

(modo user)
tus programas-----> S. O. ----> CPU

(modo kernel)
tus programas-----> CPU

El modo kernel te permite "hablar" directamente con la cpu, te deja hacer llamas de sistema y demás.

Mientras trabajas ne modo user olvidate de emular umd, modificar registros del hardware ,etc
6 respuestas