検索
ホームページ運用・保守Linuxの運用と保守なぜ Linux はカーネルをコンパイルするのでしょうか?

理由: 新しいカーネルは古いカーネルのバグを修正し、多くの新機能を追加しました。ユーザーがこれらの新機能を使用したい場合、または独自のシステム カーネルに従ってより効率的で安定したシステムをカスタマイズしたい場合場合は、Linux カーネルを再コンパイルする必要があります。通常、新しいカーネルはより多くのハードウェアをサポートし、プロセス管理機能が向上し、より高速かつ安定して実行され、古いバージョンで見つかった多くの脆弱性が修正されるため、より新しいシステム カーネルへのアップグレードを選択することがよくあります。Linux ユーザーにとって必要な操作内容です。 。

なぜ Linux はカーネルをコンパイルするのでしょうか?

このチュートリアルの動作環境: Ubuntu 18.04 システム、Dell G3 コンピューター。

なぜ Linux カーネルをコンパイルする必要があるのでしょうか?

新しいカーネルは、古いカーネルのバグを修正し、多くの新機能を追加しました。ユーザーがこれらの新機能を使用したい場合、またはより効率的で安定したカーネルを自分のシステムに合わせて調整したい場合は、Linux カーネルを再コンパイルする必要があります。

通常、更新されたカーネルは、より多くのハードウェアをサポートし、より優れたプロセス管理機能を備え、より高速かつ安定して実行され、一般的に古いバージョンなどで見つかった多くの脆弱性が頻繁に修正されます。更新されたシステム カーネルをアップグレードすることを選択することは、 Linux ユーザーにとっては必要な操作です。

カーネル コンパイル構成オプションを正しく合理的に設定して、システムに必要な関数のコードのみをコンパイルするには、一般に次の 4 つの考慮事項があります。

  • (1) 独自にカスタムコンパイルしたカーネルはより高速に実行されます (コードが少なくなります)

  • (2) システムのメモリが増加します (カーネル部分は仮想カーネルにスワップされません)メモリ)

  • (3) 不要な関数をカーネルにコンパイルすると、システム攻撃者が悪用できる脆弱性が増加する可能性があります

  • (4)ある種の関数をモジュールにコンパイルすると、関数をカーネルにコンパイルするよりも時間がかかります。

このタイプのコンパイルの目的は、主に、コンパイルを通じて Linux カーネルのコンパイル プロセスを理解し、慣れることです。カーネルの原理に従って、いくつかの変更を加えることもできます。
コンパイルはソース コードをプログラムにコンパイルするだけであり、現在のシステムを置き換えたり、現在のシステムの動作に影響を与えたりするものではありません。

カーネルのコンパイルは、カーネル サイズ要件やカーネルの未使用部分の削除など、特定のニーズに起因する場合があります。このシナリオは多くの場合、組み込みシステムで発生します。
または、カーネル コードの一部を自分で変更した場合は、コンパイル後に機能を検証する必要があります。

モジュールをコンパイルすると、一部の機能モジュールが .ko にコンパイルされます。insmod xxx.ko を使用すると、カーネルを再コンパイルせずに、システム内で記述されたコード関数を使用できます。
カーネルをコンパイルした後、現在のカーネルは置き換えられません。コンパイルされた新しいカーネルは、多くの場合、次のようなディレクトリにあり、その名前はほとんどの場合 bzImage

/usr/src/kernels/3.xx.x-.x86_64/arch/x86/boot/

です。その後、システムの grub を編集できます

新しいカーネルには、Intel コア ディスプレイなどの新しいドライバーが統合されています: /lib/modules/`uname -r`/kernel/drivers/gpu/drm/i915/ i915.ko

A システム スタートアップ ファイルなど、複数のカーネルをインストールできます。新しいカーネルは古いカーネルを上書きしません:

/boot/vmlinuz-VERSION
/boot/initrd.img-VERSION

新しいカーネルのインストール中に、一部のカーネルVirtualBox などのモジュールを再コンパイルする必要があります:

/lib/modules/`uname -r`/updates/dkms/vboxdrv.ko

新しい場合 カーネルが適切に実行されていない場合、GRUB ブート プロセスで開始する古いカーネルを選択できます。

次のように元のカーネルに戻すこともできます:

ln -sf /boot/vmlinuz-VERSION /vmlinuz
ln -sf /boot/initrd.img-VERSION /initrd.img

