Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi N - Z > Sistemi operativi I
 
Domanda JOS - indirizzo KSTACKTOP
Clicca QUI per vedere il messaggio nel forum
Elisabeth
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?

IforgotPSW
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

Elisabeth
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! :(

Cronovirus
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 :)

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate