• Online Tools
  • - Calculators
    • Character Count
  • - Download
    • TikTok Download
    • DouYin Download
  • - Web Tools
    • BASE64
    • Base64 to Image
    • Image to Base64
    • URL Encoding
    • JavaScript
    • Timestamp
    • Unicode Converter
    • JSON Format
    • Modify Extension
    • Make List
    • CSS Optimizer
  • - Encryption Tools
    • MD5 Encryption
    • Random Generator
  • - Image Tools
    • Image Compression
    • QR Code Generator
    • QR Code Reader
    • Wallpaper Preview
    • Image EXIF
  • - Info Sheets
    • Blood Type Heredity
    • Clothing Sizes
  • [email protected]
DopuBox
  • English
  • Español
  • Français
  • 日本語
  • 한국어
  • 简体中文
  • 繁體中文
全部 ニュース Meta Code 文化・アート
RedHatシステムでよく使用される重要なカーネルファイルについて説明します
2022-01-15

ネットワークでは、多くのサーバがLinuxシステムを採用しています。サーバのパフォーマンスをさらに向上させるには、Linuxカーネルを特定のハードウェアおよび必要に応じて再コンパイルする必要がある場合があります。Linuxカーネルをコンパイルするには、所定の手順に従って行う必要があります。カーネルをコンパイルする過程でいくつかの重要なファイルに関連します。たとえばRedHat Linuxでは、/bootディレクトリの下にLinuxカーネルに関連するファイルがいくつかあり、/boot実行に入ります。

RedHat Linuxカーネルをコンパイルした人はその中のSystemに対して.map、vmlinuz、initrd-2.4.7-10.imgは、カーネルのコンパイル中にこれらのファイルの作成などの操作が関連しているため、印象的かもしれません。では、このいくつかのファイルはどのように生成されますか?またどんな作用がありますか?本文はこれについていくつか紹介する。

一、vmlinuz

vmlinuzは、起動可能で圧縮可能なカーネルです。「vm」は「Virtual Memory」を表します。Linuxは仮想メモリをサポートしており、DOSのような古いオペレーティングシステムのように640 KBメモリの制限はありません。Linuxは、ハードディスク(HDD)領域を仮想メモリとして使用できるため、「vm」と呼ばれます。vmlinuzは実行可能なLinuxカーネルであり、/boot/vmlinuzに位置し、一般的にはvmlinuz-2.4.7-10のソフトリンクなどのソフトリンクである。

vmlinuzの構築には2つの方法があります。1つは、カーネルをコンパイルするときに「make zImage」で作成し、「cp/usr/src/linux-2.4/arch/i 386/linux/boot/zImage/boot/vmlinuz」で生成します。zImageは小さなカーネルの場合に適しており,その存在は後方互換性のためである.

2つ目は、カーネルコンパイル時にコマンドmake bzImageで作成し、「cp/usr/src/linux-2.4/arch/i 386/linux/boot/bzImage/boot/vmlinuz」で生成します。bzImageは圧縮されたカーネルイメージであり、bzImageはbzip 2で圧縮されていないことに注意し、bzImageのbzは誤解を招きやすく、bzは「big zImage」を表す。bzImageのbは「big」の意味です。zImage(vmlinuz)とbzImage(vmlinuz)はgzipで圧縮されています。これらは圧縮ファイルだけでなく、この2つのファイルの先頭部分にgzip解凍コードが埋め込まれています。だからgunzipやgzip–dcでvmlinuzを解包することはできません。

カーネルファイルには、カーネルを解凍して起動するためのマイクロgzipが含まれています。両者の違いは,古いzImageがローエンドメモリ(最初の640 K)に解凍され,bzImageがハイエンドメモリ(1 M以上)に解凍される点である.カーネルが小さい場合は、zImageまたはbzImageのいずれかを使用できます。両方の方法で起動されるシステムの実行時は同じです。大きなカーネルはbzImageを採用しており、zImageは採用できません。vmlinuxは非圧縮カーネル、vmlinuzはvmlinuxの圧縮ファイルです。

二、initrd-x.x.x.img

initrdは「initial ramdisk」の略です。Initrdは、一般に、実際のカーネルvmlinuzがブートを引き継ぎ、継続できる状態に、到来時のブートハードウェアとして使用される。図中のinitrd-2.4.7-10.imgは主にext 3などのファイルシステムやscsiデバイスをロードするための駆動である。

たとえば、scsiハードディスクを使用していますが、カーネルvmlinuzにはこのscsiハードウェアの駆動はありません。scsiモジュールをロードする前に、カーネルはルートファイルシステムをロードできませんが、scsiモジュールはルートファイルシステムの/lib/modulesの下に格納されます。この問題を解決するために、実際のカーネルを読み取ることができるinitrdカーネルを起動し、initrdでscsi起動問題を修正することができる。initrd-2.4.7-10.imgはgzipで圧縮されたファイルで、initrdはいくつかのモジュールのロードとファイルシステムのインストールなどの機能を実現します。

initrdイメージファイルはmkinitrdを使用して作成されます。mkinitrdユーティリティはinitrdイメージファイルを作成できます。この命令はRedHat専有だ。他のLinuxリリース版には、対応するコマンドがあるかもしれません。これは便利なユーティリティです。詳細は、ヘルプを参照してください:man mkinitrdの下のコマンドはinitrdイメージファイルを作成します。

三、システムmap

  System.mapは、特定のカーネルのカーネルシンボルテーブルです。現在実行中のカーネルのシステムですmapのリンク。

