原則
カーネル ソース ツリーの各ディレクトリには、ディレクトリ内のソース コードに関連するカーネル構成メニューを記述するために使用される Kconfig ファイルも含まれており、各ディレクトリ内の Kconfig ファイルは分散カーネル構成データベースを構成します。
makemenuconfig コマンドを使用してカーネルを構成する場合、Kconfig ファイルからメニューを読み取ります ストレージ テクノロジーの原理の分析: Linux 26 カーネル ソース コードに基づいて 、構成が完了し、.config という名前のカーネル構成ファイルに保存されます。カーネルで使用されるコンパイル用の Makefile。
ソース コード ディレクトリ ツリーの最上階にある Makefile は、カーネル全体のソース コード管理への入り口であり、カーネル全体のソース コードのコンパイルにおいて決定的な役割を果たします。 Linux C でカーネルをコンパイルする場合、最上位の Makefile はルールに従ってカーネル ソース コードのすべてのサブディレクトリにある Makefile ファイルを再帰的に走査し、各サブディレクトリ内のカーネル モジュールのコンパイルを完了します。
カーネルを構成する
Linux カーネル ソース コードの最上階にあるディレクトリに移動し、makemenuconfig コマンドを入力します。Baidu Netdisk LINUX では、Makefile で ARCH を指定しない場合、Linux カーネル構成のメイン インターフェイスを入力できます。コマンドラインで指定する必要があります:
リーリー
第一レベルのディレクトリ
第 1 レベルのメニューのほぼすべての項目には複雑な下位レベルのサブメニューがあり、それぞれの設定オプションも非常に豊富です。それらを 1 つずつ説明するのは非常に複雑な作業になります。実際の製品開発では、カーネルのすべての構成項目を完全に理解する必要はありません。一般的には、関連する項目の一部を理解するだけで十分です。
セカンダリ ディレクトリ Generalsetup は、カーネルの一般設定メニュー インターフェイスです
SystemVIPC はシステムのプロセス間通信 InterProcess を表します
プログラム間で情報を同期および交換するためにプロセッサによって使用される通信
Enableeventpollsupport: ストームポーリングのシステムコールをサポートします。
Enableloadablemodulesupport はカーネルモジュールの設定です
モジュールアンロードにより、すでにロードされているモジュールをアンロードできます
モジュールバージョン管理のサポートにより、他のカーネルバージョンのモジュールの使用が可能になります (問題が発生する可能性があります)
Sourcechecksumforallmodules は、すべてのモジュールのソース コードを調整します。カーネル モジュールを自分でコンパイルしない場合、この関数は必要ありません。
ブロックレイヤーのブロックデバイスサポートを有効にする
ハードディスク/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 は、カーネル機能の構成メニューです。
Bootoption 起動オプション、デフォルトの起動パラメータとカーネルパラメータのタイプを設定できます
CPUPowerManagementCPU 電源管理関連プロセッサ周波数の削減、スリープモードのサポートなどを含む
電源管理オプション電源管理関連のネットワーキングサポートネットワーク構成
イーサネット、CAN、赤外線、Bluetooth、ワイヤレス、その他のネットワークのサポート構成オプションが含まれています
ワイヤレスはワイヤレスネットワークカードサポートを使用します
RFスイッチサブシステムサポートRFスイッチングデバイス
ネットワークオプションのネットワークコントラクトとネットワークパケットパラメータの設定 (TCP/IP関連のコントラクトを開く必要があります)
ネットワークオプション、ネットワークオプション設定インターフェイスに入ることができます
Linux を使用するシステムはネットワークを使用しますが、ネットワークの使用は TCP/TP と切り離せないことが多いため、構成で TCP/IP オプションを選択することをお勧めします ストレージ テクノロジーの原理分析: Linux 26 カーネル ソース コードに基づく
、およびすべての下位レベルのオプションを選択します。トライステート オプションは、必要に応じてモジュールを接続するように構成することもできます。DriverDrivers デバイスドライバー、設定インターフェースも非常に複雑で、多くの設定項目があります
Filesystems はカーネル ファイル システム構成インターフェイスです
カーネルハッキング カーネルのデバッグ関連のセキュリティオプションセキュリティ関連のオプション
CryptographicAPI—>//Crypto API、これらのオプションは以前の最適化に従って手動で調整されます
カーネルの調整と構成の基本原則
参考:
Linuxカーネルプルーニングの具体的なプロセスと選択
組み込み Linux カーネルの構成、調整、コンパイルに関するディスカッション
Linux カーネルのコンパイル設定 (Menuconfig グラフィカル フォーム)、ファイル システムを作成する手順
Linuxカーネルの移植とルートファイルシステムの作成
以上がカーネル ソース ツリーの詳細な分析: Kconfig ファイルと Makefile の間の相乗効果の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。