Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
仮想アドレスと物理アドレスの対応を実機確認してみよう
Search
Satoru Takeuchi
PRO
June 15, 2024
Technology
0
41
仮想アドレスと物理アドレスの対応を実機確認してみよう
以下動画のテキストです
https://youtu.be/o1gRyW8U3dA
Satoru Takeuchi
PRO
June 15, 2024
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
サイボウズのOSPO
sat
PRO
3
170
無いはずのパーティションがある Phantom Atari Partition
sat
PRO
1
30
仮想アドレスから物理アドレスにはどうやって変換するの?
sat
PRO
2
43
俺とキャンプ4
sat
PRO
0
44
小さな疑問を大事にすると成長に繋がる
sat
PRO
3
95
データ冗長化のしくみ RAID ~冗長性が無いRAID0編~
sat
PRO
2
31
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
320
俺とキャンプ2
sat
PRO
1
120
俺とキャンプ3
sat
PRO
0
93
Other Decks in Technology
See All in Technology
アプリケーションが 正しく動作するということ - 自動テスト編 / Automated Testing
soudai
9
1.5k
APIテストで見えた新しい未来 / 20240627_cloudsign_mablersjp
bengo4com
0
1.3k
育休を約半年取得しまた1カ⽉取ろうとしているエンジニア
sansantech
PRO
1
150
個人開発でLIFFとMessagingAPIを使ってわかった5つのこと
diggymo
0
270
Jetpack Compose: 効果的なComposable関数のAPI設計
haru067
0
2.6k
私の推しサービス:Elastic Kubernetes Service(EKS)
daitak
1
190
全社的な生成AI活用プラットフォームとしての Difyの導入事例紹介
tokita_kakaku
5
5.2k
AWSセキュリティを「日本語で」学習していくための良いコンテンツをまとめてみた
cmusudakeisuke
0
13k
dbt Semantic Layer ( MetricFlow ) の理解を深める
tanuuuuuuu
2
890
composer dump-autoloadを「なんとなく使う」から「理解して使う」になる
akinoriakatsuka
0
240
OpenTelemetry Meetup 2024-06 - ABEMA と分散トレーシングのあゆみ
tetsuya28
0
250
アウトプット エンジニアリング 〜 インプット偏重から脱却して飛躍するための発想 /20240621-AWS-Summit-hatano-output
opelab
5
420
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
32
6.8k
The Mythical Team-Month
searls
217
42k
Fashionably flexible responsive web design (full day workshop)
malarkey
399
65k
How to name files
jennybc
66
95k
What’s in a name? Adding method to the madness
productmarketing
PRO
18
2.8k
Building Your Own Lightsaber
phodgson
101
5.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.2k
What's in a price? How to price your products and services
michaelherold
238
11k
Facilitating Awesome Meetings
lara
44
5.7k
Design by the Numbers
sachag
276
18k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
24
1.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
222
21k
Transcript
仮想アドレスと 物理アドレスの対応を 実機確認してみよう Jun. 15th, 2024 Satoru Takeuchi X: satoru_takeuchi
1
はじめに • プロセスの仮想アドレスと物理アドレスがどう対応しているかはユーザ空間から確 認できる • 実際に実機確認してみよう • 環境 ◦ CPUアーキテクチャ:
x86_64 ◦ カーネル: 5.15.0-107-generic • 📝 x86_64以外でできるかどうかは確認していないので知らないです 2
確認方法 • /proc/<pid>/pagemapに各プロセスのページテーブル相当の情報がある • ページ(4KiB)単位で8バイトのデータがメモリアドレス0から並んでいる • 主なデータ: ◦ bit 0
~ bit 54: page frame number: 4KiBをかけると物理メモリアドレスになる ◦ bit 63: present bit • 読み出すにはCAP_SYS_PTRACE capabilityが必要 ◦ Ubuntu 22.04.5のデフォルト設定なら rootならOK ◦ 権限が無ければzero fillされる • 📝 詳細は man procfsを参照 3
実機確認 • vp-conversion.py ◦ sudo ./vp-conversion.py <pid> <仮想アドレス> • 仮想端末上で動いているbashの実行ファイルをmapしている領域がどの物理アド
レスにマップされているか確認 ◦ cat /proc/$$/maps を実行してbashのメモリマップを確認 ◦ sudo ./vp-conversion.py $$ <仮想アドレス> を実行してアドレスの対応を見る • 📝 ある瞬間にページがメモリ上にあったとしても次の瞬間には無くなっているかも しれない。それはまた別動画で 4
まとめ • /proc/<pid>/pagemapを読めばプロセスの仮想アドレスと物理アドレスの対応がわ かる • かっこいい 5