無料マンガ・ラノベなど、豊富なラインナップで100万冊以上配信中!
◆CPU/メモリ/入出力などハードウェアの制御をRustで実装◆
Webサイトの閲覧をはじめとして、コンピューターはさまざまな場面でみなさんの日常と密接にかかわっています。しかし、その裏側で起きていることを理解するのは、現代の複雑なコンピューターシステムの上では困難です。そこで本書では、シンプルなOSをRustを用いて実装し、普段は見えないOSの役割とその動作を理解していきます。Ⅰ巻ではメモリ管理、マルクタスク、ハードウェア制御に関する部分を実装し、Ⅱ巻ではユーザーインタフェース、アプリケーション実行、インターネットへの接続に関する部分を実装します。既刊の『[作って学ぶ]ブラウザのしくみ』で実装するブラウザは、本書で実装するOS上で動作することを想定しています。ですので、本書と『[作って学ぶ]ブラウザのしくみ』で、OSの動作と、そのOS上でブラウザなどのアプリがどのように動作しているのかとを理解できます。
■目次
第1章:OSとは・コンピューターの裏側を支えるソフトウェアを知る
・OSとは何か
・本書で実装するOSの全体像
・本題に入る前に
第2章:ベアメタルプログラミングをしてみる・OSのない世界でプログラムを動かすための準備
・コンピューターの構成要素
・すべてはバイナリ
・UEFIアプリケーションを作ってみる
・UEFIからの脱却
・Rustの便利機能を活用する
・もっと色々なものを描く
・writeln!()マクロを使ってみる
第3章:メモリ管理を実装しよう・限りある資源を効率良く使えるようにする
・OSとメモリの関係
・実装前の準備
・バイト単位のアロケータを実装する
・OSのテストをRustで書く
・ページング・より高度なメモリ管理を行う
第4章:マルチタスクを実装しよう・1つのCPUで複数の作業を並行して行う方法について知る
・マルチタスクとは何か
・Rustのasync/awaitで協調的マルチタスクをする
・ソースコードの整理
第5章:ハードウェアを制御する(1)・デバイスを動かす方法を知る
・OSとハードウェアの関係
・PCIとは
・PCIデバイスの一覧を取得する
・USBコントローラ(xHCI)のドライバを実装する
第6章:ハードウェアを制御する(2)・USBデバイスを使えるようにする
・USBデバイスの情報を取得する
・USBキーボードを使えるようにする
・USBマウス……もといタブレット入力を使えるようにする
Appendix:実ハードウェアでの起動を試す
・USBメモリをFATファイルシステムでフォーマットする
・WasabiOSをUSBメモリに書き込む
・USBメモリからの起動
・実機で試すときの注意点
■著者プロフィール
hikalium(ヒカリウム):小学生のころから自作OSの楽しさに目覚め、以後エミュレーターやCPU、コンパイラなどの自作にも手をのばす。2017年よりIPA主催のセキュリティ・キャンプ全国大会にて講師を担当。現在はGoogleでソフトウェアエンジニアとしてChrome OSの開発に従事している。X:@hikalium
※アプリの閲覧環境は最新バージョンのものです。
※アプリの閲覧環境は最新バージョンのものです。