Mengapa linux menyusun kernel?

青灯夜游
Lepaskan: 2023-03-30 14:03:54
asal
2190 orang telah melayarinya

Sebab: Kernel baharu telah menyemak semula pepijat kernel lama dan menambah banyak ciri baharu jika pengguna mahu menggunakan ciri baharu ini, atau mahu menyesuaikan sistem yang lebih cekap dan stabil mengikut kernel sistem mereka sendiri , anda perlu menyusun semula kernel Linux. Biasanya, kernel yang lebih baru akan menyokong lebih banyak perkakasan, mempunyai keupayaan pengurusan proses yang lebih baik, berjalan dengan lebih pantas dan lebih stabil, dan secara amnya akan membetulkan banyak kelemahan yang terdapat dalam versi yang lebih lama. Kerap memilih untuk menaik taraf kepada kernel sistem yang lebih baharu .

Mengapa linux menyusun kernel?

Persekitaran pengendalian tutorial ini: sistem Ubuntu 18.04, komputer Dell G3.

Mengapa menyusun kernel Linux?

Inti baharu membetulkan pepijat kernel lama dan menambah banyak ciri baharu. Jika pengguna ingin menggunakan ciri baharu ini, atau ingin menyesuaikan kernel yang lebih cekap dan stabil kepada sistem mereka sendiri, mereka perlu menyusun semula kernel Linux.

Biasanya, kernel yang dikemas kini akan menyokong lebih banyak perkakasan, mempunyai keupayaan pengurusan proses yang lebih baik, berjalan lebih pantas dan lebih stabil, dan secara amnya membetulkan banyak kelemahan yang terdapat dalam versi lama, dsb., dengan kerap Memilih untuk menaik taraf kernel sistem operasi yang diperlukan untuk pengguna Linux.

Untuk menetapkan pilihan konfigurasi kompilasi kernel dengan betul dan munasabah, supaya hanya menyusun kod untuk fungsi yang diperlukan oleh sistem, secara amnya terdapat empat pertimbangan berikut:

  • (1) Kernel tersuai anda sendiri berjalan lebih cepat (mempunyai kurang kod)

  • (2) Sistem akan mempunyai lebih banyak memori (bahagian kernel tidak akan ditukar kepada maya memori)

  • (3) Menyusun fungsi yang tidak diperlukan ke dalam kernel boleh meningkatkan kelemahan yang boleh dieksploitasi oleh penyerang sistem

  • (4) Meletakkan beberapa jenis Menyusun fungsi ke dalam modul akan menjadi lebih perlahan daripada menyusunnya ke dalam kernel

Tujuan penyusunan jenis ini adalah terutamanya untuk memahami proses penyusunan kernel Linux melalui penyusunan dan membiasakan diri dengan kerja prinsip kernel, dan anda juga boleh cuba membuat beberapa pengubahsuaian.
Kompilasi hanya menyusun kod sumber ke dalam atur cara Ia tidak akan menggantikan sistem semasa, dan ia tidak akan menjejaskan operasi sistem semasa.

Menyusun kernel mungkin disebabkan oleh keperluan tertentu, seperti keperluan saiz kernel dan mengalih keluar beberapa bahagian kernel yang tidak digunakan Senario ini selalunya adalah sistem terbenam.
Atau anda telah mengubah suai beberapa bahagian kod kernel dan perlu mengesahkan fungsi selepas penyusunan.

Apabila menyusun modul, beberapa modul fungsi disusun ke dalam .ko Anda boleh memasukkan xxx.ko ke dalam sistem untuk menggunakan fungsi kod bertulis tanpa menyusun semula kernel.
Menyusun kernel tidak akan menggantikan kernel semasa yang disusun kernel selalunya dalam direktori yang serupa dengan yang di bawah Kebanyakan nama adalah bzImage

/usr/src/kernels/3.xx.x-.x86_64/arch/x86/boot/
Salin selepas log masuk

senarai grub untuk menambah kernel terkini Gunakannya

Inti baharu menyepadukan pemacu baharu, seperti paparan teras Intel: /lib/modules/`uname -r`/kernel/drivers/gpu/drm/i915/. i915.ko

Sistem boleh memasang berbilang kernel, seperti fail permulaan Kernel baharu tidak akan menimpa kernel lama:

/boot/vmlinuz-VERSION
/boot/initrd.img-VERSION
Salin selepas log masuk

Semasa pemasangan kernel baharu, beberapa kernel. modul perlu disusun semula, seperti VirtualBox:

/lib/modules/`uname -r`/updates/dkms/vboxdrv.ko
Salin selepas log masuk

Jika kernel baharu tidak berjalan dengan betul, anda boleh memilih kernel lama untuk dimulakan dalam proses but GRUB.

