forked from dmoisset/os-implementation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproject2_extras.txt
21 lines (13 loc) · 1.16 KB
/
project2_extras.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
* Leer "Some Final Breezes (a postscript)" <http://www.muppetlabs.com/~breadbox/software/tiny/teensyps.html>.
La sección que habla de porque "the executable bit can be dropped from the p_flags field", relacionado con el uso de los selector registers.
* Probar que la segmentación realmente funciona, intentar quebrar el kernel haciendo overrun de la memoria, del stack.
* Aprovechar debilidades de las syscalls para al menos crashear el kernel. Parchar las debilidades.
** Usar el bit Present y Accessed para hacer detecciones de ejecución y/o segment swapping.
* Manejar cuando no haya más lugar para procesos de usuario en la GDT (ENOMEM o parecido).
* ¿Se podría definir un layout de segmentos que no se superpongan de forma tal que no haya manera que se mezclen código, datos y stack?
** Investigar como [NaCl](http://code.google.com/chrome/nativeclient/) utiliza ia32 segmentation.
* Una vez completada toda la funcionalidad probar:
* Que argc,argv pasan correctamente imprimiéndolos.
* Que las syscalls que reciben ptrs no son fácilmente quebrables.
* Que no puedo hacer un syscall ilegal, ni una interrupción que no sea la `0x90`.
* Que el shell funcione!