[作って学ぶ]OSのしくみI ──メモリ管理、マルチタスク、ハードウェア制御 新着
著者 hikalium
Webサイトの閲覧をはじめとして,コンピューターはさまざまな場面でみなさんの日常と密接にかかわっています。しかし,その裏側で起きていることを理解するのは,現代の複雑なコン...
[作って学ぶ]OSのしくみI ──メモリ管理、マルチタスク、ハードウェア制御
ワンステップ購入とは ワンステップ購入とは
商品説明
Webサイトの閲覧をはじめとして,コンピューターはさまざまな場面でみなさんの日常と密接にかかわっています。しかし,その裏側で起きていることを理解するのは,現代の複雑なコンピューターシステムの上では困難です。そこで本書では,シンプルなOSをRustを用いて実装し,普段は見えないOSの役割とその動作を理解していきます。I巻ではメモリ管理,マルクタスク,ハードウェア制御に関する部分を実装し,II巻ではユーザーインタフェース,アプリケーション実行,インターネットへの接続に関する部分を実装します。既刊の『[作って学ぶ]ブラウザのしくみ』で実装するブラウザは,本書で実装するOS上で動作することを想定しています。ですので,本書と『[作って学ぶ]ブラウザのしくみ』で,OSの動作と,そのOS上でブラウザなどのアプリがどのように動作しているのかとを理解できます。
■目次
第1章:OSとは──コンピューターの裏側を支えるソフトウェアを知る
OSとは何か
本書で実装するOSの全体像
本題に入る前に
第2章:ベアメタルプログラミングをしてみる──OSのない世界でプログラムを動かすための準備
コンピューターの構成要素
メモリ
CPU
…
すべてはバイナリ
すべてのデータは2進法で表現できる
画像のバイナリ表現
…
UEFIアプリケーションを作ってみる
開発環境の構築
Hello, worldを書いてみる
…
UEFIからの脱却
”Hello, world”はどこへ行く?
no_stdで生きていく──coreクレートと歩むベアメタル生活
…
Rustの便利機能を活用する
ビルドや実行を簡単にする
cargo clippyとHLT命令──CPUを無駄に回さないようにする
…
もっと色々なものを描く
四角形を描く
線分を描く
…
writeln!()マクロを使ってみる
メモリマップを表示する
図形描画のコードを整理する
…
第3章:メモリ管理を実装しよう──限りある資源を効率良く使えるようにする
OSとメモリの関係
メモリとは何か
メモリ管理とは何か
実装前の準備
ソースコードの整理──ファイルを分割する
cargo testが通らない理由
…
バイト単位のアロケータを実装する
アライメントはなぜ必要か
簡単なメモリアロケータの実装
OSのテストをRustで書く
シリアルポート出力の実装
デバッグを便利にする関数たちを実装する
ページング──より高度なメモリ管理を行う
ページングとは
x86_64におけるページング
…
第4章:マルチタスクを実装しよう──1つのCPUで複数の作業を並行して行う方法について知る
マルチタスクとは何か
マルチタスクの例
簡単にマルチタスクもどきを実装してみる
Rustのasync/awaitで協調的マルチタスクをする
aync/awaitを使えるようにする
時間経過を計る
…
ソースコードの整理
HPETの初期化処理をリファクタリングする
メモリアロケータの初期化を関数に切り出す
…
第5章:ハードウェアを制御する(1)──デバイスを動かす方法を知る
OSとハードウェアの関係
Port Mapped I/OとMemory Mapped I/O
Port Mapped I/Oの例──シリアル入力を実装する
PCIとは
PCIの概要
Bus,Device,Function
…
PCIデバイスの一覧を取得する
PCI Configuration空間
ECAM──Enhanced Configuration Access Method
…
USBコントローラ(xHCI)のドライバを実装する
USBとは
xHCIとは
…
第6章:ハードウェアを制御する(2)──USBデバイスを使えるようにする
USBデバイスの情報を取得する
Device Descriptorの取得
デバイスクラス
…
USBキーボードを使えるようにする
USBキーボードの基本
キーの押下状態から変化したキーを特定する
…
USBマウス……もといタブレット入力を使えるようにする
HIDレポートディスクリプタを解析する
USBタブレットの状態変化を表示する
…
Appendix:実ハードウェアでの起動を試す
関連キーワード
この著者・アーティストの他の商品
前へ戻る
- 対象はありません
次に進む
小分け商品
前へ戻る
- 対象はありません
次に進む
この商品の他ラインナップ
前へ戻る
- 対象はありません
次に進む