GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara saya mendemonstrasikan jenis kompresi kernel dalam praktiknya?

Kutipan Wikipedia Anda,

Meskipun ada kesalahpahaman populer bahwa bz awalan berarti bahwa kompresi bzip2 digunakan [...], bukan ini masalahnya.

mengatakan kebalikan dari teori Anda:bz di bzImage tidak ada hubungannya dengan bzip2 , dan bzImage tidak harus dikompresi dengan bzip2 . Faktanya, mode kompresi default kernel masih gzip , dan ada sedikit alasan untuk menggunakan bzip2 saat ini — lebih lambat dari LZMA dan xz tetapi tidak mengompres juga.

Untuk menentukan secara pasti kompresi apa yang digunakan untuk imej kernel tertentu, tanpa perlu menjalankannya atau menemukan konfigurasinya, Anda dapat mengikuti pendekatan yang digunakan oleh extract-vmlinux kernel itu sendiri skrip:

  • cari tanda tangan kompresor di gambar:

    • gunzip :\037\213\010
    • xz :\3757zXZ\000
    • bzip2 :BZh
    • lzma :\135\0\0\0
    • lzo :\211\114\132
    • lz4 :\002!L\030
    • zstd :(\265/\375
  • coba ekstrak data dari gambar, mulai dari offset tanda tangan apa pun yang Anda temukan;

  • periksa apakah hasilnya (jika ada) adalah gambar ELF.

Saya telah mengadaptasi skrip di sini sehingga hanya melaporkan jenis kompresi. Saya tidak memasukkannya di sini karena hanya dilisensikan di bawah GPL 2.


Anda dapat melihat metode kompresi apa yang didukung oleh kernel Anda. Hanya satu yang bisa dipilih, jadi itu akan membuktikan yang mana.

Di sini, saya menggunakan gzip:

$ zgrep CONFIG_KERNEL_ /proc/config.gz
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set

Linux
  1. Linux – Bagaimana Menemukan Implementasi Panggilan Sistem Kernel Linux?

  2. Linux – Bagaimana Cara Menentukan Modul Yang Menodai Kernel?

  3. Bagaimana Cara Menemukan Aplikasi Untuk Tipe Mime Di Linux?

  1. Bagaimana Cara Mendapatkan Jenis Pembaca Kartu Internal?

  2. Bagaimana kernel me-mount partisi root?

  3. Berapa banyak RAM yang digunakan kernel?

  1. Linux – Bagaimana Cara Menampilkan Jenis Filesystem Melalui Terminal??

  2. Cara mendaftar Pohon Perangkat kernel

  3. Bagaimana cara mengetahui jenis virtualisasi VPS linux?