毎年読んでます。今年はFedora 31。Linux version 4.20.0-rc1+ ですね。でも、最新は5.4.1かぁ。読むだけだったら最新を使いたいところだけど。
kernel build だけでも面倒くさいのですが、最新のFedoraで debug用に kerel build する ansible script がある。
なんですが、どうして、
こう毎回、違うんだ?
去年読んだときは「あり、tableから sys_table を生成するようになってる(いまさらか?)」と思ったんですが、今年は、
一度、Cの関数 do_syscall を呼び出して、その中で table call してる
去年まではアセンブラレベルだったのに。さらに、
直接、sys_read にkernel callのABI修飾子(マクロ)を付けるのではなく、
ABI修飾子マクロの付いた関数から、ksys_read を呼び出す方式に変更
されてる。いや、その SYSCALL_DEFINE3 とかの超ダサいマクロやめろと思ったのも2,3年前だった気がするんだが...
既に C に入ってるんだから、SYSCALL_DEFINE3 は、もう何もやってない気がするんだが、そんなことはないのか。
でも、stub 経由で通常のfunctionを呼び出す方式自体は正しいとは思います。
とかやってたら、さっさと、qemu を使った gdb による kernel debug するつもりだったのをすっ飛ばしてしまいました。
いや、授業中に MBP の freeze とか、display adaptor を不調で交換とかやってたので時間を取ったってもあったんけど。
No comments:
Post a Comment