カーネル:unameコマンド
内核:のuname、mkinitrdの、ドレーカット
模块:lsmodの、のmodinfo、でdepmod、modprobeは、insmodの、rmmodは
/ procの、sysctlを、/ SYSは、/ dev、udevadm、ホットプラグコマンド
静的な視点:
Linuxカーネルモジュール
吸収マイクロカーネルの設計は:モジュール設計をサポートしています。
カーネルモジュールの.ko(カーネルオブジェクト)
ライブラリの.so(共有オブジェクト)プログラムの呼び出し
プログラムの概念にカーネルモジュールライブラリ相当が、唯一のカーネルモジュールを呼び出すことができます。ライブラリにのみ呼び出すことができます
シングルコアシステムの設計が、完全にはマイクロカーネルの設計システム、カーネル用のモジュラーメカニズムの導入の利点を生かし
コアコンポーネント:
カーネル:カーネルモジュールは、一般的にイメージ、bzImageは、通常では/ bootディレクトリvmlinuzで-VERSION-RELEASEという名前;
カーネルオブジェクト:カーネルオブジェクトは、一般的に/ LIB /モジュール/ VERSION-RELEASE配置します
ドキュメントのinitramfs(CentOSの6,7)、initrdのサポート(CentOS5)
3つのオプション: []:N ---関数をコンパイルしない(機能サポートされていない) [M]:M ---コンパイルモジュール(動的負荷要求) [ *]:--- Yのコアコンポーネントにコンパイル(必要に応じて使用される)部分
第二に、ダイナミックな視点:
2.1、unameコマンド
カーネル関連情報を参照 のunameの表示システム(カーネル)の情報は 、オペレーティング・システムの名前を表示する-s 現在のホスト名が表示さ-n:ノード名が表示され -r RELEASE解像度ディスプレイとVERSION - Vカーネル生成された表示情報号SMP SMP - M電流ハードウェアプラットフォームはx86_64 - p型またはディスプレイプロセッサアーキテクチャx86_64の - Iアーキテクチャx86_64の -oオペレーティングシステム(GNU / Linux)の
2.2、lsmodを --- ビューモジュールはカーネルによってロードされています
/ procの/ modulesファイル:表示されているものから、
2.3 のmodinfo ---モジュールの詳細な説明を示します
-n:のみ表示モジュールファイルのパス
-d:表示説明モジュール
-p:パラメータモジュール
-kカーネル:ディスプレイモジュール情報指定されたカーネル
-a:著者
-l:ライセンス
1 、显示所有信息 #のmodinfoのext4 ファイル名: / libに/モジュール/ 2.6。32 - 696 .el6.i686 /カーネル/ FS / ext4の/ ext4.ko ライセンス:GPL の説明:第四拡張ファイルシステム 著者:レミーカード、スティーブン・トゥイーディー、アンドリュー・モートン、アンドレアスDilger、セオドアTsの「Oなど srcversion:74AEE2BDA63AC8482A78F4Dが 異なります。 mbcache、jbd2 vermagic: 2.6。32 - 696 .el6.i686 SMPのMOD_UNLOAD MODVERSIONS 686 2 、仅显示ファイル名 #1のmodinfo - Nのext4 / LIB /モジュール/ 2.6。32 - 696 .el6.i686 /カーネル/ FS / ext4の/ ext4.ko 3。のみライセンス示し #のmodinfo - Lのext4の GPL 4。 、表示のみ説明 位のmodinfo - Dのext4の 第四は、ファイルシステムを拡張 。5 、のみの表示 #のmodinfo - ext4は レミーカード、トゥイーディー、スティーブン、アンドリュー・モートン、アンドレアスDilgerのセオドアTsの" Oおよびその他 6。 、ディスプレイモジュールパラメータ #のmodinfo -pのext4
2.4、依存関係生成モジュール でdepmod
カーネルモジュールはファイルや情報マッピングファイル生成ツールの依存関係します
指定されたカーネルに依存-bの生成
依存カーネルモジュールやライブラリ/boot/system.map-VERSION-RELEASE
モジュールの依存関係/lib/modules/VERSION-RELEASE/modules.dep.bin
2.5、ローディングモジュールの modprobeはモジュールまたはinsmodの$(のmodinfo -n MODULE)
2. 6、modprobeは---除去モジュール
プロフィール:/etc/modprobe.confを、/etc/modprobe.d/*.conf
modprobeは-r MODULE或rmmodはMODULE
2.7、/ procディレクトリ
独自の内部状態情報と統計情報をカーネル、および構成パラメータがPROC擬似ファイルシステムを介して出力することができます。
読み取り専用:出力情報を-----カーネル内部の統計情報、ステータス情報
書き込み可能:設定可能なパラメータ、の/ proc / sysディレクトリ、コマンドにsysctlで制御、コアパフォーマンスの調整
一時的に適用される: 'STRING'>は、/ proc / sys / kernel /ホスト名、sysctlを-w kernel.hostname = '文字列' エコー
常設:/etc/sysctl.confの
(1)sysctlコマンドは、このディレクトリを表示するために、または多くのパラメータを設定するために使用されています。
sysctlの-w path.to.parameter = VALUE
#sysctl -w kernel.hostname =劉
(2)リダイレクションを介してエコーコマンドは、ほとんどのパラメータに変更することができます
「VALUE」エコー>パス/に/パラメータ
#echoは "localhost">は、/ proc / sys / kernel /ホスト名
sysctlのコマンド:
プロフィール:/etc/sysctl.confの
- すべてのカーネルパラメータの表示
、設定ファイルを再読み込み-p
- P CONFIG_FILEは、ファイルパラメータ設定読ん
設定-w PARAMETER = 'VALUE'カーネルパラメータを :ホスト名は、/ proc / sys / kernel / HOSTNAMの 'VALUEの' #エコー>は、/ proc / sys / kernel /ホスト名を
#SYSCTL -w kernel.hostname = 'VALUE'
カーネルルーティングフォワーディング: / PROC / SYS / NET /のIPv4 / ip_forward 。1:オープン; 0 :閉じる
キャッシュ/バッファ回復:/ proc / sys / vm / drop_cachesと 1:dropcache
#sysctl -w vm.drop_caches = 1
いくつかの一般的なパラメータは、ディレクトリ:()にマッピングされ
net.ipv4_forward
vm.drop_caches
kernel.hostname
2.8、ハードウェアデバイスのための/ sysディレクトリ---
コアの出力で識別された各ハードウェア装置の関連属性情報、コアのコンフィギュレーション情報は、ハードウェアの機能を有している:いくつかのパラメータは、ハードウェアの動作特性を調整するために、改変することができます
ハードウェア情報a)は、カーネルのプローブ
カーネル2.4は/以前に無駄なスペースの多くを引き起こして、すべてのデバイスファイルは、/ dev /ディレクトリのファイルとよりのDEV /ディレクトリの下に作成します
オンデマンドで作成されたオンデマンド次世代カーネル2.4+の/ dev /デバイスファイルのディレクトリ、カーネル一時的な検出、スペースを節約
B)、udevのこの動的情報出力装置によっては、必要なデバイスのファイルパスを作成し、udevのプログラムは、ユーザ空間で実行され
- udevの工具:udevadmin、ホットプラグ
- udevは、デバイスのデバイスファイルを作成する場合、通常、ディレクトリ/etc/udev/rules.dと/usr/lib/udev/rules.dに、その事前定義されたルールファイルを読み込み
- ハードウェア/ sysディレクトリ内の情報を読み、/ devディレクトリ内のデバイスファイルを作成します
3、RAMディスクファイルを作ります
現在使用されて再作成するカーネルにRAMディスクファイル:(1)コマンドをmkinitrdを
mkinitrdの[OPTION ...] [<initrdのイメージ> <カーネルバージョン>
#1 MV /ブーツ/ initramfs- 2.6。32 - 573 .el6.x86_64.img /ルート/ #mkinitrdを /ブーツ/ initramfsの- $(のuname -r).imgの$(のuname -r)
(2)ドレーカットコマンド
ドレーカット[OPTION] ... <イメージ> <カーネルバージョン>
#dracut /ブーツ/ initramfsの- $(のuname -r).imgの$(のuname -r)
3.2、initramfsのを展開する - $(のuname -r).IMGを
第四に、カーネルをコンパイルするのは簡単
1)開発環境の準備
2)ソースを取得します。
3)ターゲットホストのハードウェアデバイスに関する情報を取得します
4)---実際のニーズをターゲットにターゲットホストパイプ区間情報項目にシステム機能を取得します
レディ開発環境
パケットグループ(CentOSの6):YUM GROUPLIST
サーバープラットフォームの開発
開発ツール
4.1、
ホストのハードウェア関連の情報をターゲット:
CPU
猫の/ proc / cupinfo yumを インストールx86infoの x86infoのを - lsmodのを
PCI
#lspci
#lsusb
#lsblk
すべてのハードウェア情報を学びます
#デバイス
最初は最高の図のモジュールファイルを参照して行われます。
4.2、
1)ソースを取得します。
**未満3.10バージョン
2)を/ usr / local /ディレクトリに展開します
タールXFにlinux-3.10.67.tar.xz -Cは/ usr / local / srcに
3)シンボリックリンクを作成します。
LN -svのlinux-3.10.67のlinux
4)、[ルート@ localhostのSRC] #cdのLinux
[ルート@ localhostのソース] #cp /boot/config-2.6.32-573.el6.x86_64の.config
5)モジュールのサポートを選択します
ncurses-develのをインストールするように求め、YUMのncurses-develのインストール-y
次に、インターフェイスとしてポップアップ表示されますmenuconfigのmakeコマンドを実行する(負荷の.configファイルの内容)
a)は、提供リリース番号
b)は、ホスト名を設定
C)、NTFSファイルシステムをサポートするように設定
D)、ネットワークドライブをサポートするように構成されました
仮想画面を開きます。
yumを -Y インストール画面を Ctrlキー:終了 + によって放出された後D 記載されている:画面を - LS IDの見つけ 接続を押す:画面 -R&LT ID
6)、コンパイル
-j#の作る
CPUのCPUコアとして#のlscpuに番号(複数可)
7)、インストールを実行します。
modules_installを作ります
make installを
8)、システムを再起動して、新しいカーネルをテスト