Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
FDD-book — FreeBSD デバイスドライバブック | Kitploit
ツール/GitHubGitHub/ebrandi/fdd-book
組み込みシステムセキュリティリバースエンジニアリングデバッガハードウェアハッキングハードウェアセキュリティ学習と教育学習パスとコースファームウェア解析ラボと実践
GitHubebrandi/fdd-book

FDD-book

FreeBSD デバイスドライバブック

60050201ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

FreeBSD デバイスドライバの表紙

FreeBSD デバイスドライバ

最初の一歩からカーネルマスタリーへ

著者: Edson Brandi · バージョン 2.0 (2026年4月)

ライセンス FreeBSD ページ数 ステータス 言語


この本について

FreeBSD デバイスドライバ: 最初の一歩からカーネルマスタリーへは、無料のオープンソース書籍であり、「カーネルコードを書いたことがない」という状態から、「本番品質の FreeBSD ドライバを書き、デバッグし、投稿できる」ようになるまでを導きます。リファレンスではなくガイド付きコースとして設計されており、38 の章、6 つの付録、および実際の FreeBSD 14.x システム上でコンパイルおよびロードできる多数のハンズオンラボで構成されています。

この本は、すでに資格のある読者ではなく、学ぶ意欲がある読者を対象としています。UNIX の基礎と C 言語から始まり、カーネルが要求するすべての概念を段階的に説明し、その後で初めてドライバ開発の扉を開きます。DMA、割り込み、PCI ワークに到達する頃には、その用語は無理に覚えたものではなく、自然に身についているでしょう。

「カーネルプログラミングは依然としてプログラミングであり、ルールがより明示的で、責任が大きく、力も少し強いだけです。それを理解すれば、恐怖は興奮に変わります。」(第 1 章より)

なぜこの本なのか?

すでに優れた FreeBSD カーネルリファレンスは存在します(man 9、アーキテクチャハンドブック、Newbus の論文など)。これまで欠けていたのは、以下のような一貫したテキストです。

  • ゼロから始める。 カーネルコードを書く前に、UNIX、C、FreeBSD 環境を教えます。
  • 特に FreeBSD 14.x を対象とする。 すべての API、すべての例、すべてのラボは、FreeBSD 14.3 ソースツリーに対して検証されました。
  • ラボを第一級のものとして扱う。 推奨学習時間の約半分はハンズオンです。同じパターン(アタッチ、クリーンアップ、ロック)が章を超えて繰り返され、反射的に身につくようになります。
  • 書籍全体を通じて 1 つのドライバを構築する。 myfirst ドライバは章ごとに進化し、同期、ハードウェアアクセス、割り込み、DMA を順に獲得していきます。同じコードが自分の手で成熟していく様子を目の当たりにできます。
  • 完全なライフサイクルをカバーする。 「Hello Kernel Module」から始まり、Phabricator レビューの提出、FreeBSD ツリーへのドライバの組み入れまでを扱います。

この本の対象読者

  • 初心者: C、UNIX、カーネルについてほとんど知らないが、学ぶ意欲がある方。
  • 開発者: オペレーティングシステムの内部動作に興味がある方。
  • プロフェッショナル: すでに FreeBSD(または類似のシステム)を使用しており、実際にドライバがどのように構築されるのかを学ぶことで知識を深めたい方。

この本の対象外の読者

  • すぐにコピー&ペーストできるマニュアルを探している方。この本はショートカットよりも理解を重視します。
  • 基礎を必要としない熟練のカーネル開発者。ペースは基礎から始まります。
  • 百科事典的なハードウェアリファレンスを求めている方。焦点は実際の FreeBSD ドライバ開発であり、バスやデバイスの仕様を網羅するものではありません。

学べること

この本は、相互に構築する 7 つのパートに編成されています。

