LinuxにデフォルトでCコンパイラがあるのはなぜですか?

LinuxにデフォルトでCコンパイラがあるのはなぜですか?

Linuxディストリビューションにgccがプリインストールされた状態で提供されるのはなぜですか? LinuxのほとんどのアプリケーションがCで書かれているからですか?

gccディレクトリを削除するとどうなりますか?

答え1

Linuxディストリビューションにgccがプリインストールされた状態で提供されるのはなぜですか?

Linuxディストリビューションは非常にあいまいです。一部の人はそれをインストールしますが、ほとんどの人はインストールを提案します(インストール中にデフォルトを選択した場合でも可能です)。ただし、すべてのディストリビューションにインストールするわけではなく、通常はオプションがあります。

LinuxのほとんどのアプリケーションがCで書かれているからですか?

いいえ。 Cコンパイラ(すべてのCコンパイラ、湾岸協力協議会これは一例に過ぎず、そうではありません。ソノラス/lvm、または他)非常に便利です。 Linuxシステムで使用できるだけでなく、BSDまたはWindowsのインストールでも使用できます。

gccディレクトリを削除するとどうなりますか?

GCCの一部(またはプリプロセッサなどの一部)に依存するプログラムがインストールされていないと仮定すると、すべてがうまく機能し続けます。削除したばかりのGCCバージョンでは、新しいCプログラムをコンパイルすることはできません。最後のCコンパイラの場合(複数のコンパイラをインストールできます)、後でCプログラムをコンパイルするには、バイナリパッケージを使用して再インストールする必要があります。

ご注意くださいgccディレクトリを削除するとどうなりますか?正しいパッケージマネージャを使用して削除するとします。ディレクトリをランダムに削除することは、すべてのオペレーティングシステムで実行される安全でない操作です。

答え2

Linuxでは、多くのユーティリティが使用されますgcc。ほとんどのユーティリティはランタイム共有ライブラリを呼び出し、パッケージ全体を削除しても共有ライブラリを維持する必要があります。

/bin/lsこのコマンドを使用して検索すると、strings -a /bin/lsLinuxの標準Cライブラリlibc.soが使用されていることがわかりました。 Linuxは正式にGnu / Linuxなので、ほとんどのユーティリティはGnu / Cまたはgccでコンパイルされていると仮定できます。これにより、man libcほとんどのLinuxユーティリティがglibcを使用していることを示すメッセージが表示されます。したがって、ユーティリティが正しく機能するためには、保存してlibcおく必要があります。glibc

答え3

ABIの互換性が不足していたので(特に過去には)ソースからビルドするのは非常に一般的でした。もちろん、多くの場合、ビルドにはCコンパイラ以上が必要です。

答え4

有名ブランドサーバー(HP Enterprises Proliant、Fujitsu Primergyなど)では、ベンダー固有のハードウェアモニタードライバーは通常、いくつかの基本的なカーネルインターフェースコンポーネントを含むソースコード形式を取ります。ドライバパッケージには、通常、ドライバパッケージのリリース時にハードウェアベンダーに知られているサポートカーネルバージョン用にプリコンパイルされたドライバも含まれています。

これにより、Linuxディストリビューションがカーネルセキュリティアップデートをリリースするたびに、ハードウェアベンダーが更新されたカーネルと一致する新しいパッケージをテストしてリリースするのを待たずに、更新されたカーネルと一致するようにハードウェア監視モジュールを再コンパイルできます。

通常、モニタードライバーには、システムが新しいカーネルバージョンで初めて起動したときに適切なモジュールを自動的に再コンパイルするいくつかの自動化スクリプトが含まれています。もちろん、これはコンパイラと必要なカーネル開発/ヘッダパッケージがシステムにインストールされている場合にのみ成功します。

それ以外の場合は、重要なセキュリティアップグレードをインストールすると、システムのPSUステータス、温度、ファン、および最新のサーバーの一般的な消費電力など、基本的なハードウェア監視情報が大量に消費される可能性があります。

データセンターでは、この種の監視は「ああ、冗長ファン/ PSUが故障しました。明日の営業時間中にデータセンターの従業員にホットプラグを接続することを予定しています」と「サーバーが多すぎる」と区別できます。 。ファンが過熱し始め、自動的にシャットダウンします。今SLAが壊れ、顧客は苦情を示します。できるだけ早く午後30時にサーバーを修理または交換する必要があります(はい、いいえ。すべてクラウドベースであっても仮想化されています。 )

関連情報