SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
カーネルとは
カーネルとは
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

Contenu connexe

Tendances

Fault, Error, Failure の違い
Fault, Error, Failure の違いFault, Error, Failure の違い
Fault, Error, Failure の違いMizuhiro Kaimai
 
FPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うにはFPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うにはHideki Takase
 
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォームAutoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォームTakuya Azumi
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』Yoshitaka Kawashima
 
もろもろの AI ツールを Windows のローカル環境にインストールする手順
もろもろの AI ツールを Windows のローカル環境にインストールする手順もろもろの AI ツールを Windows のローカル環境にインストールする手順
もろもろの AI ツールを Windows のローカル環境にインストールする手順Hide Koba
 
SmoothGrad: removing noise by adding noise
SmoothGrad: removing noise by adding noiseSmoothGrad: removing noise by adding noise
SmoothGrad: removing noise by adding noiseharmonylab
 
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜Takahiko Ito
 
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
AIOpsで実現する効率化 OSC 2022 Online Spring TISAIOpsで実現する効率化 OSC 2022 Online Spring TIS
AIOpsで実現する効率化 OSC 2022 Online Spring TISDaisuke Ikeda
 
0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)MasanoriSuganuma
 
kaggle Freesound Audio Tagging 2019 4th place solution
kaggle Freesound Audio Tagging 2019 4th place solutionkaggle Freesound Audio Tagging 2019 4th place solution
kaggle Freesound Audio Tagging 2019 4th place solution理 秋山
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピTakahiro Kubo
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方BrainPad Inc.
 
Singularityで分散深層学習
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習Hitoshi Sato
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 
畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向Yusuke Uchida
 
機械学習システムの33のアーキテクチャパターンおよびデザインパターン
機械学習システムの33のアーキテクチャパターンおよびデザインパターン機械学習システムの33のアーキテクチャパターンおよびデザインパターン
機械学習システムの33のアーキテクチャパターンおよびデザインパターンHironori Washizaki
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選Yusuke Uchida
 
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields [DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields Deep Learning JP
 
脆弱性スキャナVuls(入門編)
脆弱性スキャナVuls(入門編)脆弱性スキャナVuls(入門編)
脆弱性スキャナVuls(入門編)Takayuki Ushida
 
Ncnn a universal and efficient neural network inference with vulkan
Ncnn  a universal and efficient neural network inference with vulkanNcnn  a universal and efficient neural network inference with vulkan
Ncnn a universal and efficient neural network inference with vulkankcnguo
 

Tendances (20)

Fault, Error, Failure の違い
Fault, Error, Failure の違いFault, Error, Failure の違い
Fault, Error, Failure の違い
 
FPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うにはFPGAをロボット(ROS)で「やわらかく」使うには
FPGAをロボット(ROS)で「やわらかく」使うには
 
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォームAutoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
 
もろもろの AI ツールを Windows のローカル環境にインストールする手順
もろもろの AI ツールを Windows のローカル環境にインストールする手順もろもろの AI ツールを Windows のローカル環境にインストールする手順
もろもろの AI ツールを Windows のローカル環境にインストールする手順
 
SmoothGrad: removing noise by adding noise
SmoothGrad: removing noise by adding noiseSmoothGrad: removing noise by adding noise
SmoothGrad: removing noise by adding noise
 
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
 
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
AIOpsで実現する効率化 OSC 2022 Online Spring TISAIOpsで実現する効率化 OSC 2022 Online Spring TIS
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
 
0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)
 
kaggle Freesound Audio Tagging 2019 4th place solution
kaggle Freesound Audio Tagging 2019 4th place solutionkaggle Freesound Audio Tagging 2019 4th place solution
kaggle Freesound Audio Tagging 2019 4th place solution
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方
 
Singularityで分散深層学習
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向
 
機械学習システムの33のアーキテクチャパターンおよびデザインパターン
機械学習システムの33のアーキテクチャパターンおよびデザインパターン機械学習システムの33のアーキテクチャパターンおよびデザインパターン
機械学習システムの33のアーキテクチャパターンおよびデザインパターン
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields [DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
 
脆弱性スキャナVuls(入門編)
脆弱性スキャナVuls(入門編)脆弱性スキャナVuls(入門編)
脆弱性スキャナVuls(入門編)
 
Ncnn a universal and efficient neural network inference with vulkan
Ncnn  a universal and efficient neural network inference with vulkanNcnn  a universal and efficient neural network inference with vulkan
Ncnn a universal and efficient neural network inference with vulkan
 

Plus de mao999

Kernel entrance to-geek-
Kernel entrance to-geek-Kernel entrance to-geek-
Kernel entrance to-geek-mao999
 
4章 Linuxカーネル - 割り込み・例外 5
4章 Linuxカーネル - 割り込み・例外 54章 Linuxカーネル - 割り込み・例外 5
4章 Linuxカーネル - 割り込み・例外 5mao999
 
4章 Linuxカーネル - 割り込み・例外 4
 4章 Linuxカーネル - 割り込み・例外 4 4章 Linuxカーネル - 割り込み・例外 4
4章 Linuxカーネル - 割り込み・例外 4mao999
 
4章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 34章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 3mao999
 
4章 Linuxカーネル - 割り込み・例外 2
4章 Linuxカーネル - 割り込み・例外 24章 Linuxカーネル - 割り込み・例外 2
4章 Linuxカーネル - 割り込み・例外 2mao999
 
4章 Linuxカーネル - 割り込み・例外 1
4章 Linuxカーネル - 割り込み・例外 1 4章 Linuxカーネル - 割り込み・例外 1
4章 Linuxカーネル - 割り込み・例外 1 mao999
 
2章 Linuxカーネル - メモリ管理1
2章 Linuxカーネル - メモリ管理12章 Linuxカーネル - メモリ管理1
2章 Linuxカーネル - メモリ管理1mao999
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきことmao999
 

Plus de mao999 (8)

Kernel entrance to-geek-
Kernel entrance to-geek-Kernel entrance to-geek-
Kernel entrance to-geek-
 
4章 Linuxカーネル - 割り込み・例外 5
4章 Linuxカーネル - 割り込み・例外 54章 Linuxカーネル - 割り込み・例外 5
4章 Linuxカーネル - 割り込み・例外 5
 
4章 Linuxカーネル - 割り込み・例外 4
 4章 Linuxカーネル - 割り込み・例外 4 4章 Linuxカーネル - 割り込み・例外 4
4章 Linuxカーネル - 割り込み・例外 4
 
4章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 34章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 3
 
4章 Linuxカーネル - 割り込み・例外 2
4章 Linuxカーネル - 割り込み・例外 24章 Linuxカーネル - 割り込み・例外 2
4章 Linuxカーネル - 割り込み・例外 2
 
4章 Linuxカーネル - 割り込み・例外 1
4章 Linuxカーネル - 割り込み・例外 1 4章 Linuxカーネル - 割り込み・例外 1
4章 Linuxカーネル - 割り込み・例外 1
 
2章 Linuxカーネル - メモリ管理1
2章 Linuxカーネル - メモリ管理12章 Linuxカーネル - メモリ管理1
2章 Linuxカーネル - メモリ管理1
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
 

カーネルとは