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 ETRAX CRIS 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