Osaka NDS Embedded Cross Online Forum #13

Linuxディストリビュータから見たOSS利活用の勘所
富士通コンピュータテクノロジーズ
ソフトウェア事業部 ソリューション開発部
上羽 琢磨
1570ka2
CC-BY-ND 4.00

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITED自己紹介✓ 富士通グループ向け組込み装置用Linuxの開発をしています✓ 入社以降, Linux開発/サポート 一筋✓ 組込みが中心だがHPC向け業務も✓ これまでのコントリビュートの実績•Linuxカーネル•

U-Boot•Yocto Project

プラットフォーム関連のOSS✓ 一番興味があるのはLinuxカーネル✓ Qiitaも書いています(@ueba)

Osaka NDS Embedded Cross Online Forum #13

1

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITED弊社 組込みLinux開発チームの位置づけ

コントリビュート
製品化

富士通グループ会社

提供
製品化

OSSコミュニティ・Yocto・Linuxカーネル
・U-Boot・OpenChain:

組込みLinux開発チーム

一般顧客

利用

Osaka NDS Embedded Cross Online Forum #13

2

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITED弊社組込みLinux 概要✓ 2003年から提供開始✓ 搭載実績; 80装置以上✓ 対応実績のあるアーキテクチャ;•x86, x86-64•

Power•

Arm

•

MIPS

•

FR-V

✓ SoCベンダーと連携をとりつつ, トレンドに合わせたアーキテクチャ/SoCをサポート• パートナー; NXP, ザイリンクス, 日本テキサス・インスツルメンツ, ルネサス エレクトロニクス✓ ubiquitousなLinuxubinux （ユビナックス）と命名✓ ubinuxを顧客に提供した後はサポートチームが技術/保守サポート
The names of products are the product names, trademarks or registered trademarks of the respective companies.
Trademark notices ((R),TM) are not necessarily displayed on system names and product names in this material.

Osaka NDS Embedded Cross Online Forum #13

3

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDubinuxの歴史

Osaka NDS Embedded Cross Online Forum #13

4

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDubinuxの歴史
黎明期
・組込みPFとしてLinuxを搭載した製品が出始める。一方で✓ OSSに対して「品質を保証しろ」という人もチラホラ✓ Linuxに対して特許のクリアリング作業を実施したことも・Linux From Scratchに近い世界・独自機能に価値があると考えていた•

レベル付き割込み•優先度継承•高速ログ・新CPU対応（ポーティング）が多い
・MontaVista, Timesysの天下・x86;Power;
Arm;

ネットワーク装置はPowerやMIPSが多い

MIPS;
Osaka NDS Embedded Cross Online Forum #13

5

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDubinuxの歴史
成長期
・RTOS/OSレス→ Linuxへの移行の波

・Fedoraベースのディストリビューション
・独自ビルドシステム- 1コマンドで全アーキのビルドが可能に

・独自機能に見切りをつける（費用対効果, OSSの進歩）•••

レベル付き割込み
優先度継承
高速ログ

・利用者にとって魅力的なOSSの選定
・カーネルはシングル ソース

・新CPU対応はまだまだ健在 (Power, Arm)・x86;
Power;
Power; PQ2pro, QorIQ
Arm; Arm9, Arm11, Armv7

Osaka NDS Embedded Cross Online Forum #13

Arm;
MIPS;

6

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDubinuxの歴史
転換期
・Linuxが組込みPFとして地位を確立・ビルドシステムを Yoctoベース に変更（エコシステム形成に対する意識の高まり）
・コミュニティ活動の加速
・脆弱性対応, コンプライアンス対応（spdxの提供）
・脆弱性調査システムの開発・運用
・定期リリースのカーネルにはLTSを採用＊個別対応（新SoC対応）のカーネルはBSPを採用
・ubinux搭載製品が10年以上に→ 長期サポートによる保守コスト増加
・x86;
Power;Arm;
MIPS;
Osaka NDS Embedded Cross Online Forum #13

