二十七、Linuxカーネルの管理

カーネル: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ファイル:表示されているものから、

lsmodの
で使用されるモジュールサイズ
利用のモジュールのサイズの周波数

 

2.3 のmodinfo  ---モジュールの詳細な説明を示します

     -n:のみ表示モジュールファイルのパス 

     -d:表示説明モジュール 

     -p:パラメータモジュール 

     -kカーネル:ディスプレイモジュール情報指定されたカーネル 

     -a:著者

    -l:ライセンス 

 

1 、显示所有信息
#のmodinfoのext4 
ファイル名:        / libに/モジュール/ 2.632 - 696 .el6.i686 /カーネル/ FS / ext4の/ ext4.ko 
ライセンス:GPL 
の説明:第四拡張ファイルシステム
著者:レミーカード、スティーブン・トゥイーディー、アンドリュー・モートン、アンドレアスDilger、セオドアTsのOなど
srcversion:74AEE2BDA63AC8482A78F4Dが
異なります。 mbcache、jbd2 
vermagic:        2.632 - 696 .el6.i686 SMPのMOD_UNLOAD MODVERSIONS 686  

2 、仅显示ファイル名
#1のmodinfo - Nのext4
/ LIB /モジュール/ 2.632 - 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)

modprobeはpcnet32 lsmodの | fgrepはpcnet32 
pcnet32                 29107   0  
MII                      4476   1。pcnet32 

搭載しpcnet32モジュールinsmodのが $(のmodinfo - N-pcnet32)
 insmodの:挿入エラー" /lib/modules/2.6.32-696.el6.i686/kernel/drivers /net/pcnet32.ko ": - 1未知のシンボルにおけるモジュール
によりによって引き起こさ依存するかもしれ
依存閲覧 pcnet32#1のmodinfoを 依存します:MII ベースのインストール・パスは、依存モジュールである #は
にinsmod $(のmodinfoを-nはMII) のインストールかどうかを確認するために #のlsmodを | fgrepはMII MII 4476 0 インストールpcnet32 insmodの $(のmodinfo - N-pcnet32) インストールかどうかを確認するために #1 はlsmod | fgrepはpcnet32 pcnet32 29107 0 MII 4476 1 pcnet32

 

2. 6、modprobeは---除去モジュール 

  プロフィール:/etc/modprobe.confを、/etc/modprobe.d/*.conf

    modprobeは-r MODULE或rmmodはMODULE

#のmodprobeは - rをpcnet32     lsmodを | fgrepはpcnet32 

#rmmodはpcnet32 lsmodを | fgrepはpcnet32 

 

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.632 - 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 エンド.gzip名前を変更し、
 ミュージックビデオ 

3。 抽出
 GZIP - D 

。4に、ファイルの種類の表示
 ファイルを

。5に、拡張
 のインストール - D initrdの
CDのinitrd 
のcpio - ID <../を

 

第四に、カーネルをコンパイルするのは簡単

1)開発環境の準備

2)ソースを取得します。

3)ターゲットホストのハードウェアデバイスに関する情報を取得します

4)---実際のニーズをターゲットにターゲットホストパイプ区間情報項目にシステム機能を取得します

 

レディ開発環境

  パケットグループ(CentOSの6):YUM GROUPLIST

    サーバープラットフォームの開発

    開発ツール

4.1、

ホストのハードウェア関連の情報をターゲット:

CPU

  の/ proc / cupinfo 

  yumを インストールx86infoの
    x86infoのを   - lsmodのを
  

PCI

  #lspci

  #lsusb

  #lsblk

すべてのハードウェア情報を学びます

  #デバイス

 

最初は最高の図のモジュールファイルを参照して行われます。

 

4.2、

1)ソースを取得します。

  https://www.kernel.org/ 

  **未満3.10バージョン

 

2)を/ usr / local /ディレクトリに展開します

タールXFにlinux-3.10.67.tar.xz -Cは/ usr / local / srcに

wKiom1mxHyCBSMxXAAAIZ2oF4m4624.png

 

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)モジュールのサポートを選択します

wKiom1mxIDLREUx8AAALO3MpXHs787.png

wKiom1mxIFujZ8AvAAAFQHMiUJU154.png

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を

wKioL1mxP7OjfXUwAAA4gAEHQgo575.png

 

wKiom1mxP9Sg-QOwAAAFvl70r9k419.png

 8)、システムを再起動して、新しいカーネルをテスト

おすすめ

転載: www.cnblogs.com/liuzhiyun/p/11440666.html