ホームページ  >  記事  >  システムチュートリアル  >  カーネル ソース ツリーの詳細な分析: Kconfig ファイルと Makefile の間の相乗効果

カーネル ソース ツリーの詳細な分析: Kconfig ファイルと Makefile の間の相乗効果

王林
王林オリジナル
2024-06-28 08:18:521050ブラウズ

深入解析内核源码树:Kconfig 文件与 Makefile 的协同作用

原則

カーネル ソース ツリーの各ディレクトリには、ディレクトリ内のソース コードに関連するカーネル構成メニューを記述するために使用される Kconfig ファイルも含まれており、各ディレクトリ内の Kconfig ファイルは分散カーネル構成データベースを構成します。

makemenuconfig コマンドを使用してカーネルを構成する場合、Kconfig ファイルからメニューを読み取ります ストレージ テクノロジーの原理の分析: Linux 26 カーネル ソース コードに基づいて 、構成が完了し、.config という名前のカーネル構成ファイルに保存されます。カーネルで使用されるコンパイル用の Makefile。

ソース コード ディレクトリ ツリーの最上階にある Makefile は、カーネル全体のソース コード管理への入り口であり、カーネル全体のソース コードのコンパイルにおいて決定的な役割を果たします。 Linux C でカーネルをコンパイルする場合、最上位の Makefile はルールに従ってカーネル ソース コードのすべてのサブディレクトリにある Makefile ファイルを再帰的に走査し、各サブディレクトリ内のカーネル モジュールのコンパイルを完了します。

カーネルを構成する

Linux カーネル ソース コードの最上階にあるディレクトリに移動し、makemenuconfig コマンドを入力します。Baidu Netdisk LINUX では、Makefile で ARCH を指定しない場合、Linux カーネル構成のメイン インターフェイスを入力できます。コマンドラインで指定する必要があります:

リーリー

第一レベルのディレクトリ

第 1 レベルのメニューのほぼすべての項目には複雑な下位レベルのサブメニューがあり、それぞれの設定オプションも非常に豊富です。それらを 1 つずつ説明するのは非常に複雑な作業になります。実際の製品開発では、カーネルのすべての構成項目を完全に理解する必要はありません。一般的には、関連する項目の一部を理解するだけで十分です。

内核编写_存储技术原理分析:基于linux 26内核源代码_内核存储原理源基于代码分析

在这里插入图片描述

セカンダリ ディレクトリ Generalsetup は、カーネルの一般設定メニュー インターフェイスです

在这里插入图片描述

SystemVIPC はシステムのプロセス間通信 InterProcess を表します

プログラム間で情報を同期および交換するためにプロセッサによって使用される通信

Enableeventpollsupport: ストームポーリングのシステムコールをサポートします。

Enableloadablemodulesupport はカーネルモジュールの設定です

モジュールアンロードにより、すでにロードされているモジュールをアンロードできます

モジュールバージョン管理のサポートにより、他のカーネルバージョンのモジュールの使用が可能になります (問題が発生する可能性があります)

Sourcechecksumforallmodules は、すべてのモジュールのソース コードを調整します。カーネル モジュールを自分でコンパイルしない場合、この関数は必要ありません。

内核编写_内核存储原理源基于代码分析_存储技术原理分析:基于linux 26内核源代码

ブロックレイヤーのブロックデバイスサポートを有効にする

ハードディスク/USB/SCSI デバイスを使用している人は、ブロック デバイスをカーネルから削除できるようにするには、このオプションを選択する必要があります:

大きな(2TB+)ブロックデバイスとファイルのサポートは、2TB未満のブロックデバイスを使用する場合にのみ必要です

Blocklayerbiothrottlingsupport を使用して、デバイスの IO レートを制限できます

IOSchedulersIO スケジューラ I/O は、主にハードディスクの入出力帯域幅制御であり、中核的な必需品です。ここでは 3 つの IO スケジューラが提供されます。

SystemType はプロセッサのタイプと特性です

対称マルチ処理サポート対称マルチ処理サポート。複数の CPU がある場合、またはマルチコア CPU を使用している場合に選択します

プロセッサフ​​ァミリー (Pentium-Pro) プロセッサ シリーズ。実際に使用される CPU に応じて選択してください。プロセッサの種類は次のとおりです

Genericx86support このオプションは、x86 シリーズ CPU に対してより一般的な最適化を使用します。オプションの 1 つで i386、i586 などを選択した場合は、このユニバーサル x86 サポートを選択してください。

マルチコアスケジューラーのサポートは、マルチコア CPU のスケジューリング戦略を最適化します。マルチコア スケジューリング メカニズムのサポート。4 コア CPU を選択する必要があります。

Busoptions は、PCI、ISA、およびその他のバスのサポートと構成です。KernelFunctions は、カーネル機能の構成メニューです。

内核存储原理源基于代码分析_存储技术原理分析:基于linux 26内核源代码_内核编写

Bootoption 起動オプション、デフォルトの起動パラメータとカーネルパラメータのタイプを設定できます在这里插入图片描述

CPUPowerManagementCPU 電源管理関連

プロセッサ周波数の削減、スリープモードのサポートなどを含む

電源管理オプション電源管理関連のネットワーキングサポートネットワーク構成

イーサネット、CAN、赤外線、Bluetooth、ワイヤレス、その他のネットワークのサポート構成オプションが含まれています

ワイヤレスはワイヤレスネットワークカードサポートを使用します

RFスイッチサブシステムサポートRFスイッチングデバイス

ネットワークオプションのネットワークコントラクトとネットワークパケットパラメータの設定 (TCP/IP関連のコントラクトを開く必要があります)

ネットワークオプション、ネットワークオプション設定インターフェイスに入ることができます

Linux を使用するシステムはネットワークを使用しますが、ネットワークの使用は TCP/TP と切り離せないことが多いため、構成で TCP/IP オプションを選択することをお勧めします 在这里插入图片描述 ストレージ テクノロジーの原理分析: Linux 26 カーネル ソース コードに基づく

、およびすべての下位レベルのオプションを選択します。トライステート オプションは、必要に応じてモジュールを接続するように構成することもできます。

DriverDrivers デバイスドライバー、設定インターフェースも非常に複雑で、多くの設定項目があります

Filesystems はカーネル ファイル システム構成インターフェイスです

内核存储原理源基于代码分析_内核编写_存储技术原理分析:基于linux 26内核源代码

在这里插入图片描述

カーネルハッキング カーネルのデバッグ関連のセキュリティオプションセキュリティ関連のオプション

CryptographicAPI—>//Crypto API、これらのオプションは以前の最適化に従って手動で調整されます

カーネルの調整と構成の基本原則

参考:

Linuxカーネルプルーニングの具体的なプロセスと選択

組み込み Linux カーネルの構成、調整、コンパイルに関するディスカッション

Linux カーネルのコンパイル設定 (Menuconfig グラフィカル フォーム)、ファイル システムを作成する手順

Linuxカーネルの移植とルートファイルシステムの作成

以上がカーネル ソース ツリーの詳細な分析: Kconfig ファイルと Makefile の間の相乗効果の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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