Linuxカーネル
Linuxカーネルは、Unix系オペレーティングシステムであるLinuxのカーネル。リーナス・トーバルズによって開発が開始された。ライセンスにGPL(バージョン2)を採用する自由なソフトウェアである。
![]() | |
![]() Linuxカーネルの起動画面(バージョン 3.0.0) | |
| 作者 | リーナス・トーバルズ |
|---|---|
| 開発元 | リーナス・トーバルズ, および多数のコミュニティーメンバー |
| 初版 | 1991年9月17日 |
| 最新版 |
6.8.7[1] |
| リポジトリ | |
| プログラミング 言語 | C言語、アセンブリ言語[2]、Rust[3] |
| 対応OS | Linux |
| 種別 | カーネル (モノリシックカーネル) |
| ライセンス | GNU General Public License v2 |
| 公式サイト |
www |
通常、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 (
arc) - ARM (
arm/arm64) - AMD64 (
x86) - C6x (
c6x) - H8 (
h8300) - Qualcomm Hexagon (
hexagon) - IA-64 (
ia64) - 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)
出典
- グレッグ・クロー=ハートマン; "Linux 6.8.7"; 出版日: 2024年4月17日; 閲覧日: 2024年4月17日.
- “The linux-kernel mailing list FAQ - Why is the Linux kernel written in C/assembly?”. tux.org. 2013年6月20日閲覧。
- “Linuxカーネルのバージョン6.1が公開、カーネル記述にRust言語を一部採用した最初のバージョン”. CodeZine. 2023年6月10日閲覧。
関連項目
- Linux-libre - Linuxカーネルからバイナリ・ブロブを取り除いたカーネル。
- Native POSIX Thread Library
- Cooperative Linux - coLinuxとも呼ばれる。Windows上でLinuxカーネルが動作するようにしたもの。
- ローダブル・カーネル・モジュール (LKM)
- vmlinux - カーネル本体のコードを含む「カーネルイメージ」と呼ばれる特殊なファイル(その特殊性により、単なる実行ファイルではない)の慣習的な名前

