2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

マイクロカーネル vs モノリシックカーネル

1 :Be名無しさん:03/10/12 15:34.net
一度本気で語ってみたい題目。リーナスvsタネンバウムで
いろいろネタは出てるが、時代は変わっている。もう一度
語ってみようじゃないか。

・性能の違い
・実装の違い
・リーナスとタネンバウム

何でもいいので語ろう。

343 :Be名無しさん:2012/03/20(火) 09:07:45.92 .net
マイクロカーネルにこだわってたというより、当時はフリーな選択肢がそれしかなかったんじゃないの?
machはOSF陣営が採用していたわけで、UNIXとしての実績があった。
3でマイクロカーネル化してOSコアのmach部分とライセンスが必要な部分が分離できていた。
というわけで後者の代替を作ろうと考えたんじゃない?

でもBSDが、いやよく考えてみたら気がついたらこれ殆ど原型とどめてなくね?
ってことでフリーでいいよとNet/2を出して、いやそれおらんだってことで裁判沙汰になって
FreeBSDなんか書き直しする羽目になったけど、それでもHurdより先にリリースできて、
その少し前に現れたlinuxに人が集まって、その間にUNIXの冷戦構造も崩壊して、
情報ハイウエイやら、PCはdosからwindowsの時代になるわで、大事な数年を逸して、
一体なにもたもたやってんのさ?って事になったんじゃないんだろうか?

344 :Be名無しさん:2012/03/20(火) 10:02:37.13 .net
ライセンスに縛られないUNIXとしては(訴訟期間はあれど)BSDがとっくに良いものをリリースしていたのに
それでもGPLにこだわって「GPLのカーネル」を欲するのがGNUたるゆえんかな
Gnu is Not UnixはUNIXに代わるフリーなシステムを作る事ではなくUNIXに代わるGPLのシステムを作る事だったと

345 :Be名無しさん:2012/03/20(火) 17:47:37.31 .net
>>344
いや、Net/2はLinux 0.01と同じ年で、その前年からHurdは開発始まってたらしいよ。
しかしブートできるまでに3年も掛かって、その頃にはSoundBlasterで
CD-ROMが普及していたので、リリースした時点であっという間に広まった。
逆に言えばライセンス問題があるとCDプレスに二の足を踏むわけで、
破棄だけは避けようと譲歩したんじゃないんだろうか?
まあ4.4BSD Liteベースで完全解決できた訳だけど、その隙にlinuxが入り込めた。
せめてLite移行完了までにHurdが形になっていれば、真打ち登場と言えたんだろうけど、
mklinuxとか、linuxにさえ抜かれちゃう始末だし。

mach3はGPLではないので(HurdもGNU Machの機能は使っていないんだっけ?)
GPL以外に代替があるなら完成度の低いものをわざわざ選択する意味はないよね。

346 :Be名無しさん:2012/03/20(火) 20:28:31.80 .net
しかしBSD on muchって何度も復活するよね
初代much(これは不完全だが) > Hurd? > dragonfly BSD
でも普及には至らないんだよなぁ
一応、NextとOSF/1は実用か?

347 :Be名無しさん:2012/03/20(火) 22:48:47.92 .net
っていうか、ttp://www.rtmach.org/intro-j.html
こんな面白そうなものがあったのに誰も紹介しないんだもん。

存在知らないから独自OSに走って車輪付けるところで消耗して結局エターナる
OS開発者も居たんじゃないだろうか?と、androidの作りとか見て思った。

348 :Be名無しさん:2012/03/20(火) 23:37:11.61 .net
10年位前から知ってるし
独自OS作る奴は作ることを楽しんでいるんだから既存のOSはあまり関係ないだろう
逆に既存OSより良いもの(実用的な物)が欲しい奴は見込みの有りそうなプロジェクトにコミットしてるんじゃない?

349 :Be名無しさん:2012/03/21(水) 00:29:02.80 .net
>>348
>10年位前から知ってるし
それをどうやって証明するのさ?
消息不明の作者逹にアンケートでもした?

