前提
・プログラミングではなく、コンピュータの仕組みに関する質問です。
質問
・バイナリファイルのメモリ番地が決定するタイミングはいつですか?
詳細
■背景
・linux上で/bin/lsを逆アセンブルしました。
・結果、ネイティブコードの横にメモリ番地が指定されていることを確認しました。(3758, 375cなど)
root@654efdae0005:/# objdump -d -M intel /bin/ls | head /bin/ls: file format elf64-x86-64 Disassembly of section .init: 0000000000003758 <_init@@Base>: 3758: 48 83 ec 08 sub rsp,0x8 375c: 48 8b 05 7d c8 21 00 mov rax,QWORD PTR [rip+0x21c87d] # 21ffe0 <__gmon_start__> 3763: 48 85 c0 test rax,rax
・ネイティブコードが生成された時点でメモリ番地が割り当てられる、と仮定すると以下のようなデメリットがあると思います
1)実行されないコードだとしても、ネイティブコードがコンパイルされる度にメモリ空間が使用されてしまう
・私の仮説は以下です
1)全てのネイティブコードにメモリ番地が指定されている訳ではなく、/binに配置されていることに関係している
■備考
teratail初利用です。
質問の仕方など至らぬ点はご指摘いただけますと嬉しいです。
以上どうぞよろしくお願いいたします。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/01 12:06
2019/09/01 12:10
2019/09/04 08:20