slackit-ml
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Slackit.org] System.map


From: Andrea Guarnaccia
Subject: Re: [Slackit.org] System.map
Date: Sat, 15 Feb 2003 11:10:16 +0100 (CET)

On Fri, 14 Feb 2003, rian wrote:

> non ho capito bene cosa vuol dire ''mappatura kernel space'', ma qualcuno mi
> puo' confermare che non e' indispensabile copiare il nuovo file System.map
> che si genera dopo una nuova compilazione del kernel nella dir /boot.

Ok, vediamo di chiarire un po' a cosa serve questo ormai famoso
System.map.
Se provi ad editare il tuo System.map, vedrai che contiene una lista di
indirizzi seguiti da delle "keyword", ne riporto qui un estratto:

c01d10f8 t reset_intr
c01d1108 t user_reset_fdc
c01d1184 t raw_cmd_done
c01d12c4 t raw_cmd_free
c01d1308 t raw_cmd_ioctl
c01d1734 t invalidate_drive
c01d1768 t get_floppy_geometry
c01d17e0 t fd_ioctl
c01d2410 t floppy_release
c01d2484 t floppy_open

Com'e' facile intuire, il file e' composto da una lista di indirizzi di
memoria seguiti da delle specie di etichette.
Ogni etichetta corrisponde all'indirizzo di memoria che lo precede, questa
notazione e' stata utilizzata per identificare ogni cella di memoria
tramite l'utilizzo di un nome. L'utilita' di questa notazione e' evidente
nel momento in cui andiamo a lavorare con il kernel, ovvero nel momento in
cui dobbiamo ottenere informazioni direttamente dallo spazio di memoria
del kernel, in quanto ci basta richiamare un'etichetta per accedere alla
locazione di memoria corrispondente ed ottenere cosi' i dati che ci
interessano.
System.map, quindi, contiene la mappatura di tutte le locazioni di memoria
del kernel, dette appunto kernel space.
La collocazione di questo file all'interno del sistema e' rilevante, in
quanto klogd, al momento del boot della macchina, andra' a cercare il
System.map in tre directory:  /boot/System.map, /System.map,
/usr/src/linux/System.map (spero di ricordare bene).
Quindi puo' sorgere un dubbio, cosa succede se ho, per esempio, due kernel
sulla stessa macchina?
Al boot, klogd andra' ad eseguire una scansione all'interno di quei tre
path in cerca del System.map, ovviamente, sul nostro sistema saranno
presenti due file System.map, quindi klogd andra' a leggere il primo,
controllera' che sia il file corrispondente al kernel che e' stato fatto
bootare, in caso contrario, andra' a cercare il secondo System.map
all'interno degli altri path, finche' non trovera' il file contenente la
mappatura del kernel che e' stato caricato.
Da questo di puo' intuire che non e' rilevante cancellare il vecchio
System.map, anzi, se si volessero tenere entrambi i kernel, la
sovrascrittura del vecchio file porterebbe ad eliminare la mappatura del
vecchio kernel rendendolo inutilizzabile.
Spero che la spiegazione sia abbastanza chiara, mi sono svegliato da poco
e la mia mente ancora non connette bene :)



Andrea "Valnir" Guarnaccia
--
Responsabile Organizzativo
PLUTO Padova - Gruppo Didattica
Slackit.org Staff
E-Mail: address@hidden
GSM: 347 9659519





reply via email to

[Prev in Thread] Current Thread [Next in Thread]