パートタイトル焦点
1基礎:FreeBSD、C、カーネルラボのセットアップ、UNIX、カーネルワークのための C、ドライバの解剖
2最初のドライバを構築するキャラクタドライバ、デバイスファイル、read/write、I/O
3並行性と同期スレッド、ミューテックス、条件変数、タイマー、タスクキュー、セマフォ
4ハードウェアとプラットフォームレベルの統合PCI、割り込み、MSI/MSI-X、DMA、電源管理
5デバッグ、ツール、実践的な手法トレーシング、KGDB、高度なデバッグ、パフォーマンスチューニング
6トランスポート固有のドライバを作成するUSB、シリアル、ストレージ/VFS、ネットワークドライバ
7マスタリーのテーマ:特殊なシナリオとエッジケース移植性、仮想化、セキュリティ、組込み、リバースエンジニアリング、アップストリームへの投稿

最後には、独自のカーネルモジュールを作成してロードし、キャラクタドライバを構築し、実際の割り込みと DMA を処理し、カーネルパニックをデバッグし、負荷下でドライバをプロファイリングし、作業を FreeBSD プロジェクトに貢献するためのすべてのステップを経験していることでしょう。

書籍の統計

ページ数4,500+
章38
付録6
読書時間約 100 時間
ラボ時間約 100 時間
合計学習時間約 200 時間(週 5 時間なら約 6 ヶ月)
対象 FreeBSD リリース14.3
言語英語(オリジナル)・ブラジルポルトガル語(AI 翻訳)・スペイン語(AI 翻訳)
フォーマットPDF · EPUB · HTML · Markdown ソース

完全な目次

完全な章リストを表示するにはクリック

パート 1: FreeBSD、C、カーネルの基礎

  1. はじめに:好奇心から貢献へ
  2. ラボのセットアップ
  3. UNIX の優しい入門
  4. C プログラミング言語の最初の一歩
  5. FreeBSD カーネルプログラミングのための C の理解
  6. FreeBSD ドライバの解剖

パート 2: 最初のドライバを構築する

  1. 最初のドライバを作成する
  2. デバイスファイルの操作
  3. デバイスへの読み書き
  4. 効率的な入出力の処理

パート 3: 並行性と同期

  1. ドライバにおける並行性
  2. 同期メカニズム
  3. タイマーと遅延処理
  4. タスクキューと遅延処理
  5. より高度な同期:条件、セマフォ、協調

パート 4: ハードウェアとプラットフォームレベルの統合

  1. ハードウェアへのアクセス
  2. ハードウェアのシミュレーション
  3. PCI ドライバの作成
  4. 割り込みの処理
  5. 高度な割り込み処理
  6. DMA と高速データ転送
  7. 電源管理

パート 5: デバッグ、ツール、実践的な手法

  1. デバッグとトレーシング
  2. カーネルとの統合
  3. 高度なトピックと実用的なヒント

パート 6: トランスポート固有のドライバを作成する

  1. USB とシリアルドライバ
  2. ストレージデバイスと VFS レイヤーの操作
  3. ネットワークドライバの作成

パート 7: マスタリーのテーマ

  1. 移植性とドライバ抽象化
  2. 仮想化とコンテナ化
  3. セキュリティのベストプラクティス
  4. デバイスツリーと組込み開発
  5. パフォーマンスチューニングとプロファイリング
  6. 高度なデバッグテクニック
  7. 非同期 I/O とイベント処理
  8. ドキュメントのないドライバの作成(リバースエンジニアリング)
  9. ドライバを FreeBSD プロジェクトに提出する
  10. 最終的な考察と次のステップ

付録

  • A: FreeBSD カーネル API リファレンス
  • B: システムプログラミングのためのアルゴリズムと論理
  • C: ドライバ開発者のためのハードウェア概念
  • D: オペレーティングシステムの概念
  • E: FreeBSD カーネル内部のナビゲーション
  • F: ベンチマークハーネスと結果

本の読み方

推奨ペースは週 1 章、学習時間は週約 5 時間です。このペースなら、1 学年の間に本書全体を終えることができます。一部の章(特に第 4 章の C 言語と、パート 4 のハードウェアに関する章)は自然と複数の週にわたります。

