カーネルとは何ですか?それは何をしますか?
コンピューターを使用している場合は、カーネルという名前を聞いたことがあるはずです。しかし、カーネルとは何か知っていますか?どこに必要ですか?そうでない場合は、今日の記事の最後に、カーネルに関連するすべてのことについて学びます。詳細については、私たちと一緒にいてください。
このカーネルは、コンピューターオペレーティングシステム(OS)の非常に重要な中心です。これは、オペレーティングシステムのさまざまな部分に必要なすべてのサービスを提供するカーネルです。これは、オペレーティングシステムとハードウェアの間のメインレイヤーであり、メモリ、ファイルシステム、デバイスコントロール、およびネットワークの処理と管理に役立ちます。
カーネルは、ほとんどの場合、シェルと比較されます。シェルは、実際には、ユーザーコマンドと対話するオペレーティングシステムの外部部分です。カーネルとシェルは、IBMメインフレームまたはMicrosoft Windowsシステムに関して、Unixオペレーティングシステムで頻繁に使用される用語です。
カーネルを基本入出力システム(BIOS)と混同しないでください。これは、コンピューターの回路基板のチップに格納されている独立したプログラムです。
そのため、今日、カーネルとは何か、カーネルがどのように機能するかについての完全な情報を提供してみませんか。これにより、この基本的なコンピューターCの一部を知ることができます。それでは、遅滞なく始めましょう。
カーネルとは
オペレーティングシステムは、コンピュータシステムにコマンドを与えることができるようにグラフィカルインターフェイスを提供します。ただし、システムはこれらのコマンドを直接理解できません。
そのため、コードは、オペレーティングシステムのコアコンポーネントが使用されるバイナリ言語でコンパイルされ、カーネルと呼ばれます。
ユーザーカーネルの最下層を処理し、次にカーネルがシステムを処理します。
カーネルは、システムのハードウェアとソフトウェアの間の仲介役の役割を果たします。このカーネルはオペレーティングシステム(OS)ではありません。これは、オペレーティングシステムの中心的なユニットです。これは、起動プロセス中に保護されたメモリ領域にロードされる最初のプログラムです。システムが実行されている限り、そのメモリに保持されます。
このカーネルは、低レベルの抽象化レイヤーです。ユーザープロセスは、システムを使用してシステムと対話します。システムがカーネルを呼び出し、カーネルがユーザープロセスを実行します。
カーネルは、プロセス管理、メモリ管理、デバイス管理、I / O管理などの他のシステムプロセスを同時に管理します。
カーネルは何をしますか?
先に述べたように、カーネルはオペレーティングシステムの基本的なコンポーネントです。これは、ハードウェアレベルで行われるプロセスとシステムコール間の接続を使用して、アプリケーションとプロセスデータ間のブリッジとして機能します。
オペレーティングシステムがメモリにロードされると、カーネルが最初にロードされ、オペレーティングシステムが再びシャットダウンするまでメモリに残ります。このカーネルは、ディスク管理、タスク管理、メモリ管理などのすべての低レベルタスクを担当します。
一般に、コンピューターカーネルは3つの主要なコンピューターハードウェアコンポーネントにインターフェイスし、アプリケーション/ユーザーインターフェイス、CPU、メモリ、およびその他の入出力デバイスにもサービスを提供します。
このカーネルを提供するだけでなく、コンピューターリソースも管理するため、他のプログラムがこれらのリソースを実行および使用できるようになります。
これにより、カーネルはアプリケーションのメモリアドレス空間を準備し、アプリケーションコードからメモリにファイルをロードし、プログラムの実行スタックを設定し、プログラム内で実行するために特定の場所に分岐します。
カーネルの機能は何ですか?
カーネルの機能を理解しましょう。
カーネルの責任は何ですか?
それでは、カーネルの責任について学びましょう。
1. CPU:これと同じコアが、任意の時点でプロセッサに割り当てられる必要のある実行中のプログラムの数を担当します。
2. RAM:RAMは、プログラム命令とデータの両方を格納するために使用されます。多くのプログラムはこのメモリにアクセスしたいことがよくありますが、コンピュータで使用可能なメモリよりも多くのメモリが必要です。
このような場合、カーネルは、使用するメモリを割り当てるとともに、使用可能なメモリが不足しているときに何をするかを決定する責任があります。
3. I / Oデバイス:これらのコアは、さまざまなアプリケーションからの要求を割り当てて、I / O操作を正しいデバイスで実行できるようにします。さらに、デバイスを使用する便利な方法も提供します。
4.メモリ管理:このカーネルはシステムメモリに完全にアクセスでき、必要なときに安全にアクセスすることもできます。
5.デバイス管理:カーネルは、使用可能なすべてのデバイスのリストを保持する必要があります。このメニューは、ユーザーによってすでに構成されているか、実行時にオペレーティングシステムによって検出されます(通常はプラグアンドプレイと呼ばれます)。
カーネルはどのような機能を提供しますか?
それでは、カーネルが提供する機能を調べてみましょう。
1)プロセススケジューリング(ディスパッチ)
2)
プロセス間通信3)プロセス同期
4)コンテキストスイッチ
5)プロセス制御ブロック操作
6)割り込み処理
7)プロセス作成破棄
8)プロセス一時停止再開
カーネルの定義
オペレーティングシステムのジョブマネージャはカーネルです。オペレーティングシステムのすべての基本機能を制御および管理します。
メモリ管理:カーネルは、プロセスが実行を完了するための仮想メモリと物理メモリを提供します。プロセスが物理メモリで終了できない場合、カーネルはハードディスクに仮想スペースを提供して、そこにプロセスを保存できるようにします。
この概念は仮想マッピングと呼ばれます。プログラムが現在RAMにないデータを必要とする場合、CPUはデータのカーネルを指し、カーネルもCPUに応答して、その内容を非アクティブなメモリブロックに書き込みます。可能なディスク(データ要件に従ってこの目的のために作成されたスペース)に配置され、プログラムによって要求されたデータに置き換えられます。この方式はデマンドリレーと呼ばれます。
スケジューラー:このカーネルは、操作の実行中にスケジューラーとして機能します。一度に1つの操作がプロセッサによって実行されます。このカーネルは、実行中のアプリケーションのリストからプロセッサをプログラムに割り当てます。
デバイス管理:カーネルは、デバイスドライバーを使用して他の周辺機器のアクティビティを制御します。デバイスドライバは、オペレーティングシステムがハードウェアデバイスと対話するのを支援するプログラムです。
デバイスドライバーはインターフェイスを提供し、オペレーティングシステムがプリンター、スキャナー、モデム、キーボード、マウスなどの他の周辺機器と対話するのに役立ちます。
このドライバーは、OS関数呼び出しをデバイス固有の呼び出しに変換します。デバイスドライバは、システムの起動時にインストールされたデバイスと検索エンジンを検出します。
このプロセスでは、システムコールメカニズムを使用してオペレーティングシステムカーネルを処理します。システムコールは、カーネルへのサービスコールであり、そこから操作を実行するための許可を取得します。アプリケーションプログラムがオペレーティングシステムからサービス許可を取得できるようにするために使用するシステムコールマシンコード命令があります。
メモリ管理: -このカーネルはRAMも管理します。命令とデータ実行の両方にメモリを割り当てます。どのプロセスがRAMにあり、プロセスを実行するために必要なメモリ量を決定しますか?このカーネルは、異なるメカニズムを使用して多くのプロセスを処理します。
カーネルタイプ
それでは、さまざまな種類のカーネルについて理解しましょう。
モノリシック核
モノリシックカーネルは、プロセス管理、メモリ、割り込み処理、I / O接続、ファイルシステムなどのすべての基本的なシステムサービスをカーネル空間内で実行します。
モノリシックコアは通常、他のすべてのコアの中で最も高いデータ転送速度を備えているため、大規模なサーバーまたはジョブ専用のサーバーで使用されます。
モノリシックコア
1)ソースモデルとコンパイラモデルが小さい
2)コードが少ないということは、バグとセキュリティの問題が少ないことを意味します。
3)システムコールはモノリシックカーネルで操作を実行するために使用されます
4)実行は非常に高速です
5)これではすべてがカーネル自体で行われるため、アプリのビルド中に処理するための追加のI / Oとプロセスメカニズムは必要ありません。
均質なカーネルの欠陥
1)カーネル空間では共通ライブラリを使用できないため、エンコーディングも非常に困難です。
2)コンピュータを頻繁に再起動する必要があるため、これでのデバッグは困難です
。3)カーネルの一部でエラーが発生すると、多くの副作用が発生します
。4)カーネルが大きくなり、保守が困難になることがよくあります。
5)移植性がない-モノリシックカーネルは、OSで使用される新しいアーキテクチャごとに頻繁に書き直す必要があります。
マイクロカーネル
一方、マイクロカーネルでは、カーネルは、個別のサーバーとソフトウェアの実装を可能にする基本的な機能を提供します。カーネルは、サーバーと呼ばれる個別のプロセスに分割されます。ここでは、一部のサーバーはユーザースペースで実行され、他のサーバーはカーネルスペースで実行されています。
すべてのサーバーは別々に保持され、異なるアドレス空間で実行されます。通常、マイクロカーネルはリアルタイムシステム
で見ることができます。
MicroKernelの利点
1)モノリシックカーネルに比べて保守が簡単です。
2)フェイルプルーフです(つまり、1つのサーバーに障害が発生しても、他のサーバーは引き続き効率的に実行されます)。
3)ポータブル
4)サイズ
が小さい5)少量のコードが含まれています。これにより、安定性とセキュリティが向上します。
ハイブリッドカーネル
これには、同種カーネルとマイクロカーネルの両方の最良のものが混在しています。
速度、モノリシックカーネルのシンプルな設計+モジュール性、小さなカーネルの安定性など
均質核と小核の両方の性質を持っていますが、それが排他的に特定の核であるとは言えません。
これらのコアは通常、デスクトップ、Windows、Mac、およびLinuxオペレーティングシステムで確認できます。
ナノコア
このタイプのカーネルはハードウェアアブストラクションのみを提供し、サービスは含まれていません。カーネルのスペースは最小限です。ナノカーネルは、仮想化を介して複数のシステムをシミュレートできるハイパーバイザーのコアです。コアはコンパクトなプロジェクトに最適です。
エクソカーネル
この核は最小です。プロセス保護とリソース処理のみを提供します。このカーネルを使用するプログラマーは、使用したいデバイスに適切にアクセスする責任があります。
カーネルとオペレーティングシステムの違い
OSはシステムソフトウェアパッケージですが、カーネルはすべてのプロセスとデバイスを管理するオペレーティングシステムの一部です。
オペレーティングシステムがユーザーとデバイス間のインターフェイスである場合。一方、カーネルはソフトウェアとハードウェアの間のインターフェースです。
カーネルは、ソフトウェアが他の周辺機器と通信するのに役立ちます。
Linuxはカーネルですか、それともオペレーティングシステムですか?
ちなみに、カーネルとOSには違いがあります。カーネルはそのすべての重要な機能を管理するオペレーティングシステムの心臓部であるとすでに述べたように、いくつかの有用なアプリケーションとツールがそのカーネルに追加された場合、この完全なパッケージはOSと呼ばれます。は。
このことから、オペレーティングシステムにはユーザースペースに加えてカーネルスペースがあると言えます。
これは、Linuxがカーネルであることを示しています。これは、ファイルシステムツール、ウィンドウシステム、グラフィカルデスクトップ、sysadminコマンド、テキストエディター、コンパイラーなどの他のアプリケーションが含まれていないためです。
同時に、多くの企業がこれらのタイプのアプリケーションをLinuxカーネルに追加し、ubuntu、suse、centOS、redHatなどの独自のオペレーティングシステムをセットアップしています。
カーネルパニックとは何ですか?
カーネルはコンピュータの基本的な機能のほとんどを処理するため、クラッシュするとコンピュータ全体が損傷します。この不要なイベントは、macOSおよびUnixシステムでは「カーネルパニック」と呼ばれます。
これは、Windowsのブルースクリーンに似ています。この状況から抜け出すには、コンピュータを再起動する必要があります。
注 カーネルパニックは、ハードウェア接続の問題が原因で発生することがよくあります。したがって、コンピュータにカーネルの恐怖などの問題が何度も表示される場合は、不要なハードウェアをすべて切断する必要があります。これにより、問題が解決する可能性があります。
結論
私の記事「カーネルとは」(カーネルとは)を気に入っていただけたでしょうか。私は常にカーネルに関する完全な情報を読者に提供しようとしてきました。これにより、読者はこの記事のコンテキストについて他のWebサイトやインターネットを検索する必要がなくなります。
これはまた彼らの時間を節約し、彼らはまた一箇所にすべての情報を持っているでしょう。この記事について疑問がある場合、またはこの記事に何らかの改善を加えたい場合は、コメントを少なくすることができます。
この投稿が気に入った場合は、カーネルとは何か、または何かを学んだ場合は、Facebook、Twitterなどのソーシャルネットワークでこの投稿を共有してください。