ここで、VERSION は元のカーネルのバージョンです。

Linux カーネルをコンパイルする‍

カーネルのコンパイル プロセス全体は非常に簡単ですが、カーネルのコンパイルには時間がかかります。これは主に、カーネルに大量のコードがあることが原因です。もちろん、コンピューターの性能が高ければ、時間はさらに短くなります。もう 1 つの注意点は、システムの問題を引き起こす可能性のあるエラーを回避するために、仮想マシン環境でコンパイルすることをお勧めすることです。仮想マシンでテストする場合、システム パーティションとカーネル ソース コード パーティションのサイズは 20GB より大きいことが推奨されます。

ステップ 1: ソース コードをダウンロードします

1. Linux カーネルの公式 Web サイトにアクセスし、最新バージョンをダウンロードします。 、または他のバージョンのカーネル コード。こちらはソースコードの圧縮アーカイブです。

なぜ Linux はカーネルをコンパイルするのでしょうか?

#2. Linux オペレーティング システムを使用していると仮定して、コマンド ラインに次のコマンドを入力してカーネルをダウンロードします。

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

ダウンロード中はダウンロードの進行状況が確認でき、ダウンロード完了後はおおよそ以下のような情報が表示されます。

なぜ Linux はカーネルをコンパイルするのでしょうか?

#ステップ 2: ソース コードを解凍します

圧縮パッケージをダウンロードした後、tar コマンドを使用して解凍できます。

tar xvf linux-5.9.6.tar.xz

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

なぜ Linux はカーネルをコンパイルするのでしょうか?

Step 3: 安装需要的软件包

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

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

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

なぜ Linux はカーネルをコンパイルするのでしょうか?

Step 4: 配置内核代码

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

1. 进入源代码目录

cd linux-5.9.6

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

cp -v /boot/config-$(uname -r) .config
なぜ Linux はカーネルをコンパイルするのでしょうか?

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

make menuconfig

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

なぜ Linux はカーネルをコンパイルするのでしょうか?

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

なぜ Linux はカーネルをコンパイルするのでしょうか?

Step 5: 编译内核

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

make -j 10

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

なぜ Linux はカーネルをコンパイルするのでしょうか?

2. 安装模块

sudo make modules_install
なぜ Linux はカーネルをコンパイルするのでしょうか?

3. 安装内核

sudo make install

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

なぜ Linux はカーネルをコンパイルするのでしょうか?

Step 6: 重启,验证版本

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

uname -mrs

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

1なぜ Linux はカーネルをコンパイルするのでしょうか?

结论‍

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

可能遇到的问题‍

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

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

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

vim .config

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

CONFIG_SYSTEM_TRUSTED_KEYS=”

相关推荐:《Linux视频教程

以上がなぜ Linux はカーネルをコンパイルするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Linux操作:システム管理とメンテナンスLinux操作:システム管理とメンテナンスApr 15, 2025 am 12:10 AM

Linuxシステムの管理とメンテナンスの重要な手順には、次のものがあります。1)ファイルシステム構造やユーザー管理などの基本的な知識をマスターします。 2)システムの監視とリソース管理を実行し、TOP、HTOP、その他のツールを使用します。 3)システムログを使用してトラブルシューティング、JournalCtlおよびその他のツールを使用します。 4)自動化されたスクリプトとタスクのスケジューリングを作成し、Cronツールを使用します。 5)セキュリティ管理と保護を実装し、iPtablesを介してファイアウォールを構成します。 6)パフォーマンスの最適化とベストプラクティスを実行し、カーネルパラメーターを調整し、良い習慣を開発します。

Linuxのメンテナンスモードの理解:必需品Linuxのメンテナンスモードの理解:必需品Apr 14, 2025 am 12:04 AM

Linuxメンテナンスモードは、起動時にinit =/bin/bashまたは単一パラメーターを追加することにより入力されます。 1.メンテナンスモードの入力:GRUBメニューを編集し、起動パラメーターを追加します。 2。ファイルシステムを読み取りおよび書き込みモードに再マウントします:Mount-Oremount、RW/。 3。ファイルシステムの修復:FSCK/dev/sda1などのFSCKコマンドを使用します。 4.データをバックアップし、データの損失を避けるために慎重に動作します。

DebianがHadoopデータ処理速度を改善する方法DebianがHadoopデータ処理速度を改善する方法Apr 13, 2025 am 11:54 AM