Anda juga boleh menukar kembali kepada kernel asal seperti ini:

ln -sf /boot/vmlinuz-VERSION /vmlinuz
ln -sf /boot/initrd.img-VERSION /initrd.img
Salin selepas log masuk

di mana VERSION ialah versi kernel asal.

Kompilasi kernel Linux‍

Keseluruhan proses penyusunan kernel adalah sangat mudah, tetapi penyusunan kernel mengambil masa yang lama. Ini terutamanya kerana kernel mempunyai banyak kod. Sudah tentu, jika komputer anda berkuasa, masa akan menjadi lebih singkat. Perkara lain yang perlu diambil perhatian ialah disyorkan untuk menyusun dalam persekitaran mesin maya untuk mengelakkan ralat yang boleh menyebabkan masalah sistem. Jika menguji dalam mesin maya, Adalah disyorkan bahawa saiz partition sistem dan partition kod sumber kernel lebih besar daripada 20GB.

Langkah 1: Muat turun kod sumber

1 Masukkan tapak web rasmi kernel Linux dan muat turun versi terkini, atau versi lain kod kernel. Berikut ialah arkib termampat kod sumber.

Mengapa linux menyusun kernel?

2. Andaikan bahawa kita kini berada dalam sistem pengendalian Linux Masukkan arahan berikut pada baris arahan untuk memuat turun kernel.

wget 链接(由于链接会被认为是广告,本文省略链接,请自行复制)
Salin selepas log masuk

Anda boleh melihat kemajuan muat turun semasa proses muat turun Selepas muat turun selesai, maklumat adalah secara kasar seperti yang ditunjukkan di bawah.

Mengapa linux menyusun kernel?

Langkah 2: Nyahzip kod sumber

Selepas pakej termampat dimuat turun, ia boleh dinyahmampat melalui arahan tar.

tar xvf linux-5.9.6.tar.xz
Salin selepas log masuk

在解压的时候可以看到文件列表,这个会很多,可能需要等一会儿。

Mengapa linux menyusun kernel?

Step 3: 安装需要的软件包

安装编译工具以及其它一下依赖的软件包,在Ubuntu 18.04环境下执行如下命令。

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
Salin selepas log masuk

如果一切顺利,大概安装输出信息如下所示。

Mengapa linux menyusun kernel?

Step 4: 配置内核代码

在编译内核之前,我们可以对内核源代码进行配置。配置的目的主要是确定哪些模块会编译到内核当中。

1. 进入源代码目录

cd linux-5.9.6
Salin selepas log masuk

2. 从当前机器的启动目录拷贝配置信息到源代码目录。这步操作的意思是我们编译内核的配置采用用当前环境一致的配置。

cp -v /boot/config-$(uname -r) .config
Salin selepas log masuk
Mengapa linux menyusun kernel?

3. 可以通过如下命令启动配置界面

make menuconfig
Salin selepas log masuk

该命令会运行一些脚本,然后打开一个配置界面

Mengapa linux menyusun kernel?

4. 下面是打开的配置界面。可以看出里面包含所有的内核组件,包括文件系统,网络,IO栈,虚拟化和设备驱动等等。如果你不熟悉,可以不做任何修改。

Mengapa linux menyusun kernel?

Step 5: 编译内核

1. 通过如下命令就可以编译内核了

make -j 10
Salin selepas log masuk

上面参数是并发数量,通常可以是CPU的2倍。

Mengapa linux menyusun kernel?

2. 安装模块

sudo make modules_install
Salin selepas log masuk
Mengapa linux menyusun kernel?

3. 安装内核

sudo make install
Salin selepas log masuk

安装完成后会有如下提示信息。

Mengapa linux menyusun kernel?

Step 6: 重启,验证版本

当上述步骤都没有出错的情况下,我们重启一下计算机,然后运行如下命令。

uname -mrs
Salin selepas log masuk

此时就可以看到内核版本已经是我们编译的版本了。

1Mengapa linux menyusun kernel?

结论‍

通过上面几步,我们可以很简单的编译一个内核。如果后面开发内核模块,也是要基于内核代码树的,因此这个是内核开发的基础。

可能遇到的问题‍

编译内核的时候可能会遇到这个问题:

没有规则可制作目标
debian/certs/debian-uefi-certs.pem,由certs/x509_certificate_list需求停止

在要编译的内核目录下编辑一下配置文件即可。简单的方式是执行如下命令

vim .config
Salin selepas log masuk

然后找到
CONFIG_SYSTEM_TRUSTED_KEYS,将其设置为空,也就是下面这个样子。

CONFIG_SYSTEM_TRUSTED_KEYS=”
Salin selepas log masuk

相关推荐:《Linux视频教程

Atas ialah kandungan terperinci Mengapa linux menyusun kernel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan