• 線上工具
  • - 計算器
    • 字元計數
  • - 下載
    • TikTok 下載
    • 抖音下載
  • - 網路工具
    • BASE64
    • Base64 轉圖片
    • 圖片轉 Base64
    • URL 編碼
    • JavaScript
    • 時間戳
    • Unicode 轉換器
    • JSON 格式化
    • 修改副檔名
    • 製作列表
    • CSS 優化器
  • - 加密工具
    • MD5 加密
    • 隨機生成器
  • - 圖像工具
    • 圖像壓縮
    • QR 碼生成器
    • QR 碼識別器
    • 壁紙預覽
    • 圖片 EXIF
  • - 資訊表
    • 血型遺傳
    • 服裝尺寸
    • app.tool_clock
  • [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 加密 隨機生成器 圖像壓縮 QR 碼生成器 QR 碼識別器 壁紙預覽 圖片 EXIF 血型遺傳 服裝尺寸 app.tool_clock
  • ジョン・レノンのギター4億5千万円で落札
    2024-05-30

    住所要件の指摘受け自主的に転入 東京・足立区の20代選管委員・古野香織さん
    2024-05-30

    白と黒で奏でるインスタレーション 渡辺信子が京都で「White and Black」
    2024-05-31

    「ねこクラゲ」被告、脱税認める 原稿優先で申告せず、福岡地裁
    2024-05-31

    あらゆる知識に精通した「天才」が教えてくれた、頭を良くするための新書の読み方と「究極のインプット・アウトプット」の方法
    2024-06-02

    中国でドラえもん映画が興行首位 国際こどもの日に12億円
    2024-06-03

    香川県・直島に開館する新たな美術館の正式名称が「直島新美術館」に決定
    2024-06-03

    テレ東が警察密着番組の担当者らを懲戒処分
    2024-06-03

    文科相、佐渡金山の果報待ちたい ユネスコの評価、近く判明
    2024-06-03

    2025年春に「直島新美術館」が誕生。既存の活動から新しい価値創造を目指す
    2024-06-04

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

    「三島喜美代―未来への記憶」(練馬区美術館)開幕レポート。最大規模のインスタレーションも
    2024-06-05

    第55回星雲賞・自由部門に「巨大ロボット展」 日本SFファングループ連合会議
    2024-06-05

    「VOCA展」に関するハラスメント防止のためのガイドラインが制定
    2024-06-05

    安藤忠雄さん設計の美術館名称決まる…香川・直島に2025年オープン
    2024-06-05

    「Osaka Art & Design 2024」(大阪市内)開幕レポート。何気ない日常のなかで多様なカルチャーに触れる
    2024-06-06

    京都・祇園祭の「長刀鉾」稚児決まる 記者会見で「頑張ります」
    2024-06-06

    写真家の吉田ルイ子さん死去
    2024-06-06

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

    「さどの島銀河芸術祭2024」が開催。新潟・佐渡島各所で作品を制作展示
    2024-06-06

    ©  Dopu Box
    💛