メニュー

C++でできる!OS自作入門

発売日: 2018/10/8 想定ページ数: 48ページ 全文検索: 対応
★★★★★ ★★★★★ 0件
この同人誌は OS を書いてみたいと思っている方に、記述言語として C++ を選んでもらうための本です。 世にある自作 OS の本は C 言語で書いてあるものが多いですが、機能が豊富な C++ も有力な選択肢であることをお伝えするのが目標です。

メインの部分は第 3 章「C++ のコア機能の活用」です。 C++ は 2003 年に出た規格からしばらく新規格が出てきませんでしたが、2011 に出た C++11 を皮切りに新機能がどんどん導入されています。 現時点の最新規格 C++17 までに導入された機能のうち、私が OS を書く際に便利だと思う機能を紹介しています。

OS を作ることを念頭にトピックを選んでいますが、その中の半分くらいの機能は自作 OS 以外でも通じるものです。 したがって、これから C++ を学ぶという方の「C++ 学習の到達指標」としても本書を活用していただけます。 本書の内容が理解できれば C++ をそれなりに使いこなせていると思ってよいでしょう。

次に重要な章は第 2 章「C++ の開発環境」です。 この章では OS 開発に C++ を使う際に押さえておきたい「標準ライブラリ」の話題を扱っています。 C++ は言語組み込みの機能だけでも使うことができますが、標準ライブラリが使えるようになると非常に便利になります。

残念ながら標準ライブラリの多くの部分は OS の作成時には使いにくくなってしまっていますが(例えば動的メモリ管理が必要なライブラリは素直には使えない)、 フリースタンディング環境で使えるライブラリだけでも使えるようにしたいものです。 第 2 章では標準 C ライブラリ newlib と標準 C++ ライブラリ libc++ のビルド方法を紹介しています。
目次プレビュー
  • 第1章 はじめに
  • 第2章 C++の開発環境
  • 第3章 C++のコア機能の活用
  • 1.1 OS記述言語としてのC++
  • 1.2 その他の言語によるOS開発
  • 1.3 RustとC++の比較
  • 2.1 コンパイラとリンカ
    • GCCとClang
    • GNU ldとLLVM lld
  • 2.2 アセンブラ
  • 2.3 標準ライブラリ
  • 2.4 標準ライブラリのビルド
    • newlibのビルド
    • libc++のビルド
  • 2.5 標準ライブラリの使用
  • 2.6 newlibのスタブ
  • 3.1 ビット幅指定の整数型
  • 3.2 名前空間
    • 無名名前空間
  • 3.3 カスタムnew/delete
    • malloc関数とnew演算子の違い
    • new演算子の使い所
  • 3.4 配置new
  • 3.5 継承とvtable
  • 3.6 ユニットテスト
    • newとCppUTestの競合
    • 継承とユニットテスト
  • 3.7 ifの条件部における変数定義
  • 3.8 autoによる型推論
    • 戻り値型の推論
  • 3.9 一様初期化
  • 3.10 範囲for
    • 自作コンテナと範囲for
  • 3.11 テンプレートを使ったデータ構造
  • 3.12 レジスタ読み書きクラス
  • 3.13 関数のオーバーロード
    • 関数テンプレートとの使い分け
  • 3.14 エラー報告構造体
  • 3.15 ラムダ式
  • 3.16 キャストの使い分け
  • 3.17 RAIIとスコープガード
  • 3.18 定数式
  • 4.1 キャストするとアドレス値が変化する!?
  • 4.2 ヌルポインタの内部表現は0とは限らない
  • 4.3 returnを忘れた際のGCCとClangの差
参考文献

まだレビューが投稿されていません