>独自OS作る奴は作ることを楽しんでいるんだから既存のOSはあまり関係ないだろう
そういう思い込みで教えてもらえなかった連中も多いんじゃないの?
誰でも知っているような事を意外と知らなくて遠回りしたなんて話も後で結構聞くんだよな。
まあ困ってる事をきちんと言わない見栄っぱりの自業自得だけど。

350 :Be名無しさん:2012/03/21(水) 06:50:45.20 .net
>>10年位前から知ってるし
>それをどうやって証明するのさ?
>消息不明の作者逹にアンケートでもした?

10年は嘘だった
このページで知ったから5〜6年前だ
http://www.bekkoame.ne.jp/ha/kuwaya/unchiku.html
各作者が知ってるかどうかは知らんし、そういう文章にはなってないはずだが?


>>独自OS作る奴は作ることを楽しんでいるんだから既存のOSはあまり関係ないだろう
>そういう思い込みで教えてもらえなかった連中も多いんじゃないの?

なら俺OS系のWikiとかに書きこんでみたら?
その考えのほうが思い込みだってわかると思うよ

351 :Be名無しさん:2012/03/21(水) 08:50:16.01 .net
何が思い込みなんだ?
俺OS(だと思い込んでるの)にわざわざ別のOSの事言う奴はアンチだけってことだろ。
顰蹙を買うのは嫌なので(悪)名を売りたいのでなければ黙っていた筈。
「あまり関係ないだろう」と書かれていて、そう思っている人が居るのは事実で、
そういう人は指摘してくれないだろうから、後は2chでも見るしかないんじゃないか?

352 :Be名無しさん:2012/03/21(水) 09:18:26.90 .net
既存の有無というのは、モチベーションの面で関係大アリじゃないかな?
無いのでオレが作りたいと思う奴は、有ると知ったらやめたくなる。
有るので真似すれば作れると思う奴は、無いと知ったら逃亡する。

353 :Be名無しさん:2012/03/21(水) 10:31:35.11 .net
アジア人は全体を見て行動し、西洋人はリーダーを見て行動するらしい。
これってマイクロカーネルとモノリシックカーネルの考えそのものじゃないだろうか?

でも実際の区分はぶっちゃけ、ランプの魔神を大衆の願いを叶えてくれる仏のようなお上と考えるか
市民の下で働く一騎当千の公僕と考えるかという違いの話になってるんだよね。

結局、文民統制にハードウェアによるカーストを利用するかどうかで、
性悪説なら緊箍児が必要だし、性善説なら不要って話に矮小化されちゃってる。

354 :Be名無しさん:2012/05/05(土) 17:30:16.00 .net
タンデンバウムって菩提樹だっけ。

355 :Be名無しさん:2012/11/10(土) 00:29:27.85 .net
カーネルサンダース

356 :Be名無しさん:2012/11/10(土) 07:53:51.30 .net
ドライバーに対してはスタックマシンとして振る舞うVMスタブが一番堅牢。
VMのサーフェス側のサービスレベルをどの高さに設計するかだけの話。

と言うのも、どうしてもソフトウェアカーネルを設置したいのであれば、あれこれ調整された機能の調製を求める内にモノリシックに行き着くのは当然であるから。

しかし、そもそもソフトウェアカーネルなんぞハードウェアの仕様を覚えられない難読症児の戯言だとする者はマイクロカーネル乃至マイクロコードを指向する様になる。

最速は常にハードウェア、以上。

357 :Be名無しさん:2013/03/18(月) 11:05:54.41 .net
amiga osはマイクロカーネルだったのか
「マイクロカーネル風」って表現もあるし、メモリ保護なし・直接関数コールとかスゲーけど別にいいよね
あとMacOS9の下にマイクロカーネルがあったのも知らんかった

358 :Be名無しさん:2013/04/07(日) 20:56:05.43 .net
マイクロカーネルもバズワードで明確な定義が無いのだから風も何もない。

