![]() |
Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- Domanda JOS - indirizzo KSTACKTOP (http://www.dsy.it/forum/showthread.php?threadid=43914)
Domanda JOS - indirizzo KSTACKTOP
Premetto che sto guardando le slide del Bruschi dell'anno 2013/2014 ed anche i sorgenti di JOS dell'anno 2014...nelle prime trovo che l'indirizzo di inizio dello stack del kernel è a partire dall'indirizzo KERNBASE - PTSIZE, nei sorgenti lo stack parte da KERNBASE...qualcuno mi illumina? :/
Da dove parte questo benedetto stack?
uhm strano.. io sto studiando sulle slide, e lì è abbastanza chiaro nel definire KSTACKTOP = KERNBASE - PTSIZE .. con lo stack che cresce verso il basso quindi da
KSTACKTOP verso KSTACKTOP - PTSIZE ... c'è anche una figura che mostra l'area di memoria compresa tra KSTACKTOP e KERNBASE come invalid memory ..
edit: mi riferisco alle pagine 80 e 64
Sì, sì e su questo siamo d'accordo però se vado ad esempio a questo sorgente:
https://github.com/eshyong/MIT-JOS/...inc/memlayout.h
vedi che il layout è diverso?
Dovrebbe essere codice aggiornato del MIT... :/
Non so a quale riferirmi!
Ciao a tutti,
Come sapete lo stack quando alloca memoria va verso indirizzi "più bassi", mentre quando ci scrivete l'ordine è inverso. Tanto per intenderci se avete un buffer tra l'indirizzo 1000 e 900, quando ci scrivete si parte da 900 andando verso l'alto, quindi verso 1000. JOS negli indirizzi sopra KERNBASE come sapete ci mette il kernel. Cosa succederebbe se usiamo routine di scrittura non sicure quali "gets"? Buffer overflow e bye bye kernel. Per questo jos mette il top dello stack a KERNBASE-PTSIZE, dove tra KERNBASE-PTSIZE e KERNBASE c'è una pagina segnata come "non valida", quindi quando si prova ad accedervi.. TRAP!!
E' una protezione del kernel.
Venendo alla tua domanda.. mi sa proprio che al mit hanno cambiato layout (anche se il file è aggiornato al lab 2.. mi sembra assurdo che nei lab successivi lo cambiano ma.. boh). Quello che ti posso assicurare è che nell'ultima edizione del corso c'è
KERNSTACKTOP = KERNBASE-PTSIZE
ciao
All times are GMT. The time now is 04:57. | Show all 4 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.