• 온라인 도구
  • - 계산기
    • 문자 수
  • - 다운로드
    • TikTok 다운로드
    • DouYin 다운로드
  • - 웹 도구
    • BASE64
    • Base64→이미지
    • 이미지→Base64
    • URL 인코딩
    • JavaScript
    • 타임스탬프
    • 유니코드 변환기
    • 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 다운로드 DouYin 다운로드 BASE64 Base64→이미지 이미지→Base64 URL 인코딩 JavaScript 타임스탬프 유니코드 변환기 JSON 형식 확장자 수정 목록 만들기 CSS 최적화 MD5 암호화 랜덤 생성기 이미지 압축 QR 코드 생성기 QR 코드 리더 배경 화면 미리보기 이미지 EXIF 혈액형 유전 의류 사이즈 app.tool_clock
  • 一力が本因坊初防衛
    2024-05-30

    韓国HYBE傘下の代表続投 和解望む意向
    2024-05-31

    “家形埴輪”大集合、総選挙も 「住宅展示場の気分で」、奈良
    2024-06-01

    現代詩の「中原中也賞」、俳句で培われた言語感覚…「新たな音やリズム」ジャンルを往来し追求
    2024-06-02

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

    「警察密着24時」担当者ら懲戒 テレビ東京、石川社長は3割返上
    2024-06-03

    イタリア・ヴェローナの歴史あるレストランをパトリシア・ウルキオラが再解釈。
    2024-06-03

    千年後の未来へ 太宰府天満宮のふすま絵完成 日本画家神戸智行さん移住し10年かけ完成
    2024-06-04

    稀代のピアニスト、マルタ・アルゲリッチの伝説の始まりはこの1曲から【クラシック今日は何の日?】
    2024-06-04

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

    彫刻の森美術館で「舟越桂 森へ行く日」が開催へ
    2024-06-05

    「ロエベ ファンデーション クラフト プライズ 2024」の大賞が発表。等身大のセラミック彫刻を制作したアンドレス・アンサが受賞
    2024-06-05

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

    エドガー・サラン個展「EDGAR SARIN ー HUNKY DORY」(VAGUE KOBE)レポート。展示空間の可能性やその調和の在り方を問いかける
    2024-06-04

    【1971年の今日 : 6月5日】京王プラザホテル全面開業―今からは想像もできない着工前の巨大な貯水池だった頃の写真も
    2024-06-05

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

    週末見たい展覧会5選。今週はTRIO展、吉田克朗展、建築の構造デザインに焦点を当てた展覧会など。【2024年6月第2週】
    2024-06-05

    大学入学共通テスト、追試は本試験1週間後 コロナ禍前に戻す 月経痛の配慮明記も
    2024-06-05

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

    佐渡金山、世界遺産登録に向け「追加情報の提出」求められる
    2024-06-06

    ©  Dopu Box
    💛