カーネルシンボルテーブルはどのように作成されますか?System.mapは「nmvmlinux」によって生成され、関連しない記号がフィルタされる。

本明細書の例では、カーネルをコンパイルする場合、System.mapは/usr/src/linux-2.4/systemに作成する.map。次のようにします。

コードのコピー
nm /boot/vmlinux-2.4.7-10 > System.map

次の行は/usr/src/linux-2.4/Makefileから来ています。

コードのコピー
nm vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map

次に/bootにコピーします。

コードのコピー
cp /usr/src/linux/System.map /boot/System.map-2.4.7-10

次の図はSystemです。mapファイルの一部:

プログラム設計を行うと、変数名や関数名などの記号がいくつか命名されます。Linuxカーネルは複雑なコードブロックであり、多くのグローバルシンボルがあります。

Linuxカーネルはシンボル名ではなく、変数または関数のアドレスによって変数または関数名を識別します。例えばsize_を使わないt BytesReadのような記号ではなく、c 0343 f 20のようにこの変数を参照します。

コンピューターを使う人にとって、sizeのようなものを使うのが好きです。t BytesReadのような名前は、c 0343 f 20のような名前が好きではありません。カーネルは主にcで書かれているので、コンパイラ/コネクタでは符号化時にシンボル名を使用し、カーネルが実行されるときにアドレスを使用することができます。

しかしながら、場合によっては、シンボルのアドレス、またはアドレスに対応するシンボルを知る必要がある。これはシンボルテーブルによって行われ、シンボルテーブルはすべてのシンボルがアドレスとともにリストされます。上図はカーネルアドレスc 01000 a 5における変数名checkCPU typeのカーネルシンボルテーブルである。

コードのコピー
  /proc/ksyms

  System.map

新しいカーネルをコンパイルすると、各シンボル名のアドレスが変わります。古いSystemです。mapはエラーのシンボル情報を持っています。カーネルがコンパイルされるたびに新しいシステムが生成する.新しいシステムを使うべきだ古いシステムの代わりにmapがmap。

カーネル自体はSystemを実際に使用するわけではないが.mapですが、klogd、lsof、psなどの他のプログラムには正しいSystemが必要です。map。システムが間違っているか、システムがない場合。map,klogdの出力は信頼性がなく,プログラム障害の排除に困難をもたらす.システムはありませんmap、あなたはいくつかの悩ましいヒントに直面するかもしれません。

また少数の駆動にはSystemが必要である.mapはシンボルを解析し、現在実行している特定のカーネルのために作成されたSystemはありません。mapは正常に動作しません。

コードのコピー
  /boot/System.map

  /System.map

  /usr/src/linux/System.map


ソース元URL:https://dopubox.com/article/p/a4b4eb3fbac7fc7d

Other Tools
  • Character Count TikTok Download DouYin Download BASE64 Base64 to Image Image to Base64 URL Encoding JavaScript Timestamp Unicode Converter JSON Format Modify Extension Make List CSS Optimizer MD5 Encryption Random Generator Image Compression QR Code Generator QR Code Reader Wallpaper Preview Image EXIF Blood Type Heredity Clothing Sizes
  • 歯科医師の技術で愛好家も納得するサウナを細部まで再現するミニチュア作家
    2024-05-30

    藤井聡太八冠、瀬戸際の戦い 将棋叡王戦、31日に第4局
    2024-05-29

    将棋叡王戦、藤井が勝ち最終局へ
    2024-05-30

    藤井聡太八冠が勝ち、最終局へ 将棋叡王戦で2勝2敗
    2024-05-31

    まだ無名だった作曲家エルガーが、婚約の贈り物として捧げた名曲【クラシック今日は何の日?】
    2024-06-01

    三姉妹が温泉旅行で取っ組み合いの大げんか うっとうしくてめんどうくさい家族愛描く「お母さんが一緒」
    2024-06-02

    【大河ドラマ「光る君へ」本日第22話】紫式部と清少納言は「顔を合わせていなかった」?
    2024-06-01

    映像化は「作家の意向第一」と小学館が指針
    2024-06-02

    万博無料招待、大阪の学校7割が希望 「不参加」の選択肢ない調査手法に批判も
    2024-06-03

    美術評論家連盟が「ガザ戦争に対する意⾒表明」を公開
    2024-06-04

    建築家・白井晟一設計の個人住宅「桂花の舎」が江之浦測候所に移築へ
    2024-06-04

    「CLAMP展」が国立新美術館で7月より開催。展示数は史上最多の約800点
    2024-06-04

    akakilikeの新作ダンス公演『希望の家』が松本・東京の2都市で上演へ
    2024-06-04

    アートフェア東京、次回は2025年3月に開催決定
    2024-06-04

    今週末に見たい展覧会ベスト12。山武市百年後芸術祭、版画の青春、北斎に三島喜美代まで
    2024-06-04

    「ゲバルト」展が東京日仏学院などで開催。反暴力的反応とその美的様式を探る
    2024-06-05

    「犬派?猫派?」(山種美術館)開幕レポート。初公開から名作まで勢揃い
    2024-06-04

    田名網敬一「TANAAMI!! AKATSUKA!! / 45 rpm」展、集英社マンガアートヘリテージ トーキョーギャラリーで開催
    2024-06-04

    「安全だと誰も言わない万博」爆発事故で教職員組合 大阪府に子供無料招待中止申し入れ
    2024-06-04

    美しくて“かわいい”結びの技  1400年の歴史を誇る「水引」の可能性を探って
    2024-06-06

    ©  Dopu Box
    💛