カーネルとは
カーネルとは
https://blogs.yahoo.co.jp/takashi_fujii_1964/GALLERY/show_image.html?id=32640290
ではありません
カーネルとは
・ kernel : 核 ⇒  OS の中核部分
・コンピュータのリソースを管理し、
 アプリがリソースを使って動作できる様にする
https://ja.wikipedia.org/wiki/ カーネル
http://www.coins.tsukuba.ac.jp/~yas/coins/compsys1-2006/2007-01-22/
・ shell : 殻
カーネルの種類
●
モノリシックカーネル
– Unix とその派生 OS. Linux 等 .
– MS-DOS
– Windows 9x 系
●
マイクロカーネル
– Windows NT(NT カーネル )
– Mach: マーク
カーネギーメロン大学のグループが開発したマイクロカーネルが有名 .
Mac OS X とその原型の NEXTSTEP のコア部分に採用されている .
●
ハイブリッドカーネル
– Windows XP 以降
http://blog.goo.ne.jp/skeletonsima/m/201411
http://blog.goo.ne.jp/skeletonsima/m/201411
Let’s linux
※linux は動詞 .
 意味 :linux を使う /linux について話す /
    linux で遊ぶ
Linux
●
モジュールカーネル
ファイルシステムやネットワーク機能等の主要な機能もモジュール化 .
モノリシックでありながら , 柔軟性がある .
http://www.openrtm.org/openrtm/ja/content/ カーネルとユーザランドの入れ替え
※ 「モジュールカーネル」という呼称が正式に存在するかは疑問 .
Kernel &
Distribution
●
Kernel
・ Mainline/Mainstream
  Linus と、 Linus が選んだメンテナが管理 www.kernel.org
 コアチーム + モジュール開発者群 .
 バザール方式
  「ベータテスタは貴重な資産」「早めのリリース , 頻繁なリリース」「目玉の数さえあれば , どんなバグも深刻ではない」
●
Distribution: ディストリビューション
カーネル + 設定ファイル群 + 基本ツール + その他ソフト
Mainline のカーネルに , ベンダー独自の修正や変更を加えている事が多い .
Ubuntu/CentOS/Redhat/Debian/ArchLinux/openSUSE/Gentoo
...etc...( 順不同 )
●
ディストリビューションは自分で作ることが可能
・ Linux From Scratch
 自分で必要なパッケージをビルド ,rootfs やブートの設定等も自分で構築する .
・ Yocto Project
  BitBake というビルドツールと OSS パッケージをビルドする為のレシピを統合し ,   
 組み込み Linux ディストリビューションを標準化 .
 ポーティング / 複製 / スクラッチ / メンテナンスにリソースがかかっていたのを改善
 
で、なぜカーネル
●
カーネルが読めるようになると ・・・
自信がつきます
何でも出来そうな気になります
問題の切り分けが出来るようになります
●
カーネルにもバグがあります .
メーリングリストで議論されているパッチが
次バージョンのリリースで取り込まれて
自分の PC に取り込んで正常に動くまで待つか
( 長いと半年とか・・・? )
・・・それとも・・・
●
自分でカーネルパッチを書いて
自分の PC のカーネルを
正式版より先に修正するか
●
他社より先に問題を解決できる !!
   神降臨
●
デバイスドライバとかはバグが多い .
ある新しいデバイスが流通し始めたが , ドライ
バに問題がある為 , 使えない or 機能制限が
かかる . これをいち早く解決できる .
Just For Fun
純粋な好奇心を大切に
とっかかり
●
システムコールから読む
割り込みが関係
●
ブートから読む
ハード面 , ハード寄りのプロセス管理 / メモリ管理 / 割り込み管理が少し分かれば ,  読みやすい .
●
資料で概要を掴んでから読む
●
テストプログラムをトレース
●
カーネルモジュールを作成
●
カーネルビルド
●
その他 ..etc..
https://blogs.yahoo.co.jp/takashi_fujii_1964/GALLERY/show_image.html?id=32640290

カーネルとは