Lib0xc: より安全なシステムプログラミングのためのC標準ライブラリ隣接API群
Lib0xcはCプログラミングの安全性を向上させるためのAPI群で、C標準ライブラリに付随する形で設計されています。Cは意図的にゆっくりとした進化を遂行する言語であるため、複数の安全なプログラミングパターンが業界で数十年にわたって慣例的に伝承されてきました。
Lib0xcはCプログラミングの安全性を向上させるためのAPI群で、C標準ライブラリに付随する形で設計されています。Cは意図的にゆっくりとした進化を遂行する言語であるため、複数の安全なプログラミングパターンが業界で数十年にわたって慣例的に伝承されてきました。
しかしこれらのパターンは言語の第一級の機能として標準化されることなく、各組織や開発者の間で「伝承」的に受け継がれているのが現状です。Lib0xcはこうした分散した安全性のベストプラクティスを一つの標準的なAPI群として整理・提供することで、Cでのシステムプログラミングをより安全かつ一貫性のあるものにすることを目指しています。
技術的には、バッファオーバーフロー、メモリ安全性、および整数オーバーフロー対策など、C固有のセキュリティリスクに対する実用的なソリューションを提供することで、メモリ安全言語への移行を待つのではなく、Cの実用的な改善を実現しようとしています。
業界全体としても、POSIX標準やC標準委員会レベルでこうした安全なAPIを公式に組み込み、安全でないAPIを段階的に非推奨にしていくべきという議論が高まっており、本プロジェクトはそのような標準化への動きの先駆けとなる可能性があります。
HNコミュニティは、安全なCプログラミングパターンの標準化という方向性を強く支持していますが、APIだけでなく、ビルドシステムやパッケージ管理の標準化も同等に重要であるという指摘も上がっています。
「C、C++、POSIXは標準仕様の中で、より安全なAPIを追加し、安全でないAPIを非推奨にするエディションに取り組むべきです。我々はこの方法がうまく機能することを知っており、多くの成功事例があります。実装面での工学的な課題は確かに存在しますが、それは取り組まない理由にはなりません。コンパイラとライブラリチェーンは、後方互換性を保ちながら段階的な移行をサポートできます。」— @raggi