[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:21136] Re: Linuxシステムの階層構造について



木村です。
# Linuxセミナーの資料作成で死亡中

> > > H/Wを直接制御する部分もあってしかるべきだと思い,
> > > 階層構造(基本)を以下の様に書き改めたいとおもいます。

なんでこういう発想になるのかはたぶん本人のバックグラウンドに
依るのだろうな。

> > > > [1] Linux-OSの階層構造(基本)(ver.2)
> > >  ┌───────────────┐
> > >  │   User space processes       │
> > >  ├────────┐            │
> > >  │daemon processes│            │
> > >  │    ┌─────┴──┐      │
> > >  │    |    libraries   │      │
> > >  ├──┴────────┴───┤
> > >  │          kernel              │
> > >  ├─────────────┐  │
> > >  │      device drivers      │  │
> > >  ├─────────────┴─┤
> > >  │         hardware             │
> > >  └───────────────┘
> > > この理解は,正しいと思いますか?
> > > #識者の方のご意見をお願いできたらと思います。

この場合、hardwareって何? を定義しないと誰も答えられないと思う
んですけど。まあ、確かにカーネルが直接hardwareを操作している部
分はあるでしょう。CPUのレジスタとかFPUとかメモリとか。

その他の部分は、たぶんどれもdevice driver層を経由してのアクセス
になるでしょう。でないと、現在の複数CPUアーキテクチャで、複数の
マシンデザインの上で動作できるカーネルにはならないでしょう。
i386というか、IBM-PCアーキテクチャ専用に開発されていた10年前当時
のLinuxカーネルでは例えばビデオメモリのアクセスがカーネル中にア
ドレス直打ちで書いてあったりしましたが、そんなことを今でも続けて
いたらここまでプラットフォームが広げられるはずがありません。

> ioperm や outb はカーネルが直接ハードウェアをいじるためのシステムコー
> ルなので,この例には(ネットワーク機能よりも)ふさわしいように思いますが,
> このヘンの機能はあくまで back door 的に用意されているものなので,あま
> り喧伝すべきものではないように感じます.

ついでにこの辺は(kernelも使うけど)user space processがhardware
を操作するために使うわけですよね。

> # 元々は DOOM とかのゲームを動かすために用意された機能じゃなかったかし
> # らん?

そんなものだったような。当時はWindows同様に何でも動けばおもし
ろくていいじゃん、というノリでした。
# Cで書いて遅いならアセンブラでっちゅうのも

/木村

Follow-Ups
[plamo:21138] Re: Linuxシステムの階層構造について, Shun-ichi TAHARA (田原 俊一)
References
[plamo:21132] Re: Linuxシステムの階層構造について, H.Shiozaki
[plamo:21133] Re: Linuxシステムの階層構造について, KOJIMA Mitsuhiro
[plamo:21134] Re: Linuxシステムの階層構造について, KOJIMA Mitsuhiro

[検索ページ] [メール一覧]
Plamo ML 公開システム