Linuxカーネル

Linuxカーネルは、Unix系オペレーティングシステムであるLinuxのカーネル。リーナス・トーバルズによって開発が開始された。ライセンスにGPL（バージョン2）を採用する自由ソフトウェアである。

通常、Linuxカーネルと言えばリーナスが管理・公開している公式版（メインライン・カーネル）を指すが、Linuxディストリビューションで使用されているカーネルは、バージョンが古かったり、ベンダーが独自の改造を施してあることが多い。例えば、Androidで使用されているカーネルもそのひとつである。このような非公式のカーネルは、ベンダー側が対応すべきとしているため、Linux Kernel Mailing Listなどでは基本的に対応対象外となっている。

開発の初期には、MINIXを参考としており、影響を受けてもいるが、MINIXのコードは使用せず、ゼロから書かれた（IBM PCを端末エミュレータとして動かすためのコードから成長させたものと言われている）。

GPLを採用したことがLinuxを共有の物として開発することを推進させた、とされている。また、Linuxの開発とインターネットの発展が時期的に一致したことも、Linuxの開発コミュニティ形成に寄与した。

また、開発に際して、よりオープンな開発体制をとり、現在バザール方式と呼ばれている、誰でもLinux Kernel Mailing Listへのバグ報告や修正、機能拡張パッチを公開でき、その中から最終的にリーナスと彼が任命したメインテナーがコーディネータとなって、公式版のLinuxカーネルの質を保っている。

対応アーキテクチャ

Linuxカーネルは各種命令セット (ISA) に対応している。各アーキテクチャで共有されているコードが多いため、CPUに依存した部分を変更すれば移植できるようになっている。
公式サポート
バージョン5.11.11（2021年3月30日）時点。括弧書きはarchディレクトリ内の名称。

 DEC Alpha (alpha)
  (arc)
 ARM (arm/arm64)
 AMD64 (x86)
  (c6x)
 H8 (h8300)
  (hexagon)
 MC68000 (m68k)
 MicroBlaze (microblaze)
 MIPS (mips)
 Nios II (nios2)
 Andes NDS32 (nds32)
 OpenRISC (openrisc)
 PA-RISC (parisc)
 PowerPC (powerpc)
 RISC-V (riscv)
 SuperH (sh)
 SPARC (sparc)
 x86（x86、i486以降）
 Xtensa (xtensa)
 z/Architecture (s390x)

サポート終了
バージョン2.6.26まで
 Sun-4
バージョン3.4まで
 SPARCstation/SPARCserver series 
バージョン3.7まで
 i386
バージョン4.11まで

バージョン4.16まで
 Blackfin

 FR-V
 M32R

 POWER4


バージョン5.9まで

バージョン6.6まで
 IA-64 (ia64)

出典

 学習参考書 
 冨永和人、権藤克彦『例解 UNIX/Linuxプログラミング教室』オーム社、2018年4月25日。
 末安泰三『動かしながらゼロから学ぶ Linuxカーネルの教科書』日経BP、 2020年9月14日。
 武内覚『試して理解 Linuxのしくみ [増補改訂版]』技術評論社、2022年10月29日。

関連項目

 Linux-libre - Linuxカーネルからバイナリ・ブロブを取り除いたカーネル。
 Native POSIX Thread Library
 Cooperative Linux - coLinuxとも呼ばれる。Windows上でLinuxカーネルが動作するようにしたもの。
 ローダブル・カーネル・モジュール (LKM)
 vmlinux - カーネル本体のコードを含む「カーネルイメージ」と呼ばれる特殊なファイル（その特殊性により、単なる実行ファイルではない）の慣習的な名前

外部リンク
 The Linux Kernel Archives
 GitHub tovalds/linux Linux kernel source tree
 Interactive map of Linux kernel
 LKML.ORG the Linux Kernel Mailing List Archive

Category:Linux
Category:オープンソースソフトウェア
Category:OSのカーネル
Category:1991年のソフトウェア
Category:リーナス・トーバルズ
Category:GNU General Public Licenseを利用するソフトウェア
Category:Cでプログラムされた自由ソフトウェア