• 在线工具
  • - 计算器
    • 字符计数
  • - 下载
    • TikTok 下载
    • 抖音下载
  • - 网络工具
    • BASE64
    • Base64 转图片
    • 图片转 Base64
    • URL 编码
    • JavaScript
    • 时间戳
    • Unicode 转换器
    • JSON 格式化
    • 修改扩展名
    • 制作列表
    • CSS 优化器
  • - 加密工具
    • MD5 加密
    • 随机生成器
  • - 图像工具
    • 图像压缩
    • 二维码生成器
    • 二维码识别器
    • 壁纸预览
    • 图片 EXIF
  • - 信息表
    • 血型遗传
    • 服装尺码
  • [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

其他工具
  • 字符计数 TikTok 下载 抖音下载 BASE64 Base64 转图片 图片转 Base64 URL 编码 JavaScript 时间戳 Unicode 转换器 JSON 格式化 修改扩展名 制作列表 CSS 优化器 MD5 加密 随机生成器 图像压缩 二维码生成器 二维码识别器 壁纸预览 图片 EXIF 血型遗传 服装尺码
  • 『ボールアンドチェイン』南Q太著 評者:三木那由他【このマンガもすごい!】
    2024-05-30

    社長「関係者や視聴者不安にさせた」と謝罪
    2024-05-30

    森トラストが平安女学院から有栖川宮旧邸を取得…今度の活用は京都市とも引き続き協議
    2024-06-01

    「工芸的美しさの行方―うつわ・包み・装飾」が東京と京都で開催。第1弾はBONDED GALLERYにて7月から
    2024-06-03

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

    声優の増山江威子さん死去
    2024-06-03

    小学館「作家の意向第一に協議」 映像化指針、ドラマ原作者死去で
    2024-06-03

    写真家たちは強大な権力の抑圧にどう抗ったのか。バルト三国の写真家に焦点を当てる展覧会をレポート
    2024-06-04

    福島県沖地震で解体 老舗文具店の新ビルが開店 イベントスペースも
    2024-06-04

    「TRIO パリ・東京・大阪 モダンアート・コレクション」(東京国立近代美術館)開幕レポート。トリオで再発見する3館のコレクション
    2024-06-05

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

    太宰府天満宮で「Fukuoka Art Book Fair」が開催へ
    2024-06-04

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

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

    「再会長江」北京で特別上映 竹内監督のトークイベントも
    2024-06-04

    田名網敬一の巨大インスタレーションが、世界初大規模回顧展「田名網敬一 記憶の冒険」に登場。国立新美術館で8月7日から
    2024-06-06

    藤井、棋聖戦5連覇へ白星発進
    2024-06-06

    なぜ、いま「先住民の現代アート」なのか? 『美術手帖』2024年7月号は、「先住民の現代アート」特集
    2024-06-06

    書評:「普通にラッセンが好き」と言えない現代美術界へ。原田裕規『評伝クリスチャン・ラッセン 日本に愛された画家』
    2024-06-06

    パートナーとの強い絆から生まれた、ベンジャミン・ブリテンの代表作【クラシック今日は何の日?】
    2024-06-06

    ©  Dopu Box
    💛