Linuxをデスクトップとして使うことを意識した情報集積Wikiです。主眼はデスクトップとして利用することですが、必要に応じて一部サーバー向けの内容も含むことがあります。

はじめに

いきなりですが、Linuxカーネルとは何でしょうか。ここは中級者向けの内容を記載するページですが、意識してこなかった方もおられることでしょう。カーネル(Kernel)とは「核」を意味します。つまりLinuxディストリビューションの核。これがあるからディストリビューションはLinuxを名乗れますし、OSとしてのLinuxが存在するわけです。このページではカーネルの仕組みとモジュールについて解説します。

Linuxカーネルについて

Linuxカーネルには様々な機能が含まれています。
  • メモリ管理
  • CPUスケジューリング(プロセススケジューリング)
  • ファイルシステム
  • ビルトインデバイスドライバ etc...
Windowsにもカーネルと呼ばれるものは存在し、それをNTOSKRNL.EXEと言います。機能的にはLinuxカーネルとほとんど同じと見てよいでしょう。そんな共通っぽい機能を備えているカーネルですが、今回特に着目するのは「デバイスの抽象化」です。

デバイスの抽象化とは

デバイス…何でも構いませんのでイメージしてみてください。プリンタ、デジカメ、マウス、タブレット、キーボード。はたまたハードディスクコントローラやネットワークカードなんていうものもあります。そしてそれをPCに接続すると、昔はそのままでは使えませんでした。理由は単純で、「OS側がデバイスをどのようにコントロールすれば良いのかわからない」からです。当然OSがわからないとなると、その上で動作するソフトウェアにだってわかるはずもありません。つまり、「プリンタを接続してもOSから認識できず、メモ帳からも印刷できない」のは全くもって普通の話なのです。
で、こうなるとデバイスのコントロール方法をソフトウェアが把握していなければならなくなってしまうわけです。これは盛大な無駄であり、ソフトウェアごとにコントロールの仕組みを備えていては開発に時間もかかりますし、ソフトウェアそのもののサイズも大きくなってしまいます。
そこでデバイスドライバというものが登場します。その働きは、「ソフトウェアの代わりにOSがデバイスのコントロールを代行する」ことにあります。メモ帳で「印刷」メニューを表示させた場合と、Chromeなどで「印刷」メニューを表示させた場合に画面がほぼ共通しているのはこれが理由です。そのような、デバイスをコントロールしなければならないユーザ命令についてはOSに丸投げする。ソフトウェア側はOSに「これやっといて」とざっくり依頼する程度なイメージになる。これが抽象化を意味します。

デバイスドライバの存在意義

デバイスドライバは、デバイス(ハードウェア)を抽象化させる立役者です。これが存在しないデバイスの場合、ソフトウェアはコントロールの仕組みを独自に保持しなくてはなりません。そのようなデバイスは今の時代、ほとんど存在しません。しかし無くてはならない存在です。
Linuxにもデバイスドライバは存在します。ただ、そのインストールやロードはWindowsほど単純には行きません。Linuxカーネルにデバイスドライバを組み込んであげる必要があります。この「組み込む部品」のことをモジュールと呼ぶのです。

(編集中)

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

コラム

コラムA:一般人として

  • コンシューマPC店に関する考察?

コラムB:業界人として

コラムC:PCヲタクとして

技術情報

Linuxを始める

Linuxを導入する

  • ちょっと試してみる場合?
  • 本格導入してみる?
  • セキュリティ(導入直後編)?

Linuxを運用する

  • 「運用する」とは?
  • セキュリティ(維持編)?
  • ネットワーク情報を調べる?
  • システム状態を確認する?
  • ストレージ状態を確認する?

GUI関連

  • X Window Systemとは?
  • ウインドウマネージャの種類?

ソフトウェアを追加する

  • 概論:Linuxにおけるインストール方法?
  • パッケージマネージャを使う(RPM編)?
  • パッケージマネージャを使う(apt編)?
  • ソースからコンパイルする(非推奨)?

著名なLinux用ソフトウェア

  • エディタ
  • Officeソフトウェア?
  • メディアプレイヤー?
  • メール?
  • ゲーム?
  • セキュリティ(ウイルス対策編)?

中級者以上向けやや高度な内容

上級者向けハイレベルな内容

【メニュー編集】

編集にはIDが必要です

メンバー募集!