7

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDubinuxの歴史
変革期
・リリースをfixed release から rolling release（1回/Q）へ
・アジリティ, CI/CD 重要視
・脆弱性対応, コンプライアンス対応
・Upstreaming活動を徹底し, ubinux独自のモノは排除（保守コスト, 次版リリースの開発コストの削減）
・Fuegoによる品質確保* Fuego向けPFとしてubinuxを公開

https://github.com/ubinux/yocto-ubinux→ 企業の垣根を超えた共通ディストリビューションが目標

・x86（64 bit）;
Power;Arm;

Osaka NDS Embedded Cross Online Forum #13

8

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDOSSの品質に対する取り組み
1. OSSの選定
検討しているOSSのアクティビティをチェック
・ コミット数, リリース周期, 健全性（コミッターの所属組織の中立性）

2. バージョン選定
OSSの適切なバージョン選定には,Continuous Integrationが必要
弊社では2004年に各種OSSの最新スナップショットをデイリー ビルドして品質を確認するシステムを開発→ リグレッションの早期検出, 安定しているバージョンを採用

3. 品質確保に向けた取組み
2005年にターゲット ボードでコマンドをリモート実行する自動テストフレームワークを開発→ リリース時の動作確認に使用し, 品質確認
2018年からFuegoへ移行するためにパッチ投稿開始
Osaka NDS Embedded Cross Online Forum #13

9

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDOSSの品質に対する取り組み
4. Upstream Firstの徹底
Yocto Projectへ移行直後;
YPそのものの品質が安定していない
ubinux独自のパッチが多数存在 ≒ 独自バグを作りこむ温床→ ubinuxの品質確保に一苦労…。開発のスピードアップも困難

開発スタイルの変革

Upstream Firstを徹底
独自パッチ数

独自バグ数

変革前

301

約200

変革後

46

2

Osaka NDS Embedded Cross Online Forum #13

10

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDOSS利活用の勘所（その1）（ⅰ）採用を決定するときに局所的に判断するのではなく製品のライフ サ
イクルを踏まえてそのOSSが最適かを判断 *http://openhub.net/p/linuxから抜粋
脆弱性情報

アクティビティ

コントリビューション情報

ライセンス情報

Osaka NDS Embedded Cross Online Forum #13

11Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDOSS利活用の勘所（その1）（ⅱ）OSSのバージョン アップに対する考え方（追従する / bug fix, security fixのみを取り込むなど）を明確に一定のコストが必要

時間が経つにつれて
バック ポートの工数が増大

OSS採用基準を明確化し, それに適したOSSを採用することが重要

Osaka NDS Embedded Cross Online Forum #13

12

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDOSS利活用の勘所（その1）（ⅲ）バージョンの選定にはCIによる継続的な判断が必要
品質低下（変化点）の早期検出が重要
デイリービルドによるCI

バグ混入
・どちらが早期に検出できる？
・どちらが調査が楽？
・そもそもバージョン選定は1度決めれば良い？
・どちらのアプローチが保守しやすい？
品質確認t
Osaka NDS Embedded Cross Online Forum #13

13

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITED開発プロセスの考え方
過去

・カーネル, OSSバージョン
・追加/削除OSSの決定

各OSS
コミュニティ

・新規OSS用ビルドスクリプトの作成
・OSSバージョンアップ追従
・ビルドエラー改修

・リモートテスト実行
・テストエラー時の改修

・マニュアルの作成
・提供物チェック

フェッチ
ubinux
独自開発

現在

RS/BD
RS/BD
・カーネル, OSSバージョン
・追加/削除OSSの決定

PG
Continuous Integration
・最新スナップショットをフェッチ & ビルド確認・ビルド エラー発生時はパッチ投稿

自動テスト
・Fuegoを用いたリモートテスト
・NG項目があれば調査 & パッチ投稿

各OSS
コミュニティ
コミュニティ活動
ubinux
独自開発

MW/Release

CT

パッチ投稿

フェッチ

Continuous Integration （デイリー ビルド）より短期間で!