359 :Be名無しさん:2013/04/07(日) 21:53:15.73 .net
基本的には「プロセス/ファイルシステムやデバイス・ドライバー等の大きな機能を除いた基本機能のみ」のカーネルって事だけど
・基本機能とは?(タスクスケジューラーやメモリアロケータも含まない!とか仮想アドレス+メモリ保護も必要!)
辺りの解釈が不明確というか各人で分かれてる感じ
スケジューラーとメモリアロケータは含まないけどメモリ保護は必須みたいな意見も見た気がするし・・・

360 :Be名無しさん:2013/04/08(月) 11:33:46.81 .net
メッセージパッシング機能とディスパッチャが最低限でしょ。

361 :Be名無しさん:2013/04/08(月) 11:52:03.75 .net
メッセージパッシングの方式(amigaは関数テーブル呼び出しだそうで)をどう定義するか
他の機能(スケジューラーやメモリ管理)がのっているものはマイクロカーネルじゃない!と原理主義に走るか(ゆるくし過ぎるとなんでもかんでもマイクロカーネルと言えるようになるし)
線引は難しいですよね

362 :Be名無しさん:2013/09/21(土) 14:17:11.24 .net
はい

363 :Be名無しさん:2013/09/28(土) 14:09:02.83 .net
CISC RISC
と一緒で完璧にどちらかに分類できる実装なんか今時存在しない

364 :Be名無しさん:2014/05/28(水) 11:13:08.20 .net
YES
物理ディスクのアクセス等は(キャッシュ等は除き)そもそも並列動作できないから普通に待ち行列行き
OS機能全体を1つのスレッド(プロセス)で処理するような実装なら誰かがシステムコールを実行中は他は待たされる
たいていはサービス毎に処理スレッド(プロセス)を走らせるから競合しなければ並列動作する(ディスクIOとコンソール出力とか…)

365 :364:2014/05/28(水) 19:39:59.67 .net
>>364
よくわかりますた
ありがとう!

366 :Be名無しさん:2014/10/16(木) 11:33:06.28 .net
マイクロカーネルばんざーい!
マイクロカーネルとして良いのはなんだろう
L4? QNX? MINIX? OSE?
OSの話題が無くてつまらん

モノリシックはNetBSD最高

367 :Be名無しさん:2014/10/17(金) 17:36:01.72 .net
最新の Minix は マイクロカーネル + NetBSD だし

368 :Be名無しさん:2014/10/17(金) 18:13:14.98 .net
はい…
それはそれとして本家NetBSDの移植性を高めた設計も好き

369 :Be名無しさん:2015/10/23(金) 21:41:29.92 .net
一時期モノリシックカーネルの方が正義みたいな扱いだったけど
またここに来てマイクロカーネルの方に勢いが出てきたつーか研究が盛んだね
次スレ立てるときはハイブリッドカーネルも入れてくれ

370 :Be名無しさん:2015/10/28(水) 17:40:11.90 .net
そうなん?
…次スレって何年先になるんだよ…

371 :Be名無しさん:2016/01/14(木) 03:09:04.74 .net
最近ワンボードPCを買ったからとりあえずseL4で遊ぼうと思う。

372 :Be名無しさん:2017/03/06(月) 11:52:26.07 .net
「モノシリック」は「モノシリアン(mono-syrian)のような」という意味であり、
十二世紀半ばに西欧にて発生した。
「モノシリアン」とは第2回以降の十字軍遠征を阻む、シリア(聖書でアラムの地とされる、
聖地エルサレムを含む西アジアの地中海に面する一帯の地域)の回教徒達(Syrian)の
結束したさまを指す十字軍内部で用いられていた隠語であり、十字軍衰退とともに
一般人への回教文化の流入とともに広がった。
現在、「モノシリック」は一つに統一され強固にまとまったさまを指す言葉として
用いられている。

例えばモノシリック・カーネルとは一枚岩のような丈夫なカーネルということである。

373 :Be名無しさん:2017/03/12(日) 15:52:02.64 .net
Linuxは事実上マイクロカーネルであり
マイクロカーネル VS モノリシックカーネルの結論は
やっぱりマイクロカーネルの方が良いという結論になっている。
小さいうちだけだよ。すぐに管理不能になる

374 :Be名無しさん:2017/05/17(水) 01:52:10.42 .net
同じ規模でも10人で開発するのと100人で開発するのとでは違うだろうな。

