Windows カーネルドライバプログラミング(ウィンドウズカーネルドライバプログラミング)
OS- 著者:
- Pavel Yosifovich/吉川 邦夫(パヴェル ヨシフォヴィチ/ヨシカワ クニオ)
- 出版社:
- 翔泳社
- 出版日:
- 2021年05月19日頃
- ISBN:
- 9784798170824
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
Windows カーネルを活用するドライバ開発に必要な環境構築と
カーネルドライバ開発の最初の取っ掛かりを提供する
【本書の内容】
本書は
Pavel Yosifovich, "Windows Kernel Programming",
Leanpub Publishing, 2019
の邦訳です。
本書は Windows 用のカーネルドライバの開発方法について解説した書籍です。
カーネルドライバは、ハードウェアを扱うのではなく、プロセスやスレッド、
モジュール、レジストリなど、 Windows 特有のシステム自体を扱います。
そのため、注意深く目を配らなければならない範囲は広大です。
とはいえ、 Visual Studio とデバッガーをはじめとする数種類のツールの使いかた
さえ理解できれば、 Windows カーネルが持っているパワーを最大限に活用できる
ドライバのプログラミングは難しいことではありません。
『 Windows カーネルドライバプログラミング』は、プログラミングをはじめるに
あたって必要となる環境構築と、システムを構成するオブジェクト群を解説し、
重要なイベントの監視やイベントの抑制などに役立つ、フィルタードライバの開発
まで紹介します。
【本書のポイント】
・フィルタードライバ開発に向けた最短距離
・必要最小限の API 解説
・プログラムコードは C/C++
【読者が得られること】
・カーネルドライバ開発の概要がわかる
・カーネルドライバ開発に入門できる
・各種ツールを扱えるようになる
・ Windows システムが理解できるようになる
・ハッカーを気取れる
【著者について】
・ Pavel Yosifovich (パーベル・ヨシフォビッチ) は、開発者、トレーナー、著者、
講演者です。共著に『インサイド Windows 第 7 版 システムアーキテクチャ、プロセス、
スレッド、メモリ管理、他』 (日経 BP 、 2018 年 4 月) 、著書に
"Windows Presentation Foundation 4.5 Cookbook" (Packt Publishing 、 2012 年 9 月) 、
"Windows 10 System Programming,Part1" (Independently published 、 2020 年 4 月)
などがあります。 Pavel はソフトウェア全般を愛しており、古い Commodore 64 が今でも
大好きです。
技書の森解説
ユーザーモードのアプリケーション開発者にとって、カーネルモードは「触れてはならない世界」に見えがちです。本書はその敷居を下げ、 Windows カーネルドライバの開発を体系的に学べる数少ない日本語書籍です。著者の Pavel Yosifovich 氏は『 Windows Internals 』の共著者でもあり、 OS 内部の動作原理に精通した視点から、ソフトウェアドライバ (ハードウェアを直接制御しないカーネルモジュール) の設計と実装を段階的に解説しています。
扱う題材はプロセスやスレッドの監視、レジストリへのフィルタリング、ファイルシステムミニフィルタなど、セキュリティツールやシステム管理ツールの基盤となる技術です。サンプルコードを動かしながら、カーネルオブジェクト、 IRP (I/O Request Packet) 、同期プリミティブといった概念を手で掴んでいく構成になっています。
前提として C/C++ の知識と Windows API の基本的な理解が必要であり、難易度は高めです。ただし、セキュリティリサーチやアンチチートの分野でカーネルレベルの理解を求められる場面は増えており、ユーザーモードだけでは到達できない深さを得るための投資として、その重みに見合う内容が詰まっています。
言及 Qiita 記事 (2 件)
この本に興味がある方におすすめ
この本に関連
Pavel Yosifovich の他の書籍
関連記事
技術書の知識を定着させる間隔反復法 - 読んだのに忘れる問題を解決する
技術書を読んでも内容を忘れてしまう原因を認知科学の観点から分析し、間隔反復法を使って知識を長期記憶に定着させる具体的な方法を紹介します。
技術書の読む順番戦略 - 複数冊を組み合わせて理解を加速させる
技術書を 1 冊ずつ読むのではなく、複数冊を戦略的に組み合わせることで、1 冊では届かない理解の深さと広さに達する方法を解説します。
Linux 本ガイド - コマンドライン / しくみ / 性能の 3 層で選ぶ技術書
Linux を学ぶ技術書の選び方を 3 層 (コマンドラインの操作 → カーネルのしくみ → 性能と運用) で整理。新しい Linux の教科書や [試して理解] Linux のしくみなどの定番書の使い分けと、学ぶ順番を解説します。
関連用語
Linux
オープンソースで開発される OS。サーバーや組み込み機器で広く使われる
システムコール
ユーザー空間のプログラムが OS カーネルの機能を呼び出すインターフェース
RaspberryPi
手のひらサイズの小型コンピュータ。学習から電子工作 / IoT まで幅広く使える
Namespace と cgroup
Linux コンテナの基盤技術で、プロセスの隔離とリソース制限を実現するカーネル機能
Ubuntu
扱いやすさで人気の Linux ディストリビューション。サーバーから個人利用まで幅広い
デザインシステム
UI コンポーネント、デザイントークン、ガイドラインを体系化し、一貫した UI を実現する仕組み