翻訳と辞書
Words near each other
・ System V
・ System V Interface Definition
・ System Verilog
・ System x
・ System XVI
・ System XXXII
・ System z
・ SYSTEM-GX
・ System-on-a-chip
・ System-on-chip
・ System.map
・ System/3
・ System/32
・ System/34
・ System/36
・ System/360
・ System/370
・ System/370-XA
・ System/38
・ System/390


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

System.map : ウィキペディア日本語版
System.map
Linuxにおいて、System.mapファイルとはカーネルが使用するシンボルテーブルである。
シンボルテーブルはメモリ上でシンボル名とアドレスの対応関係を示す。シンボル名は、もしくは関数名である場合が多い。System.mapファイルは、シンボル名のアドレスまたはアドレスの示すシンボル名が必要とされるケースにおいて要求される。とりわけこれはカーネルパニックLinux kernel oopsが発生した場合、そのデバッグの役に立つ。カーネルは、コンフィグレーション(Kconfig)にてCONFIG_KALLSYMSを有効化すると自身のアドレス-名前変換を行う。この処理にはksymoopsのようなツールは最早必要としない〔 NOTE: ksymoops is useless on 2.6.〕。
次の項目はSystem.mapファイルの一部である。:

c041bc90 b packet_sklist
c041bc94 b packet_sklist_lock
c041bc94 b packet_socks_nr
c041bc98 A __bss_stop
c041bc98 A _end
c041c000 A pg0
ffffe400 A __kernel_vsyscall
ffffe410 A SYSENTER_RETURN
ffffe420 A __kernel_sigreturn
ffffe440 A __kernel_rt_sigreturn

nmコマンドの出力結果そのものであることが理解できる。
スペースで区切られた、アドレスとシンボルの間の文字列は、そのシンボルの「型」を示している。UNIXシステムにおけるnmユーティリティプログラムはオブジェクトファイルからシンボルをリストアップする。System.mapファイルは直接これと関係しており、すなわち、カーネル(をあたかも、プログラムとみなして)全体にnmコマンドを掛け、その出力結果をこのファイルに書き出したものであることが分かる。それは、カーネルよりももっと小さいオブジェクトファイルに対し、nmがシンボルとその型をリストアップすることと同様である。
カーネルビルドのプロセスを含めて説明すると、通常、Linuxカーネルビルドの最終段階に到達すると、実行ファイル"vmlinux"が生成される。このファイルに対し、nmコマンドを実行し、その出力結果をSystem.mapファイルとして生成する。ちなみにSystem.map生成後は、vmlinuxからシンボルがストリップされ、特殊なコードをリンク、圧縮し、"zImage"もしくは"bzImage"というファイルが生成される。これが通常目にするカーネル本体である。アドレスはコンパイル時に決定されるため、カーネルビルドの度にSystem.mapファイルが生成される。
型のいくつかを説明する(用語はELFに倣っている):

A 絶対アドレス
B または b 未初期化データセクション(BSSと呼称される)
D または d 初期化済データセクション
G または g 小さいオブジェクト用の初期化済データセクション (global)
i DLL特有のセクション
N デバッギングシンボル
p スタック削除(stack unwind)セクション
R または r 読み取り専用データセクション
S または s 小さいオブジェクト用の未初期化データセクション
T または t テキスト(コード)セクション
U 未定義
V または v 弱いオブジェクト
W または w タグ付けされていないままの弱いオブジェクト
- a.outオブジェクトファイルにおけるスタブシンボル
? 'シンボル型不明'

== ファイルシステムにおけるSystem.mapファイルの配置 ==
カーネルのビルドが正常終了すると、System.mapはカーネルソースコードのトップディレクトリに作られるが、いくつかの上位のソフトウェアインストレーションステップにより、その他のディレクトリにコピーされ得る:
*/boot/System.map-$(uname -r)
*SVGALibのビルドにおいては/lib/modules/$(uname -r)/build/System.mapに存在することを仮定している。
また/proc/kallsymsはLinuxカーネルバージョン2.5.71以上のシステムにおいて、読み込まれているシンボル名とアドレスを表示する〔
〕。それはSystem.mapファイルの一部に相当する。

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「System.map」の詳細全文を読む




スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.