Linuxカーネル

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

テンプレート: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以上のパーソナルコンピュータの他、PowerPC68000Sun SPARC、さらにはIBMメインフレーム、ゲーム機のPlayStation 2PlayStation 3等にも移植版が存在する。ハッカーがゲーム機や家電などに移植することもある。現在ではサポートされていないが、以前はNECPC-9800シリーズ富士通FM TOWNSなどでも稼動した。なお、PC-9800シリーズの非公式ソースは一時期公式版のソースに取り込まれつつあったが、メンテナンスされていないという理由により、バージョン2.6からPC-9800シリーズ依存部分は全て外された。

動作しているアーキテクチャ

各種アーキテクチャプロセッサでLinuxカーネルは動作している。カーネルはC言語アセンブリ言語で書かれており、それらのソースコードコンパイルにはGCCを使用している。このため、GCCがそのCPUアーキテクチャをサポートしていることがほとんどの場合前提となる。

ファイル:Linux kernel ubiquity.svg
Ubiquity of the Linux kernel

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 - カーネル本体を含む実行ファイル

出典・脚注


外部リンク

テンプレート:Portal テンプレート:Sister

テンプレート:Linuxテンプレート:Link GA