2020-01-01から1年間の記事一覧

xv6-riscv 第7 ~ 8章のまとめ

引き続き7と8章をやってます 7章 Multithreading github.com 課題 switching between threads (moderate) スレッドの切り替え処理を書いてみようという課題でした。 ほぼ処理は実装済みで、スレッド作成時context->raに関数のアドレス渡したり、切替時にはレ…

xv6-riscv 第5 ~ 6章のまとめ

xv6の課題の続きで、今回は5章と6章をまとめます 第5章 xv6 lazy page allocation github.com 課題 Eliminate allocation from sbrk() (easy) Lazy allocation (moderate) Lazytests and Usertests (moderate) 課題は3つに分かれていますが、全てLazy alloc…

xv6-riscv 第2, 4章のまとめ

xv6の課題の続きで、今回は2章と4章をまとめます (3章の課題難しくてスキップしている) 第2章 system calls github.com 課題 System call tracing (moderate) システムコールを呼ばれるたびにログに吐き出すシステムコールを作る課題 課題の意図は、システム…

xv6-riscv 第1章のまとめ

MITで行われているxv6について授業の資料が公開されていたので、先々週くらいからチャンレンジしています。 4章くらいまで終わったので、まずは1章を軽くまとめてみます。 はじめに xv6とは 近代UNIX系OSの元となったUnix v6を移植したものです。 Unix v6と…

elf形式の解析をrustでやってみてる

5年くらい前からxv6のコードを読みたいなーと、何度かチャレンジして失敗している。新人教育してくれた先輩がカーネル屋さんだったり組み込みの方が多かったので、なんとなく低レイヤーに憧れがあるのだと思う。 チャレンジ失敗している理由としては、普段業…