忍者ブログ
考えるLINKは優良なサイトを紹介しています。
[1]  [2]  [3
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

カーネルの概要

まとめ

保存版

全てではないが、多くのオペレーティングシステム (OS) はカーネルを内包する。ハードウェアとソフトウェアの間の通信を管理するソフトウェアとしてのカーネルは、性能、メモリ効率、セキュリティ、プロセッサのアーキテクチャなどが複雑に絡んだ問題への妥協的解答である。
多くの場合、ブートローダーがカーネルを特権モードのプロセスとして起動する。
しかし、初期化が完了すると、カーネルはいわゆるプロセスとしては存在せず、ディスクアクセスなどの高い特権レベルを必要とする処理を必要としたときにユーザプログラムから呼び出される機能の集合体として存在することになる。
カーネルの処理の流れはユーザープロセスの処理の流れの延長上にあり、システムコールによってカーネルに処理が渡り、終了するとユーザーに戻っていく。
初期化時のカーネルの処理の流れは「アイドルプロセス」とか「collects」と呼ばれ、プロセッサが何もしていないときに実行される。

カーネル開発はプログラミングの中でも複雑で難しいタスクのひとつと考えられる。
オペレーティングシステムの中核部であるということは、高い性能を要求される最重要なソフトウェアであり、正しく設計し実装することは難しい。
カーネルはユーザプログラムの互換性や移植性を考慮する必要などから、設計が制限されることもあり、そのことがさらに開発を難しくしている。


なるほどね

難しい

レベルの高いものなんですね・・・・
PR
カーネル(英: Kernel)は、階層型に設計されたオペレーティングシステム (OS) の中核となる部分である。
システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理する。
オペレーティングシステムの基本コンポーネントとして、カーネルはメモリ、CPU、入出力を中心としたハードウェアを抽象化し、ハードウェアとソフトウェアがやり取りできるようにする。
また、ユーザープログラムのための機能として、プロセスの抽象化、プロセス間通信、システムコールなどを提供する。
これらのタスクはカーネルによって方式が異なり、設計も実装も異なる。

モノリシックカーネルは全てを一つの仮想アドレス空間に格納されたコードで実行して性能を向上させようとする。
マイクロカーネルはサービスの大部分をユーザー空間で実行し、コードの保守性とモジュール性を向上させようとする。
多くのカーネルはこの二つのカテゴリのいずれか、あるいは中間である。


少し カーネルのことが理解できたかも
忍者ブログ [PR]