タグ

ブックマーク / qiita.com/akachochin (2)

  • Linuxのmmap()を通して、アドレス空間の扱いを垣間見る - Qiita

    近況 飲んで帰ってきて、気づいたらこんなの書いていました。 ちょっと具体性に乏しいので、もう少し後でパッチを書きます。 (でも、明日は会社の歓迎会で飲んでくるのだ) 前回のあらましと今回見るところ 前回、仮想アドレスと物理アドレスの紐付けをする処理とそのデータ構造のページテーブルを見ました。 そして、今回はユーザ空間へのアドレス空間マップを行うmmap()を見ることで、仮想アドレス空間の扱いの一端をかいま見てみましょう。 mmapの実装 mmapは以下の実装である。 (厳密に言うと、システムコールのベクタではないので「システムコールの開始地点」ではない) asmlinkage long sys32_mmap(struct mmap_arg_struct32 __user *arg) { struct mmap_arg_struct32 a; if (copy_from_user(&a, a

    Linuxのmmap()を通して、アドレス空間の扱いを垣間見る - Qiita
    yk5656
    yk5656 2014/08/29
  • cgroupsとメモリ資源と関係を勉強する前に、Linuxの仮想記憶周りを読む... - Qiita

    あらまし 前回、cgroupsについて軽くではあるが書いてみました。 上記の文章の最後に「次はcgroupsとメモリ管理というネタで行ってみたい」と書きました。 もちろんすぐにcgroupsと仮想記憶の関係がわかればよいのであるが、何ぶんLinuxの仮想記憶は読むのも初めてです。よって、Linuxの仮想記憶の概要をつかむためにまずはソースを読んでみます。 流れがわかりにくい箇所もあります。が、ソースを読んで迷った過程をあえて記録に残したいと考えたからです。ご了解ください。 ということでfork() 仮想記憶の機能を理解するには、経験則上、とっかかりが必要です。 そのとっかかりの一つがfork()だと思っています。 人によっては、page fault(例外ハンドラ)から入ったり、mmap()から入ったりすることもあろうが、前回fork()がらみのところを読んだので、今回もここから行きます。

    cgroupsとメモリ資源と関係を勉強する前に、Linuxの仮想記憶周りを読む... - Qiita
    yk5656
    yk5656 2014/08/11
  • 1