本記事の信頼性
- リアルタイムシステムの研究歴12年.
- 東大教員の時に,英語でOSの授業.
- 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部(2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発.
- プログラミング歴15年以上,習得している言語: C/C++,Solidity/Vyper,Java,Python,Ruby,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
- 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」をGitHubにオープンソースとして公開.
こういった私から学べます.
Linuxカーネルとは,C言語で開発されたオープンソースのOSです.
Linuxカーネルは主に以下のコンピュータで広く利用されています.
目次
事前に必要な基礎知識
ChishiroのC言語で紹介している事前に必要な基礎知識を一通り習得しているとします.
-
-
ChishiroのC言語
こういった私から学べます. Windows,MacOS,Linux/UNIX,FreeBSD等のOS開発に利用されるプログラミング言語「C言語」に関する記事を紹介します. C言語を習得してコンピュータ ...
続きを見る
LinuxカーネルはC言語で書かれています.
私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.
参考資料
Linux Kernel Programming
Linux Kernel Programmingは,2021年3月19日に発売したLinuxカーネルの本です.
対応しているLinuxカーネルのバージョンは5.4(LTS)です.
Part 1とPart 2があり,Linuxカーネルの中身が深く理解できます.(その分,難しいです.)
動かしながらゼロから学ぶ Linuxカーネルの教科書
動かしながらゼロから学ぶ Linuxカーネルの教科書は,2020年9月10日に発売した本です.
Linuxカーネルの基礎がわかります.
超例解Linuxカーネルプログラミング
超例解Linuxカーネルプログラミングは,2019年7月18日に発売した本です.
Linuxカーネルの修正方法がわかります.
対応しているLinuxカーネルのバージョンは4.16~5.0です.
Linuxデバイスドライバの開発
Linuxデバイスドライバの開発は,2021年8月26日に発売した本です.
Linuxのデバイスドライバの開発やデバッグ方法がわかります.
OSやLinuxカーネルのWeb資料
- Operating Systems: Three Easy Pieces
- Documentation Directory
- The Linux Kernel documentation
- Linux Weekly News
- Linux Inside
- Linux Kernel Newbies
- Kernel Recipes
- Kernel Planet
ハードウェアのマニュアル
Linuxカーネルを理解するためには,ハードウェアのマニュアルを参照する必要があります.
あなたのPCによく搭載されているIntel CPUのマニュアルと,iPhone/Androidのスマートフォンに搭載されているARM CPUのマニュアルを紹介します.
Intel CPUのマニュアル
Intel CPUのレジスタ長が32ビット(x86)と64ビット(x64)の命令セットアーキテクチャのマニュアルです.
- Intel 64 and IA-32 Architectures Software Developer's Manual
- 82093AA I/O ADVANCED PROGRAMMABLE INTERRUPT CONTROLLER (IOAPIC)
- IA-PC HPET (High Precision Event Timers) Specification
ARM CPUのマニュアル
ARM CPUのレジスタ長が32ビット(ARM)と64ビット(ARM64/AArch64)の命令セットアーキテクチャ(ARMとARM64(AArch64))のマニュアルです.
Linuxカーネル
-
-
【第1回】元東大教員から学ぶLinuxカーネル「Linuxカーネルとは」
こういった私から学べます. Linuxカーネルの記事一覧はこちらからどうぞ. 目次1 Linuxカーネルとは2 Linuxの歴史3 Linuxのオープンソースモデル4 Linuxカーネルのリリースサイ ...
続きを見る
-
-
【第2回】元東大教員から学ぶLinuxカーネル「開発ツールとカーネルプログラミング vs. ユーザプログラミング」
こういった私から学べます. 前回を読んでいない方はこちらからどうぞ. Linuxカーネルの記事一覧はこちらからどうぞ. 今回は,Linuxカーネルの開発ツールとカーネル vs. ユーザプログラミングを ...
続きを見る