Jadual Kandungan
Mengapa menyusun kernel Linux?
Kompilasi kernel Linux‍

Mengapa linux menyusun kernel?

Mar 30, 2023 pm 02:03 PM
linux

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Membuka Web.xml Cara Membuka Web.xml Apr 03, 2025 am 06:51 AM

Untuk membuka fail web.xml, anda boleh menggunakan kaedah berikut: Gunakan editor teks (seperti Notepad atau TextEdit) untuk mengedit arahan menggunakan persekitaran pembangunan bersepadu (seperti Eclipse atau NetBeans) (Windows: Notepad Web.xml; Mac/Linux: Open -A -A TextEdit Web.xml)

Empat cara untuk melaksanakan multithreading dalam bahasa c Empat cara untuk melaksanakan multithreading dalam bahasa c Apr 03, 2025 pm 03:00 PM

Multithreading dalam bahasa dapat meningkatkan kecekapan program. Terdapat empat cara utama untuk melaksanakan multithreading dalam bahasa C: Buat proses bebas: Buat pelbagai proses berjalan secara bebas, setiap proses mempunyai ruang ingatan sendiri. Pseudo-Multithreading: Buat pelbagai aliran pelaksanaan dalam proses yang berkongsi ruang memori yang sama dan laksanakan secara bergantian. Perpustakaan multi-threaded: Gunakan perpustakaan berbilang threaded seperti PTHREADS untuk membuat dan mengurus benang, menyediakan fungsi operasi benang yang kaya. Coroutine: Pelaksanaan pelbagai threaded ringan yang membahagikan tugas menjadi subtask kecil dan melaksanakannya pada gilirannya.

Untuk apa yang paling baik digunakan oleh Linux? Untuk apa yang paling baik digunakan oleh Linux? Apr 03, 2025 am 12:11 AM

Linux paling baik digunakan sebagai pengurusan pelayan, sistem tertanam dan persekitaran desktop. 1) Dalam pengurusan pelayan, Linux digunakan untuk menjadi tuan rumah laman web, pangkalan data, dan aplikasi, menyediakan kestabilan dan kebolehpercayaan. 2) Dalam sistem tertanam, Linux digunakan secara meluas di rumah pintar dan sistem elektronik automotif kerana fleksibiliti dan kestabilannya. 3) Dalam persekitaran desktop, Linux menyediakan aplikasi yang kaya dan prestasi yang cekap.

Bagaimana keserasian Debian Hadoop Bagaimana keserasian Debian Hadoop Apr 02, 2025 am 08:42 AM

Debianlinux terkenal dengan kestabilan dan keselamatannya dan digunakan secara meluas dalam persekitaran pelayan, pembangunan dan desktop. Walaupun kini terdapat kekurangan arahan rasmi mengenai keserasian langsung dengan Debian dan Hadoop, artikel ini akan membimbing anda tentang cara menggunakan Hadoop pada sistem Debian anda. Keperluan Sistem Debian: Sebelum memulakan konfigurasi Hadoop, sila pastikan sistem Debian anda memenuhi keperluan operasi minimum Hadoop, yang termasuk memasang Java Runtime Environment (JRE) dan pakej Hadoop. Langkah Penyebaran Hadoop: Muat turun dan Unzip Hadoop: Muat turun versi Hadoop yang anda perlukan dari laman web Apachehadoop rasmi dan selesaikannya

Adakah saya perlu memasang klien oracle semasa menyambung ke pangkalan data oracle menggunakan GO? Adakah saya perlu memasang klien oracle semasa menyambung ke pangkalan data oracle menggunakan GO? Apr 02, 2025 pm 03:48 PM

Adakah saya perlu memasang klien oracle semasa menyambung ke pangkalan data oracle menggunakan GO? Semasa membangun di GO, menyambung ke pangkalan data Oracle adalah keperluan biasa ...

Adakah debian rentetan serasi dengan pelbagai pelayar Adakah debian rentetan serasi dengan pelbagai pelayar Apr 02, 2025 am 08:30 AM

"Debianstrings" bukan istilah standard, dan makna khususnya masih belum jelas. Artikel ini tidak dapat mengulas secara langsung mengenai keserasian penyemak imbasnya. Walau bagaimanapun, jika "debianstrings" merujuk kepada aplikasi web yang dijalankan pada sistem Debian, keserasian penyemak imbasnya bergantung kepada seni bina teknikal aplikasi itu sendiri. Sebilangan besar aplikasi web moden komited untuk keserasian penyemak imbas. Ini bergantung kepada standard web berikut dan menggunakan teknologi front-end yang serasi (seperti HTML, CSS, JavaScript) dan teknologi back-end (seperti PHP, Python, Node.js, dll.). Untuk memastikan bahawa aplikasi itu serasi dengan pelbagai pelayar, pemaju sering perlu menjalankan ujian silang dan menggunakan responsif

Tidak dapat log masuk ke mysql sebagai akar Tidak dapat log masuk ke mysql sebagai akar Apr 08, 2025 pm 04:54 PM

Sebab utama mengapa anda tidak boleh log masuk ke MySQL sebagai akar adalah masalah kebenaran, ralat fail konfigurasi, kata laluan tidak konsisten, masalah fail soket, atau pemintasan firewall. Penyelesaiannya termasuk: periksa sama ada parameter pengikat di dalam fail konfigurasi dikonfigurasi dengan betul. Semak sama ada kebenaran pengguna root telah diubahsuai atau dipadam dan ditetapkan semula. Sahkan bahawa kata laluan adalah tepat, termasuk kes dan aksara khas. Semak tetapan dan laluan kebenaran fail soket. Semak bahawa firewall menyekat sambungan ke pelayan MySQL.

Libv adalah dua Libv adalah dua Apr 03, 2025 pm 08:03 PM

Saya membangunkan projek yang dipanggil Lua-Libuv dan gembira untuk berkongsi pengalaman saya. Hasrat asal projek ini adalah untuk meneroka cara menggunakan libuv (perpustakaan I/O yang tidak segerak yang ditulis dalam C) untuk membina pelayan HTTP yang mudah tanpa perlu mempelajari bahasa C secara mendalam. Dengan bantuan CHATGPT, saya menyelesaikan kod asas http.c. Apabila berurusan dengan sambungan yang berterusan, saya berjaya melaksanakan menutup sambungan dan membebaskan sumber pada masa yang tepat. Pada mulanya saya cuba membuat pelayan mudah yang mengakhiri program utama dengan menutup sambungan, tetapi saya mempunyai beberapa masalah. Saya telah cuba menghantar blok data menggunakan streaming, dan semasa ia berfungsi, ini menghalang benang utama. Pada akhirnya, saya memutuskan untuk berputus asa pada pendekatan ini kerana matlamat saya bukan untuk mempelajari bahasa C secara mendalam. Akhirnya, saya

See all articles