ラボは強く推奨します。 カーネルプログラミングは、他の分野にはないほど筋肉記憶が重要です。同じアタッチパターン、同じクリーンアップチェーン、同じロックの形状が章を超えて繰り返し現れます。それらのパターンを実際にタイプし、コンパイルし、実行中のカーネルにロードし、意図的に失敗させることは、それらを内面化する最も効果的な方法です。

すでに C、UNIX、OS カーネルの一般的な形状を知っている場合は、パート 1 全体にわたる fast-path ノートが、どのセクションを注意深く読むべきか、どのセクションを斜め読みできるかを示しています。

書籍のダウンロード

バージョン 2.0 は、リリースページで 3 言語、3 フォーマットで入手可能です。

言語PDFEPUBHTML
英語(オリジナル)PDFEPUBHTML
Português (Brasil), AI 翻訳PDFEPUBHTML
Español, AI 翻訳PDFEPUBHTML

Markdown ソースは content/ ディレクトリから直接閲覧することも、scripts/build-book.sh を使って自分で書籍をビルドすることもできます。

翻訳について

英語版は本書のオリジナルかつ権威あるバージョンです。 ブラジルポルトガル語版とスペイン語版は AI を使用して翻訳されており、まだ完全な人間による技術レビューを受けていません。 より多くの読者がアクセスできるように公開されていますが、翻訳時に誤訳、不自然な表現、技術的な不正確さが含まれている可能性があります。

翻訳版で不明瞭、矛盾、または技術的に疑わしい点があれば、英語版を信頼の源として参照してください。翻訳のレビューと改善への協力は大歓迎です(以下の 貢献 を参照)。

v2.0 の既知の問題

これは非常に大きな書籍のドラフトリリースです。以下の点に注意してください。

  • PDF、EPUB、HTML 版の一部のソースコードブロックがページからはみ出したり、不格好に折り返されたりする場合があります。これらは表示上の問題であり、将来のリリースで改善予定です。コンテンツ自体は正しいです。
  • レンダリングされたフォーマットでコード例が読みづらい場合、このリポジトリの Markdown ファイルが信頼の源です。 content/ 以下の該当ファイルを開いて、クリーンなバージョンを参照してください。
  • pt_BR および es_ES の翻訳レビューは、著者の自由時間の許す限り、近い将来に計画されています。

リポジトリ構造```

FDD-book/ ├── content/ # Book content (Markdown) │ ├── chapters/ # Chapters by Part │ └── appendices/ # Appendices A-F ├── examples/ # Source code from the book ├── translations/ │ ├── pt_BR/ # Brazilian Portuguese (AI-translated) │ └── es_ES/ # Spanish (AI-translated) └── scripts/ # Build and utility scripts

## Contributing

あらゆる種類の貢献を歓迎します。修正、明確化、新しい例、翻訳、そしてFreeBSD開発者や学習者からのレビューを含みます。

### 貢献方法

- **コンテンツ:** 新しい章の追加、既存資料の洗練
- **技術レビュー:** FreeBSD 14.x に対する正確性のための章のレビュー
- **翻訳レビュー:** AI翻訳された **pt_BR** 版と **es_ES** 版のレビューと改善の支援。FreeBSD/カーネル経験のあるネイティブスピーカーを特に歓迎します。
- **新しい翻訳:** 書籍を別の言語に翻訳する支援
- **コード:** サンプル、ビルドスクリプト、ツールの改善
- **Issues:** バグ、事実誤認、不明瞭な箇所、書式の問題を報告

### 問題の報告

問題を報告する際は、以下を含めてください:
- 読んでいた言語バージョン(`en_US`、`pt_BR`、`es_ES`)
- 使用していた形式(PDF、EPUB、HTML、Markdown)
- 問題が発生した章またはセクション
- 問題の短い説明と、可能であれば修正提案

### ワークフロー
ツールをダウンロード