375 :Be名無しさん:2017/05/22(月) 19:54:09.71 .net
そこそこ純粋なマイクロカーネルで生きてるのってQNXとMINIX3.x位?
Windows10とかは山盛りのDLLやサービスの下にあるカーネルはマイクロカーネルだったりするのか?
UNIX系はDragonflyBSDみたいな変わり種以外はモノリシックだよね
Mac OSXは…わからん

376 :Be名無しさん:2017/05/27(土) 16:36:47.95 .net
>>372
一つに固まってると力をかけるとすぐ折れるんじゃなかったっけ?

377 :Be名無しさん:2017/12/30(土) 22:52:31.53 .net
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

BUGPUR0KQR

378 :Be名無しさん:2018/02/09(金) 07:18:11.35 .net
☆ 私たち日本人の、日本国憲法を改正しましょう。現在、
衆議員と参議院の両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

379 :Be名無しさん:2020/11/04(水) 09:43:32.06 .net
https://i.imgur.com/2ZBt4E6.jpg

380 :Be名無しさん:2021/09/02(木) 15:00:35.93 .net
2021年現在マイクロカーネルの事を語るならL4をまず調べよう
俺は最近L4の仕様書を読み始めたばかりだけどな

381 :Be名無しさん:2021/09/30(木) 20:01:57.33 .net
このスレ年レベルで読む人も書く人も一桁がいいとこっぽいから俺の遊び場にしてもいいよな
>>375
IntelCPUのファームウェアに入っているという話のMINIX3よりも多く世の中に出回っているのはOKL4
一種の組み込み用ハイパーバイザだけどL4系のマイクロカーネル。これはクアルコムの通信用ICの
ファームウェア等に使われている。iOSやandroidスマホに使われているという話
年間数億台以上のレベルで使われている
>>373
「Linuxはマイクロカーネルとモノリシックカーネルの良いとこ取り」みたいなドキュメントが結構見られた時期
もあったが、それは1990年頃までの古い認識、前世紀の遺物
現在主流のマイクロカーネルでは極小原則、あるいは最小原理と呼ばれる原則に則りカーネルモード(CPUの
特権モード)で動く実際のコードサイズを可能な限り小さくする方向で実装される
L4系のマイクロカーネル実装の一つseL4(カナ書きするとエス・イー・エル・フォーと発音するとドキュメントに
書いてある)のホワイトペーパーによれば
Linuxのカーネルモードで実行されるコードサイズは2000万行、に対してseL4は1万行とされている
ここまでカーネル特権で動くコードを小さくする理由は2つ
1つは性能面の問題を解決するため
Mach等の初期のマイクロカーネルを採用したOSの性能に問題があった理由はサブルーチンコールに比べて
メッセージパッシングが遅いことだった
GHz級のクロックで動くCPUのサブルーチンコールに必要な時間は数nS程度に対してメッセージパッシングでは
平均的に数μSと1000倍程度の差があった。この時間がかかる最大の理由はプロセスAからプロセスBに通信を
行う過程でA→(カーネル)→Bとカーネルに制御を渡す必要があり、この時にキャッシュがフラッシュされてしまう
ことだった
L4開発者のリートケはメッセージパッシングを行うカーネルコードをCPUのL1キャッシュに収まる(さらに余裕がある)
程度に極小化することでこの問題が解決できることを示し、L4では数十CPUクロック程度でのメッセージパッシング
実現した
もう一つの理由はまたあとで

