この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 1|答える: 0

[Linux] Linux環境におけるglibcとmusl標準ライブラリの違い

[リンクをコピー]
掲載地44秒前 | | | |
musl LinuxとglibcはC標準ライブラリの異なる実装であり、いくつかの点で大きく異なります。

歴史と使用法:

glibcは、長い開発の歴史と幅広いコミュニティの支持を有し、最も早期かつ広く使われているC標準ライブラリ実装の一つです。 特にデスクトップやサーバー環境で、ほとんどのLinuxディストリビューションで採用されています。
muslは比較的新しい実装で、より小さく、高速で、より安全なCライブラリを提供することを目的としています。 Alpine Linuxのような軽量なLinuxディストリビューションにも採用されています。

機能と互換性:

GLBCは包括的かつ複雑で、複数の拡張機能や機能をサポートし、高い安定性と信頼性を備えています。
muslは機能数は少ないものの、POSIX標準に厳密に従っており、glibcよりもコードが大幅に少ないため、追加の外部依存関係を必要としません。 MUSLのバイナリ互換性は限られていますが、新バージョンのリリースにより互換性は徐々に向上しています。

パフォーマンスとリソース使用:

MUSLは軽量で、組み込みシステムやリソース制約のある環境に適しており、コンパクトな静的実行ファイルを作成できます。
GLBCは強力ですが、リソースの使用や性能の面ではMUSLほど優れていないかもしれません。

デバッグと開発サポート:

glibcはより包括的なため、通常はアプリケーションのデバッグや初期開発時に推奨されます。
MUSLは、GDBやLtraceなどの一部のデバッグツールではGLBCほどサポートしにくい場合があります。

許可証と地域社会の支援:

MuslはMITライセンスを使用しており、これはglibcのLGPLライセンスよりも寛容で、静的実行ファイルの公開が容易です。
GLBCはコミュニティのサポートが充実し、より広範なドキュメントリソースを持っています。

特定分野への応用:

MUSLは組み込みシステム、コンテナ化アプリケーション、軽量ディストリビューションで優れています。
GLBCはデスクトップやサーバー環境でより一般的で、より多くの機能や拡張機能をサポートしています。

複数のC標準ライブラリ間の違い

1、. Glibc glibc = GNU C ライブラリはGNUプロジェクト(GNUプロジェクト)であり、C言語標準ライブラリの実装です。 現在、デスクトップやサーバー上のほとんどのGNU/Linuxシステムでは、このC言語標準ライブラリが使用されています。 実際には一般的なCライブラリ機能を実装し、多くのシステムプラットフォームをサポートし、機能も豊富ですが、比較的かさばり大きくて大丈夫です

2. Musl-libc C言語標準ライブラリのMusl-libcプロジェクトはバージョン1.0をリリースしました。 Muslは、組み込みOSやモバイルデバイス向けにGNU Cライブラリ(glibc)、uClibc、またはAndroid Bionicの代替として設計された軽量なC標準ライブラリです。 POSIX 2008仕様とC99標準に従い、MITライセンスを使用し、muslのLinuxディストリビューションやプロジェクト(sabotage、bootstrap-linux、LightCube OSなど)を使用しています。

3. glibcの開発者は、組み込みアプリケーションにglibcを適用することを主な目的としたEmbedded glibc(略称eglibc)を立ち上げました。 最大の変更点は、より多くのライブラリ関数を設定可能にすることです。これにより、組み込みシステムで必要のない関数をeglibcライブラリにコンパイルせずにトリミングでき、最終的に生成されるeglibcライブラリのサイズを減らし、組み込みシステムの要件を満たすことができます(一定サイズを超えません)。こうすることで、組み込みシステム用途でglibcを利用できます。

4. uClibcは、主に組み込みシステムで使用される小さなC言語標準ライブラリです。 もともとはuClinux向けに設計されており(注:uClinuxはMMUをサポートしていません)、マイクロプロセッサにより適しています。 同様に、ここでの「u」はμ、マイクロ、または「タイニー」を表します。 uClibcの特徴:(1) uClibcはglibcよりもはるかに小さいです。 (2) uClibcは独立しており、組み込みシステムでの使用のために完全に再実装されています。 ソースコード構造とバイナリの両面でglibcと互換性がありません。

以下の表は、異なるlibcライブラリによってコンパイルされたファイルサイズを示しています。





先の:.NET/C# でWindows Serverの電源ポリシーを高性能モードに設定します
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com