• 온라인 도구
  • - 계산기
    • 문자 수
  • - 다운로드
    • TikTok 다운로드
    • DouYin 다운로드
  • - 웹 도구
    • BASE64
    • Base64→이미지
    • 이미지→Base64
    • URL 인코딩
    • JavaScript
    • 타임스탬프
    • 유니코드 변환기
    • JSON 형식
    • 확장자 수정
    • 목록 만들기
    • CSS 최적화
  • - 암호화 도구
    • MD5 암호화
    • 랜덤 생성기
  • - 이미지 도구
    • 이미지 압축
    • QR 코드 생성기
    • QR 코드 리더
    • 배경 화면 미리보기
    • 이미지 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 다운로드 DouYin 다운로드 BASE64 Base64→이미지 이미지→Base64 URL 인코딩 JavaScript 타임스탬프 유니코드 변환기 JSON 형식 확장자 수정 목록 만들기 CSS 최적화 MD5 암호화 랜덤 생성기 이미지 압축 QR 코드 생성기 QR 코드 리더 배경 화면 미리보기 이미지 EXIF 혈액형 유전 의류 사이즈
  • 英国を代表する作曲家ブリテンが世界平和を願って作った『戦争レクイエム』【クラシック今日は何の日?】
    2024-05-29

    「現実をみんなに伝えたい」能登高校書道部が新作の書道パフォーマンスを披露…部員それぞれが抱える大地震の被害
    2024-05-30

    ブームなぜ起きた? 東京国立近代美術館で「ハニワと土偶の近代」展
    2024-05-30

    ドローンサッカーで世界2位 大阪・星翔高校チーム 「世界でも通用することがわかった」
    2024-05-30

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

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

    【光る君へ】平安時代、強烈なエピソードで知られた2人の受領とは
    2024-06-01

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

    「KOTARO NUKAGA(天王洲)」が移転し拡張。約386平米の巨大スペースに
    2024-06-05

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

    東京都写真美術館で「今森光彦 にっぽんの里山」が開催へ
    2024-06-04

    開館10周年を記念。「広重 ─摺の極─」があべのハルカス美術館で開催へ
    2024-06-05

    今週末に見たい展覧会ベスト13。「令和6年 新指定国宝・重要文化財」展から国立西洋美術館の現代美術展、KYOTOGRAPHIEまで
    2024-06-04

    「ART OSAKA 2024」が7月18日より開幕。近代建築と現代美術のコラボレーションにも注目
    2024-06-04

    夜の美術館を楽しめる「サマーナイトミュージアム2024」が開催。東京都現代美術館、東京都庭園美術館などで入場料割引も
    2024-06-04

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

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

    岡田将生の初ブランド「IN MY DEN」始動、第1弾グッズの受注販売がスタート
    2024-06-06

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

    長山智美 デザイン狩人|HAY DOGS♡
    2024-06-06

    ©  Dopu Box
    💛