Linuxカーネル
テンプレート:Infobox Linuxカーネルは、リーナス・トーバルズによって開発された、UnixライクなオペレーティングシステムであるLinuxのカーネル。Minixを参考にしており影響を受けた点もあるが、ゼロから書かれた(IBM PCを端末エミュレータとして動かすためのコードから成長させたものと言われている)ものである。
ライセンスにGPL(ただしバージョン2だ、とリーナスは主張している)を採用した、自由なソフトウェアである。このことがLinuxを共有の物として開発することを推進させた、とされている。Linuxの開発とインターネットの発展が時期的に一致したことも、Linuxの回りに開発コミュニティを形成するのに幸いした。
また、開発に際してよりオープンな開発体制をとり、現在バザール方式と呼ばれている、誰でもLinux Kernel Mailing Listへのバグ報告や修正、機能拡張パッチを公開でき、その中から最終的にリーナス・トーバルズと彼が任命したメインテナーがコーディネータとなって、公式版のLinuxカーネルの質を保っている。通常、Linuxカーネルと呼んだとき、リーナスが公開している公式版のカーネルを指す。Linuxディストリビューションで使用されているカーネルは、リーナスの公開したカーネルを元にベンダーが独自の修正や変更を加えていることが多い。変更がある場合はそれを加えたベンダーがサポートするものとして、Linux Kernel Mailing List などでは基本的に対象外となる。
対応ハードウェア
LinuxはPC/AT互換機上で動作するが、オープンソースのメリットで、80386以上のパーソナルコンピュータの他、PowerPCや68000、Sun SPARC、さらにはIBMのメインフレーム、ゲーム機のPlayStation 2、PlayStation 3等にも移植版が存在する。ハッカーがゲーム機や家電などに移植することもある。現在ではサポートされていないが、以前はNECのPC-9800シリーズ、富士通のFM TOWNSなどでも稼動した。なお、PC-9800シリーズの非公式ソースは一時期公式版のソースに取り込まれつつあったが、メンテナンスされていないという理由により、バージョン2.6からPC-9800シリーズ依存部分は全て外された。
動作しているアーキテクチャ
各種アーキテクチャのプロセッサでLinuxカーネルは動作している。カーネルはC言語やアセンブリ言語で書かれており、それらのソースコードのコンパイルにはGCCを使用している。このため、GCCがそのCPUアーキテクチャをサポートしていることがほとんどの場合前提となる。
Linuxカーネルは、CPUアーキテクチャから独立していて各アーキテクチャで共有されている部分は多いので、CPUアーキテクチャに依存した部分を変更すれば良いようになっている。Linuxカーネルが新しいCPUアーキテクチャで動作すると、その他のソフトウェアを移植してGNU/Linuxシステムとして動作させるのは比較的容易となる。
関連項目
- GNU/Linuxシステム - Linuxカーネルに、GCCをはじめとするGNUプロジェクトによるUNIX代替のプロダクトを中心に、そのほかのソフトウェアを追加して、一般的なUNIXと同程度のシステムとしたもの。
- Linuxディストリビューション - GNU/Linuxシステムを誰もが使える形でまとめ、インストールなどが容易にできるようになっている配付物。CD-ROMやネットワークなどで配付される。ディストリビューションは「配付」の意味。
- Native POSIX Thread Library
- Cooperative Linux - coLinuxとも呼ばれる。Windows上でLinuxカーネルが動作するようにしたもの。
- ローダブル・カーネル・モジュール (LKM)
- vmlinux - カーネル本体を含む実行ファイル
出典・脚注