382 :Be名無しさん:2021/09/30(木) 22:55:06.10 .net
マイクロカーネルのカーネルを小さくする(Linux比 1/1000)理由その2
安全性の点から特権モードで動くコードは最小にすべきだという思想から小さくする
2000年以降のマイクロカーネルの研究ではこちらの方がメインになっている
多くのマイクロカーネルOSではデバイスドライバはユーザ権限で動作する
従来のネットワークドライバがカーネル特権モードで動くOSの場合、そのドライバにセキュリティホールがあって外部から突くことができるとするとカーネル全体を停止させたり、最悪の場合は外部から特権を取得できてしまう
ほぼ全てのデバイスドライバがユーザモードで動くマイクロカーネルではこのような問題は起きない。例えデバイスドライバに問題があって、突くことができるセキュリティホールがあったとしてもシステム全体の特権を取得することはできない
また「発見されていない潜在的なプログラミング上の欠陥」の問題もある。2000万行のカーネル特権で動くコードを持つLinuxでは10000箇所程度の潜在的な問題があると考えられ時々セキュリティアドバイザリーとして報告される(たまにroot権限の取得が可能なものもある)
これに対して1/2000のコードサイズのseL4では存在するとしても数カ所でありroot権限の取得可能なものが存在する可能性は低い
さらにseL4の場合はマイクロカーネル全体の形式的検証が行われており問題が存在する可能性はさらに低い

383 :Be名無しさん:2021/09/30(木) 23:10:38.72 .net
MacOS は原始的なマイクロカーネルOSだったMach2.5のコードを元にメッセージパッシングを行っている部分をサブルーチンコールに書き直してモノリシックカーネルにするというL4以降のマイクロカーネルとは逆方向の開発を行った物である
メッセージパッシングが遅いのが性能上の問題なのでメッセージパッシングをなくしてしまえば良いという発想である
これはマイクロカーネルの持つ利点を捨て去っているわけでMacOS10.0が開発された1990年代後半の商業用システムとしては仕方ないものだったと考えられる(当初のL4はインテルx86専用でアセンブリ言語でコーディングされている部分もあった)
もしCPUに依存しないAPIを導入したL4Ka::Pistachioの開発以降にMacOS 10.0のプロジェクトが開始されていれば違った物になっていたかもしれない

384 :Be名無しさん:2021/10/01(金) 00:56:40.96 .net
ヨッヘン・リートケによるマイクロカーネルの設計方針あるいはマイクロカーネルの定義は明確である
--wikipediaからの引用--
ある概念をマイクロカーネル内で実現することが許されるのは、それをカーネルの外に移した場合、すなわち競合する実装が可能となることでシステム必須の機能が妨げられる場合だけである

この考え方に基づいてL4マイクロカーネルはわずかな基本的機構を提供する
・アドレス空間(抽象化されたページテーブルとメモリ保護の提供)
・スレッドとスケジューリング(抽象化された実行と一時的な保護の提供)
・プロセス間通信(分離された領域間の制御された通信)
---
つまりカーネルモードで実装する以外に選択肢がない物以外はカーネルに入れてはならない、という事

385 :Be名無しさん:2021/10/01(金) 01:45:59.36 .net
>>383
訂正
×Mach2.5
○Mach3.0

Mach2.5はモノリシックOSだった Mach3.0はデバイスドライバをカーネル内に実装したfatなマイクロカーネル
Mach3.0を2.5と同じモノリシックに書き換えたのがDarwinでMacOS Xのコア

386 :Be名無しさん:2021/11/02(火) 15:34:43.92 .net
ここまでのまとめ
〜1990年代
OSカーネルの肥大、複雑化の反省からマイクロカーネルの概念が発生する
OSの機能を部分的にカーネルの外にユーザープロセスとして実装する試み
OSとしての機能はこの方法でも果たすことはできることが確認される

1987 MINIX1.0
1989 Mach3.0

主張:OSの開発、保守のためには小さな部分に分かれていた方が都合がいい
反論1:分割した部分間の通信にはコストがかかり性能が低下する
反論2:一つのカーネルであっても開発方針としてモジュール化はできる。開発の容易さは変わらない

1990年頃の結論:マイクロカーネルを採用する明確な利点はない

387 :Be名無しさん:2021/11/02(火) 15:35:04.80 .net
2000年前後
ドイツに天才プログラマのヨッヘン・リートケが現れる
「マイクロカーネルの実装が遅い(=カーネルと各モジュール間の通信が遅い)のは通信によるプロセス切り替えでCPUキャッシュを使い切ってしまうのが原因である」
 ↓
だったらマイクロカーネルのサイズをCPUキャッシュに収まる程度の16kByte未満に押さえてしまい、メッセージの通信も高速に行える形だけに限定してしまえばいい
 ↓
