ホームページ >運用・保守 >Linuxの運用と保守 >Linuxカーネルとは何ですか

Linuxカーネルとは何ですか

藏色散人
藏色散人オリジナル
2023-03-23 10:20:505393ブラウズ

linux カーネルとは、主に IO ドライバー デバイス管理、TCP/IP、およびタスク スケジューリングを完了するために機能する Linux カーネルを意味します。Linux カーネルは、Linux オペレーティング システムの主要コンポーネントであり、コンピューター ハードウェアとそのプロセス間のコア インターフェイスです。 . は、2 つの間の通信を担当し、リソースを可能な限り効率的に管理します。

Linuxカーネルとは何ですか

#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。

Linux カーネルとは何ですか?

linux kernel は Linux カーネルを意味し、主に IO ドライバー デバイス管理、TCP/IP、およびタスク スケジューリングを完了するために機能します。

Linux カーネルは、Linux プラットフォームをベースにした Linux カーネルと訳されます。Linux は C 言語で書かれたカーネルです。このカーネルをベースにして、Red Hat linux や open suse linux などの特定のオペレーティング システムが派生します。 Linux カーネルに基づいた完全なオペレーティング システムは、Linux オペレーティング システム、または GNU/Linux と呼ばれます。

Linux カーネルの概要

Linux カーネルは、Linux オペレーティング システム (OS) の主要コンポーネントであり、コンピューター ハードウェアとそのプロセス間のコア インターフェイスです。両者間の通信を担当し、リソースを可能な限り効率的に管理します。

これは、果物の硬い殻の中の種のように、オペレーティング システム内でハードウェア (電話、ラップトップ、サーバー、またはその他のタイプのコンピューター) に関するすべてを制御するため、カーネルと呼ばれます。 . 主な機能。

Linux カーネルの役割

コンテンツには次の 4 つの機能があります。

  • メモリ管理: メモリ量の追跡メモリは保存されます。 何が、どこに保存されます。

  • プロセス管理: どのプロセスが中央処理装置 (CPU) をいつ、どのくらいの期間使用できるかを決定します。

  • デバイス ドライバー: ハードウェアとプロセスの間の仲介者/インタープリターとして機能します

  • システム コールとセキュリティ保護: プロセスからのサービス リクエストを受け入れます

正しく実装された場合、カーネルはユーザーには見えず、独自の小さな世界 (カーネル空間と呼ばれる) で動作し、そこからメモリを割り当て、すべてが保存されている場所を追跡します。ユーザーが目にするもの (Web ブラウザーやファイルなど) をユーザー空間と呼びます。これらのアプリケーションは、システム コール インターフェイス (SCI) を通じてカーネルと対話します。

これは次のように理解できます。カーネルは、幹部 (ハードウェア) にサービスを提供する多忙な個人アシスタントのようなものです。アシスタントの仕事は、従業員や一般 (ユーザー) からのメッセージとリクエスト (プロセス) を役員に転送し、何がどこに保存されているか (メモリ) を記憶し、いつでも誰が役員と面会できるか、いつ会議が利用できるかを決定することです。 。 どのぐらいの間。

Linux カーネルについては、まずそのディレクトリ構造を見てみましょう。ここでは重要な手順をいくつか紹介します。

arch には、アーキテクチャに関連するすべてのコア コードが含まれています。内部からは arm、alpha、i386、mips、ia64 などのフォルダーが表示されます。各プロセッサ アーキテクチャには異なるハードウェア モジュールがあります。ここでは、アーキテクチャごとに異なる初期化を実行する必要があります。

init には、カーネル初期化コード (システム ブート コードではありません) が含まれています。このコードには main.c ファイルがあり、カーネルのすべての初期化作業 (メモリの初期化、すべてのハードウェアの初期化、および最初のタスク task0、割り込み有効フラグを設定)、その後ユーザー モードに移行し、fork() 関数を呼び出して新しいプロセスを作成し、コンソール上でシェルを実行します。

kernel には、カーネル管理のコア コードが含まれています。名前を見るだけで、これが、fork、exit、スケジューラ (sched.c) などのタスクを処理するすべてのプログラムを含む重量級のディレクトリであることがわかります。一部のシステム コール (sys.c)、信号処理 (signal.c)、時間関数 (time.c)、および割り込み例外処理、電源管理などの複雑な呼び出し関係を持つ一連の関数。

mm にはすべてのメモリ管理コードが含まれます。これらには、プロセスの論理アドレスと実際の物理アドレスのマッピングの実現、ページングとセグメンテーションのメカニズムの実装、メモリ ページ例外割り込みハンドラーの実装などが含まれます。

ドライバーには、cdrom、bluetooth、pci、i2c など、システム内のすべてのデバイス ドライバーが含まれます。

ipc には、コアのプロセス間通信コードが含まれています。

fs は、Linux でサポートされるファイル システム コードを保存します。これには、ext2、ext3、ext4、fat、ntfs などの多数のディレクトリが含まれます。

net はカーネルのネットワーク部分コードであり、その各サブディレクトリは、ieee80211、ipv4、ipv6 ディレクトリなどのネットワークの側面に対応します。

lib には、strcpy、sprintf、sort などの関数を含むコア ライブラリ コードが含まれています。

関連する推奨事項: 「Linux ビデオ チュートリアル

以上がLinuxカーネルとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。