モノリシック

Publish date: Nov 25, 2019
Tags: linux

先日の勉強会でLinuxの話になって
「モノリシックカーネルとマイクロカーネル、あなたはどちらが優れていると感じますか」
と訊かれて
「何じゃそりゃ?」
となったので、そこで聞いたことと
調べたこと、ふんわりと考えたことをまとめます。

モノリシックカーネルは一枚岩ということで
機能が分割されていないため実行速度が速い。

マイクロカーネルは逆に、様々な機能がモジュールとして分割されているため
一部のみの変更や更新などに対応することができる。

カーネルにおける設計思想ということだな、と理解しました。

以下にも詳細が載っています
モノリシックカーネルとマイクロカーネル | Linux技術者認定試験 リナック | LPI-Japan

すなわち、「完全にモノリシックカーネル」「完全にマイクロカーネル」というのは、最近では少なくなってきたのです。アーキテクチャや機能の多様化・進化に伴い、「この機能はカーネルに組み込む」「この機能はモジュールにする」のように使い分けるほうが、設計上もパフォーマンスの上でも好ましいため、と言えるでしょう。

https://linuc.org/study/knowledge/460/

これを読んで思い出したのが
VimとEmacsのエディタ論争で
シンプルさか、もしくはカスタマイズ性を求めるのかという部分では
モノリシックかマイクロか、という部分で重なりました。

「用途に合わせて」
というのが前提にあるにせよ
どちらが自分自身の考え方にあっているのかというのは
対象に合わせて自分を変化させるのか
対象を自分のコントロール下に置くのか
そういったところに帰結するような気がする。

何にせよ、自作OSやりたいので
「カーネルにも色々と種類があって、設計思想的なものがあるのだなぁ」
と知ることができたの良かったです。