2015-08-01から1ヶ月間の記事一覧

「自作エミュレータで学ぶx86アーキテクチャ」のemu2.3をrubyで書いてみる

今日(というか、土曜日)に「自作エミュレータで学ぶx86アーキテクチャ」が届いていたので、とりあえず2.3 初めてのエミュレータのエミュレータをrubyで書いてみた。基本的には書籍のcコードを移植する形で。 gist.github.com 実行しているところがこちら。…

俺得なLinuxの名前空間を調べるツール作成中

他に使う人がいない気もするがなんとなく作っているものがこれ。 masami256/nsinfogithub.com 現状できるのは 個々の名前空間に所属しているプロセス名、PIDなどを表示(-aオプション) あるPIDが所属している名前空間(inode)の表示(-pオプション) 各名前空…

open(2)でO_CREAT or O_TMPFILEを使うときはmodeのセットを忘れずに

Linux Kernelのfauzzingツールとして有名trinityを動かすとすぐにこんなエラーが出て止まりました。 [main] fd[419] = fopen /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-Virtual-2/edid (read-only) flags:0 fcntl_flags:0 *** invalid open cal…

mount namespaceでinit_taskのmnt_nsを設定するところ

Linuxのinit_taskに設定されるmnt_nsはコンパイル時には設定されていなくて実行時に決定されてます。で、それがどこで設定されているのかのメモです。 まず、nsproxy.cでinit_taskはこのように作られていて、mnt_nsはNULLが初期値になっている。 31 struct n…

installkernelのついでに/boot/loader/entries/*.confも追加する

Linuxカーネルを自前でビルドしている場合、grubなら/boot以下にvmlinuzなんかを置いたあとにgrub-mkconfigでgrub.cfgをアップデートすればブートメニューに新しいカーネルが反映されますが、gummiboot/systemd-bootの場合は/boot/loader/entries/*.confにフ…