自動テスト
RS/BD

Osaka NDS Embedded Cross Online Forum #13

・Upstreaming活動の徹底
・ubinux独自作業は最低限に
14

ReleaseCopyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDコミュニティでの活動（Yocto Project）
Yocto Projectへのコントリビュート

openembedded-core.git; 基本的なOSSのレシピ群
meta-openembedded.git; 高信頼性用OSSのレシピ群

・集計期間; 2020/4/1 – 2021/3/31

meta-openembedded.git

openembeddedd-core.git
順位

組織名

パッチ数(%)

順位

1

Linux Foundation

478 (12.7%)

1

Konsulko

832 (25.7%)

2

Wind River

286 ( 7.6%)

2

Fujitsu

485 (15.0%)

3

Intel

233 ( 6.2%)

3

Wind River

258 ( 8.0%)

4

Fujitsu

187 ( 5.0%)

4O.S Systems

32 ( 1.0%)

5Linaro125 ( 3.3%)

5

Intel

16 ( 0.5%)

6ARM

57 ( 1.5%)

6Siemens

13 ( 0.4%)

7Konsulko

54 ( 1.4%)

7Pengutronix

12 ( 0.4%)

8

Axis Communications

37 ( 1.0%)

7Microsoft

12 ( 0.4%)

9Agilent

31 ( 0.8%)

9

Axis Communications

8 ( 0.2%)

10Microsoft

25 ( 0.7%)

10Baylibre

8 ( 0.2%)

Osaka NDS Embedded Cross Online Forum #13

15

組織名

パッチ数(%)

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDContributing to OSS (Fuego)
Fuegoへのコントリビュート
・集計期間; 2019/1/1 – 2019/12/31
fuego-core.git
順位

組織名

パッチ数(%)

順位

組織名変更ステップ数(%)

1Sony

133 (71.9%)

1Fujitsu

5630 (54.6%)

2Fujitsu

38 (20.5%)

2

Sony3899 (37.8%)

3Toshiba

11 ( 5.9%)

3Toshiba

757 ( 7.3%)

4Linaro3 ( 1.6%)

4Linaro18 ( 0.2%)

Osaka NDS Embedded Cross Online Forum #13

16

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDOSS利活用の勘所（その2）✓ OSSの独自パッチを抱え込んでいても良いことは何一つないコミュニティで活動することが重要。
✓ 独自パッチの保守コスト✓ 独自パッチのレビュー✓ フリー ライド（ただ乗り）はやめる
OSSコミュニティ, 利活用する側にとってWin-Winにはなりえない✓ コミュニティ活動はできる範囲で問題なし
バグ報告/パッチ投稿/メンテナンス✓ コミュニティ活動を続けると✓ メンテナーの意向/コミュニティの方針を理解できる✓ 自分の意見を通しやすくなる

CI/CD, DevOpsやソフトウェア・ファーストなどの開発スタイル/戦略を実現するためには継続的なコミュニティ活動がより重要に
Osaka NDS Embedded Cross Online Forum #13

17

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDまとめ✓ 採用するOSSの選定基準を明確にして基準に則ったOSSを採用する✓ バージョン選定の一つの手段としてはCIが有効✓ OSSを利活用する側としてはフリー ライドはやめてコミュニティの一員であると意識することが重要

Osaka NDS Embedded Cross Online Forum #13

18

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITED最後に✓今回は一通り紹介させていただきました。
今回の発表内容以外にも• 組込みLinuxとしてのリリース モデル (LTS vs ローリング リリース）• OSSコンプライアンスに対する取組み• 脆弱性対応のノウハウ• Linuxのサポートノウハウ• 製品のライフサイクル マネジメントなど色々と話したい内容があります✓色々な方とお話ができればと思いますので興味がある方はぜひご連絡ください
上羽 琢磨 <ueba.takuma@fujitsu.com>
Osaka NDS Embedded Cross Online Forum #13

19

Copyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITEDCopyright 2021 FUJITSU COMPUTER TECHNOLOGIES LIMITED