この記事では、DebianシステムのHadoopデータ処理効率を改善する方法について説明します。最適化戦略では、ハードウェアのアップグレード、オペレーティングシステムパラメーターの調整、Hadoop構成の変更、および効率的なアルゴリズムとツールの使用をカバーしています。 1.ハードウェアリソースの強化により、すべてのノードが一貫したハードウェア構成、特にCPU、メモリ、ネットワーク機器のパフォーマンスに注意を払うことが保証されます。高性能ハードウェアコンポーネントを選択することは、全体的な処理速度を改善するために不可欠です。 2。オペレーティングシステムチューニングファイル記述子とネットワーク接続:/etc/security/limits.confファイルを変更して、システムによって同時に開くことができるファイル記述子とネットワーク接続の上限を増やします。 JVMパラメーター調整:Hadoop-env.shファイルで調整します

Debian syslogを学ぶ方法Debian syslogを学ぶ方法Apr 13, 2025 am 11:51 AM

このガイドでは、Debian SystemsでSyslogの使用方法を学ぶように導きます。 Syslogは、ロギングシステムとアプリケーションログメッセージのLinuxシステムの重要なサービスです。管理者がシステムアクティビティを監視および分析して、問題を迅速に特定および解決するのに役立ちます。 1. syslogの基本的な知識Syslogのコア関数には以下が含まれます。複数のログ出力形式とターゲットの場所(ファイルやネットワークなど)をサポートします。リアルタイムのログ表示およびフィルタリング機能を提供します。 2。syslog(rsyslogを使用)をインストールして構成するDebianシステムは、デフォルトでrsyslogを使用します。次のコマンドでインストールできます:sudoaptupdatesud

DebianでHadoopバージョンを選択する方法DebianでHadoopバージョンを選択する方法Apr 13, 2025 am 11:48 AM

Debianシステムに適したHadoopバージョンを選択する場合、次の重要な要因を考慮する必要があります。1。安定性と長期的なサポート:安定性とセキュリティを追求するユーザーにとって、Debian11(Bullseye)などのDebianの安定したバージョンを選択することをお勧めします。このバージョンは完全にテストされており、最大5年のサポートサイクルがあり、システムの安定した動作を確保できます。 2。パッケージの更新速度:最新のHadoop機能と機能を使用する必要がある場合は、DebianのUnstableバージョン(SID)を検討できます。ただし、不安定なバージョンには互換性の問題と安定性のリスクがあることに注意する必要があります。 3。コミュニティのサポートとリソース:Debianには、豊富なドキュメントを提供できるコミュニティサポートが大きくなり、

debianのtigervnc共有ファイルメソッドdebianのtigervnc共有ファイルメソッドApr 13, 2025 am 11:45 AM

この記事では、Tigervncを使用してDebian Systemsでファイルを共有する方法について説明します。最初にtigervncサーバーをインストールしてから構成する必要があります。 1. TigerVNCサーバーをインストールし、端末を開きます。ソフトウェアパッケージリストの更新リスト:sudoaptupdate tigervnc server:sudoaptinstaltaltigervnc-standalone-servertigervnc-common2。tigervncサーバーを構成するVNCサーバーパスワードを設定します。

Debian Mail Serverファイアウォールの構成のヒントDebian Mail Serverファイアウォールの構成のヒントApr 13, 2025 am 11:42 AM

Debian Mail Serverのファイアウォールの構成は、サーバーのセキュリティを確保するための重要なステップです。以下は、iPtablesやFirewalldの使用を含む、一般的に使用されるファイアウォール構成方法です。 iPtablesを使用してファイアウォールを構成してIPTablesをインストールします(まだインストールされていない場合):sudoapt-getupdatesudoapt-getinstalliptablesview現在のiptablesルール:sudoiptables-l configuration

Debian Mail Server SSL証明書のインストール方法Debian Mail Server SSL証明書のインストール方法Apr 13, 2025 am 11:39 AM

Debian Mail ServerにSSL証明書をインストールする手順は次のとおりです。1。最初にOpenSSL Toolkitをインストールすると、OpenSSLツールキットがシステムに既にインストールされていることを確認してください。インストールされていない場合は、次のコマンドを使用してインストールできます。sudoapt-getUpdatesudoapt-getInstalopenssl2。秘密キーと証明書のリクエストを生成次に、OpenSSLを使用して2048ビットRSA秘密キーと証明書リクエスト(CSR)を生成します:Openss

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール