このプロジェクトでは、Linuxカーネルモジュールプログラミングガイドを最新のものに保ち、最近の5.xおよび6.xカーネルバージョンの実用的な例を備えています。このガイドは2001年から存在しており、そのほとんどのコピーはWeb上のコピーのほとんどを古い2.6.xカーネルのみを説明しています。
この本は、https://sysprog21.github.io/lkmpg/または最新のPDFファイルから自由にアクセスできます。元のガイドは、Linux Documentation Projectにあります。無料の電子ブック財団またはLinuxオンラインブックがオンラインブックページで収集した他の自由に利用可能なプログラミングブックを確認できます。
インターネット接続でgitを実行できることを確認してください。
$ git clone https://github.com/sysprog21/lkmpg.git && cd lkmpgソースから本を生成するには、Texlive(Mactex)が必要です。
Ubuntu Linux、MacOS、およびその他のUNIX様システムの場合、次のコマンドを実行します。
# Debian / Ubuntu
$ sudo apt install make texlive-full
# Arch / Manjaro
$ sudo pacman -S make texlive-binextra texlive-bin
# macOS
$ brew install mactex
$ sudo tlmgr update --self PDFを生成するにはlatexmk必要であり、おそらくOSにすでにインストールされていることに注意してください。そうでない場合は、インストールガイドに従ってください。
MACOSシステムでは、パッケージのPygments事前にインストールされない場合があります。そうでない場合は、ドキュメントを生成する前にインストールガイドを参照してください。
または、GitHubアクションワークフローと同じ依存関係を保証するため、Dockerを使用することをお勧めします。マシンにDockerエンジンをインストールした後、Docker Image Twtug/LKMPGを引いて、孤立したコンテナで実行します。
# pull docker image and run it as container
$ docker pull twtug/lkmpg
$ docker run --rm -it -v $( pwd ) :/workdir twtug/lkmpg NERDCTLは、ContainERD用のDocker互換コマンドラインツールであり、上記のdockerコマンドをnerdctl対応物に置き換えることができます。
これで、次のコマンドでドキュメントを作成できます。
$ make all # Generate PDF document
$ make html # Convert TeX to HTML
$ make clean # Delete generated files Linuxカーネルモジュールプログラミングガイドは無料の本です。 Open Softwareライセンスの条件に基づいて、それを複製および/または変更することができます。この作業の使用は、 LICENSEファイルに記載されているコピーレフトライセンスによって管理されます。
補完的なサンプルコードは、Linuxカーネルと同じGNU GPLバージョン2に基づいてライセンスされています。