LFが公開したFOSSの使用に関するレポート「Census Ⅲ ー フリー&オープンソース ソフトウェア調査 第三弾」を読み解く

こんにちは、吉田です。今回は、2024年12月にLinux Foundationから公開された「Census Ⅲ ー フリー&オープンソース ソフトウェア調査 第三弾」について紹介します。
【参照】Census Ⅲ ー フリー&オープンソース ソフトウェア調査 第三弾
https://www.linuxfoundation.jp/publications/2025/02/census-iii-jp/
これまで、Linux Foundationは2015年に下位レベルの重要なオペレーティング システム ライブラリとユーティリティに焦点を当てた「Census I」レポートを公開しました。その後ハーバード大学と提携し、民間および公共機関のアプリケーション内でどのオープンソース ソフトウェアが最も広く導入されているかを特定し測定するための「Census II」プロジェクトを実施。Census IIではソフトウェア構成分析(SCA)企業であるFOSSA、Snyk、Sonatype、Black Duckのデータを活用し、アプリケーション内でのFOSSの使用状況を示しました。
そして今回のCensus Ⅲプロジェクトは、前述のSCAパートナーからFOSS使用状況に関する1,200万件を超えるデータを活用して、民間および公共機関でのアプリケーション内で展開され最も広く使用されているFOSSを特定することを目的としています。
以下に、主な調査結果の中から興味深いものを抜粋して紹介していきます。
クラウド サービス専用パッケージの利用が増加
上位にランクされているコンポーネントの多くは、特定のクラウドサービスを扱っています。例えば、EC2やS3などのAWSサービスを扱うPythonライブラリ「boto3」は5番目にランクされ、Google Cloudの「Go」ライブラリが8番目にランクされています。
Python2からPython 3への移行が進行中
Pythonパッケージ「six」はPython 2とPython 3の互換性ライブラリで高いランクにランクされていますが、Python 3が2008年に正式リリースされたにもかかわらず、2023年になってもPython 2からPython 3への移行に関する問題が続いていることを示しています。
これは他のレポートとも一致しています。Jetbrainsの「Python Developers Survey 2022 Results」によるとPython開発者全体の7%がPython 2を使用しており、データ分析では29%、コンピュータ グラフィックスでは24%、DevOpsでは23%など、多くの分野でPython 2のユーザー数は大幅に増加しています。重大な非互換性が導入された場合、ソフトウェアの新バージョンへの移行には10年以上かかる可能性があることを示すもので、十分な移行期間が必要であることが分かりました。
Mavenパッケージは引き続き広く使用されており
NuGetおよびPythonパッケージの普及も増加
最も一般的な非npmパッケージ マネージャー「Maven」はJava仮想マシン(主にJavaコード)のパッケージを管理しています。今回の調査でよく使われている上位500パッケージのうち204(40.8%)がMavenからのものでした。
それだけでなく、今回の調査では「NuGet」や「PyPI」で管理されているパッケージが増加しています。NuGetはMicrosoftがサポートする.NET(.NET Coreを含む)のコード共有メカニズムで、.NET、主にC#で記述されたソフトウェアが含まれています。PyPIは正式名称は「Python Package Index」と言うPython用のソフトウェア・リポジトリです。Pythonを利用する開発者向けにソフトウェアの検索・インストール、コミュニティを提供しています。PyPiの運営はPythonソフトウェア財団が行っています。
今回の調査では、NuGetが10.6%から16.2%に、PyPI(Python)パッケージが16.4%から21.6%に増加しています。これはつまりC#やPythonのOSSの活用度合いが増加していることに他なりません。
Rustパッケージ リポジトリからのコンポーネントの使用は
「Census II」以降大幅に増加
公開されているソフトウェアの脆弱性の中で最も多く見られるのが「メモリ安全性」に関するものです。根本的な原因はCやC++といったプログラミング言語が、他のほとんどのプログラミング言語とは異なりデフォルトでメモリ安全性エラーを防止できないことです。これにより、多くの政府機関では新しいプロジェクトにおいてメモリ安全性の高いプログラミング言語への移行を強く推奨しています。
システムレベルへのアクセスが不要な場合やパフォーマンスがそれほど重要でない場合はGo、Java、C#、JavaScript、Python、Ruby、Visual Basicなど多くの代替手段がありますが、システムレベルへのアクセスが必要な場合は選択肢が極めて少なくなります。その中で最も人気のあるプログラミング言語が「Rust」です。
SCAスキャンのデータによると2020年以降に増加しており、前回の調査Census IIではRustパッケージ リポジトリから直接コンポーネントへアクセスする割合の平均は0.02%でしたが、今回は0.12%に上昇しています。
とは言えまだ少ない数字ですが、今後大きく利用が見込める領域なので、今後の動向をウォッチしていく必要があるように思います。
最も広く使用されているFOSSの多くは
ほんの一握りの貢献者によって開発されている
バージョンに依存しない直接リストの上位50プロジェクトのうち47件をレビューしたところ、17%のプロジェクトで1人の開発者がコミットの80%以上を占めていることが分かりました。さらに40%のプロジェクトでは1人または2人の開発者がコミットの80%以上を占め、64%のプロジェクトでは4人以下の開発者がコミットの80%以上を占め、81%のプロジェクトでは10人以下の開発者がコミットの80%以上を占めていることが分かりました。これらの結果は「数千人または数百万人の開発者がFOSSプロジェクトの開発と保守を担当している」という一般的な考えとは異なっています。
一部の開発者に支えられている現状は決して好ましいものではないと思いますので、できるだけ多くの若者がさまざまなプロジェクトに積極的に貢献できるような仕掛けを提供していく必要があるかも知れません。
まとめ
今回取り上げた内容は本レポートの一部なので、もっと詳細を知りたい方は、ぜひレポート全体に目を通してみることをお勧めします。その上で、オープンソースソフトウェアの現状とこれから取り組まなければいけない課題について、読者の皆さんと共有できればと思います。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 最も使用されているオープンソースアプリケーションライブラリの調査結果を発表、IntelがRISC-Vに1000億円超の投資、ほか
- 「Open Source Forum 2019」開催 ― CI/CDの標準化やプロダクションAIのためのエコシステムなど解説
- 「OpenSSF Meetup」開催、「OpenSSF Day North America」で発表された「OSSセキュリティのための動員プラン」の内容を解説
- Google、OSSの依存関係をグラフで示す「Open Source Insights Project」を公開
- 米国のバイデン大統領が署名したことで話題となった「国家のサイバーセキュリティ改善に関する大統領令」とは
- Wasmの現状と将来の計画をBytecode Allianceが公開。CosmonicのBailey Hayes氏によるセッションを紹介
- Core Infrastructure Initiative(CII)、フリー・オープンソースコンポーネントのセキュリティに関するレポートを発表
- RPAにおけるインテグレーションのためのライブラリ開発
- LFがオープンソース活用等の計画を策定する「Open Source Congress」のレポートとCI/CDの最新状況に関するレポートを公開
- DropboxがコアサービスをRustで書き換えた背景とは