Keith Packard 氏は、現役の Debian 開発者であり、X.Org プロジェクトのリーダーであり、XRender、XComposite、XRandR を含む多くの X 拡張機能の作成者です。
Keith Packard は、RAM が少ない組み込みデバイスで使用できる適切な Libc オプションが見つからなかったことから開発を開始しました。 このプロジェクトは昨年から開発が進められてきました。 最初の段階では、このプロジェクトは newlib のバリアントであり、stdio の機能が avrlibc のコンパクト バージョンに置き換えられていました (newlib の stdio はリソース消費量が多いため適していませんでした)。 Keith の現在の仕事には、RISC-V アーキテクチャの継続的な作業と組み込みデバイス用ツールの開発が含まれているため、最近 libc 実装の状態をレビューし、少し調整するだけで newlib と avrlibc の組み合わせが優れた汎用性を発揮できると結論付けました。解決。 当初、このプロジェクトは「newlib-nano」という名前で開発されましたが、Newlib ライブラリとの混同を避けるために、PicoLibc という名前に変更されました。
現在の形式では、Picolibc は、BSD ライセンスで提供されていないすべてのコードを削除する作業をすでに行っており (このコードは、組み込みデバイス用にビルドするときに使用されませんでした)、これにより、プロジェクトのライセンスに関する状況が大幅に簡素化されました。 ローカル ストリームの実装は、「struct _reent」から TLS メカニズムに移動されました (
Picolibc バージョン 1.1 の場合:
- テクノロジーをサポートする補助ライブラリを追加しました。」
セミホスティング 「デバッガまたはエミュレータ環境で実行されているコードがホスト システムの I/O メカニズムを使用できるようにします。 - open、close、read、write システム コールをサポートするシステムの場合、tinystdio は、fopen および fdopen 関数を含む標準化された POSIX stdio I/O インターフェイスを追加し、stdin/stdout/stderr を POSIX 定義のファイル記述子にバインドします。
- newlib コードベースからの最近の変更が引き継がれています。 追加された libm スタブを含む
fenv.h 、浮動小数点サポートのないシステムでも使用できます。 - ARM および RISC-V システム用の picolibc を使用した「Hello world」アプリケーションの構築例を追加しました。
- 未使用の実験コードが含まれていた newlib、libm、および mathfp ディレクトリを削除しました。
出所: オープンネット.ru