OSの機能のほとんどをマイクロカーネルの外に実装したL4が作られる
デバイスドライバやファイルシステムもカーネルの外に実装される
性能の問題は解決した

2001年 ヨッヘン・リートケ没 惜しい人を亡くした

388 :Be名無しさん:2021/11/02(火) 15:36:32.93 .net
2000年代以降
事実:マイクロカーネルを採用しても性能は落ちない
疑問:わざわざマイクロカーネルの形でOSを構成する利点って何?

仮説1:カーネルに不具合があると不正な方法でカーネル特権を取られてしまう可能性がある。だから特権で動くカーネルはできるだけ小さい方がいい。小さければ小さいほど不具合が残っている可能性は低くなる

仮説2:デバイスやネットワーク等が原因でOSがクラッシュした場合、マイクロカーネルの外でのクラッシュであればカーネル自体は再起動せずに単一のユーザプログラムの処理だけで回復できる可能性は高い。安全性の高いOSが作れるかもしれない

このあたりが現在の研究課題


2020年代現在組み込み用ハイパーバイザとしてマイクロカーネルは広く利用されている

389 :Be名無しさん:2021/11/02(火) 15:59:08.06 .net
タネンバウムとリーナスの論争なんてのは完全に1990年代の話だし、MacOS Xがマイクロカーネル実装だったMach3.0をわざわざモノリシックに書き直して作られたのは2000年頃の話でそのころのL4はCPUのアーキテクチャにゴリゴリ依存して最適化していた段階だった

だからそのあたりの話って今のマイクロカーネル技術からすれば本当の昔話
今となっては論点自体が存在しないようなお話

390 :Be名無しさん:2021/11/02(火) 17:33:49.77 .net
英語のSlideshereだけど以下の「Microkernel Evolutio」が歴史的な話から最近のMicrokernelまで扱っていて
図も多くて分かりやすい
https://www.slideshare.net/jserv/microkernel-evolution

391 :Be名無しさん:2023/01/19(木) 04:29:31.71 .net
Test

392 :Be名無しさん:2023/08/12(土) 19:50:51.81 ID:uupoMmvrR
ヒ゛ックモ一タ一を非難するのか゛犯罪者た゛けという滑稽な事態になってるな.樹木を枯れさせたとか.麻薬賭博暴力贈収賄税金泥棒ハ゛力ひき逃け゛
差別主義猥褻セク八ラJKレイプ地球破壞犯罪者の代名詞スポ‐ツという犯罪推進のために明治神宮外苑のЗ千本もの巨木を伐採するデ夕ラメ
小池百合孑や,カによる━方的な現状変更によってクソ航空機倍増させて都心まで数珠つなぎて゛鉄道の3〇倍以上もの莫大な温室効果カ゛スまき
散らして氣候変動させて海水温上昇させてかつてない量の水蒸気を日本列島に供給させて土砂崩れ,洪水,暴風.突風,猛暑にと災害連発させ
てる世界最惡殺人テ囗組織公明党天下り犯罪集団国土破壊省斉藤鉄夫が何寝言ほさ゛いてんた゛か,日本に原爆落とした世界最悪のならす゛者国家や
欧州なんて森林火災に氣温4O度超え連発.曰本列島も4○度超え連発させて国民をさらに殺す氣滿々のテロ政府を放置するのは自殺と同義な
渋滞で環境破壞しまくり清瀬市のように歩道の樹木とか税金無駄にするた゛けて゛クソの意味もない.そこを自転車レーンにするのか゛環境対策た゛ろ
フランスとか車道を━方通行にして自転車レ−ン作ってるくらいた゛わ、このテ口政府をぶっ潰さないとお前らの生命と財産は奪われる━方た゛そ゛

創価学会員は、何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まで出てる世界最悪の殺人腐敗組織公明党を
池田センセ−が口をきけて容認するとか本氣て゛思ってるとしたら侮辱にもほと゛があるそ゛!
hΤТρs://i、imgur,соm/hnli1ga.jpeg

109 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★