| 開発者 | H.ピーター・アンヴィン |
|---|---|
| 安定リリース | 2.0.13 [1]
/ 2023年7月28日 |
| リポジトリ |
|
| オペレーティング·システム | リナックス |
| タイプ | ランタイムライブラリ |
| ライセンス | BSD ライセンス/ GPLv2 |
| Webサイト | www.kernel.org/pub/linux/libs/klibc/ |
コンピューティングにおいて、klibcはH. Peter Anvinによって開発された標準Cライブラリの最小限のサブセットです。これは主にLinuxの起動プロセスで使用するために開発され、初期ユーザー空間、つまりカーネル起動時に使用されるがカーネルモードでは実行されないコンポーネントの一部です。[2]これらのコンポーネントは、通常のユーザー空間プログラム で使用される標準ライブラリ(通常はglibcまたはmusl)にアクセスできません。
klibcライブラリの開発は、2002年にLinuxの初期化コードをカーネルから外す取り組みの一環でした。[3] [4] [5]ドキュメントによると、klibcライブラリは正確性とサイズの小ささに最適化されています。[2] klibcはその設計により、さまざまなプラットフォーム上の組み込みソフトウェア全般に技術的に適しており、 MirBSD Korn Shellなどのフル機能のプログラムでも使用されています。
Linuxの起動プロセス中に、klibcは一時的なRAMファイルシステムinitramfsからロードされます。Debian [6]およびUbuntuのスクリプトによって作成される初期RAMファイルシステムには、デフォルトでklibcが組み込まれています。さらに、初期のユーザー空間で役立つ小さなUnixユーティリティのセットがあります:cpio、dash、fstype、mkdir、mknod、mount、nfsmount、run-initなど、すべてklibcライブラリを使用します。[7]別の戦略は、BusyBoxのように、すべてを1つの実行可能ファイルに含めることです。BusyBoxは、引数またはハードリンクまたはシンボリックリンクを介して要求されたアプレットを決定します。
mkinitramfs
ライセンス
klibcは、BSDの3条項[8](以前は4条項でしたが、Historical Permission NoticeとDisclaimerにより修正されました)とGPLv2(Linuxカーネルの制限により GPLv2のみ)のデュアルライセンスです。
このデュアル ライセンスにより、非コピーレフト ソフトウェアと、BSD ライセンスを介した GPLv3 プログラム(それ以外の場合は互換性がありません) の両方との互換性が実現します。 (ただし、klibc に glibc などの GPLv2 カーネル コードが含まれている場合は、アプリケーション全体が GPLv2 に戻ります。)
参考文献
- ^ 「klibc/klibc.git - klibc メイン開発ツリー」 。 2024年4月17日閲覧。
- ^ ab https://www.kernel.org/doc/Documentation/early-userspace/README [単なる URL のプレーンテキストファイル]
- ^ Jonathan Corbet、(2002 年 11 月) Initramfs の登場、LWN.net
- ^ 「initramfs マージ、N のパート 1」 2002 年 2 月 11 日。
- ^ 「Re: initramfs マージ、N のパート 1」 2002 年 2 月 11 日。
- ^ Debian 安定版 Klibc。
- ^ "libs/klibc/klibc.git / tree". 2012-07-08時点のオリジナルよりアーカイブ。
- ^ 「klibc.spec.in - klibc/klibc.git - klibc メイン開発ツリー」. git.kernel.org . 2020 年 12 月 6 日閲覧。
外部リンク
- メーリングリスト
- initramfs とユーザー空間の本当の始まり - LWN、Jonathan Corbet、2006 年 7 月 11 日。
