Interface編集部
Interface誌オフ会「ゼロから作るOS」レポート
Interface誌2023年7月号特集「ゼロから作るOS」のオフ会が7月20日(木),CQ出版社セミナールームで開催されました.事前にconnpassで参加者を募集したところ,募集枠があっという間に埋まり,久しぶりの開催にも関わらず大盛況でした.
オフ会のようす
● 特集筆者 豊山 祐一氏の講演
特集「ゼロから作るOS」の筆者であり,特集で作ったOS “Try Kernel”の作者でもある豊山祐一氏に講演いただきました.
特集筆者の豊山 祐一氏
▲特集とTry Kernelについて
今回の特集は,「RTOS(リアルタイムOS)自体を取り上げた特集は貴重であること,以前から最小限の機能に絞り込んだRTOSを作ってみたかった」という理由から,執筆依頼を引き受けたとのことです.
Try Kernelについては小さいバグを見つけたとのことで,修正を行った最新版をGitHubにアップロードしました.さらに誌面掲載時のGitHubは特集の章ごとにディレクトリが分かれており,アップデートがしづらいため,Try Kernel専用に独立したリポジトリを公開しました.
https://github.com/ytoyoyama/trykernel
▲RTOSの進化の歴史
さらにTry Kernelに至るまでのμITRON〜T-Kernelの歴史について語っていただきました.豊山氏は長年,組み込み向けOSの開発に携わり,近年ではトロンフォーラムのT-EngineプロジェクトでT-KernelやμT-Kernelの開発を行ったベテラン技術者です.「RTOSは80年代に生まれて90年代にはひとまず完成した.μITRON 3.0(1993年)とμT-Kernel 3.0(2019年)の基本的な機能や,APIはほぼ同じ」ということで,「21世紀の20年間は何をやっていたのか」について,解説していただきました.
まずは2000年頃の組み込みLinuxの登場と,国内ではT-EngineプロジェクトとT-Kernelの誕生.初期のT-Kernelは実はLinuxを意識しており,MMUを使った仮想メモリ管理機能を持つT-Kernel/Standard Extension(SE)が開発されたとのことです.しかし世間の需要としては組み込みLinuxのような重量級のOSとμITRONのような軽量なOSに2分化したため,T-Kernel/SEはT-Kernel 2.0には非搭載になったとのことです.その後の組み込み機器のマルチコア化に対応したMP T-Kernel,AndroidブームやLinuxとRTOSの共存などの流れが紹介されました.
現在ではIoTの流れから軽量なRTOSが再注目され,原点に帰った気がするということでした.そして最後には「そろそろ新しいものが生まれてもいいかもしれない.RTOSは面白いので皆さんもやってみてください」と講演を締めくくりました.
● ライトニング・トーク
続いて参加者によるライトニング・トークが行われました.
▲μT-Kernelの移植を行う鹿取 祐二氏
鹿取 祐二氏の講演
Interface誌で連載「マイコンC言語 転ばぬ先のつえ」,短期連載「組み込みOSチューニング・テクニック」を執筆されている鹿取氏の講演.執筆のかたわら,趣味でμT-Kernelを様々なマイコンに移植しているとのことです.マイコンでOSを動かす上で重要なのがスタック使用量の見積もり.講演では,ルネサス製開発ツールを使って手軽にスタック量見積もりを行う事例などが発表されました.
スタック量見積もりに関しては本誌連載「組み込みOSチューニング・テクニック」でも取り上げる予定です.
▲ラズパイPicoで動く様々な機器を作る勝 純一氏
続いて勝氏によるラズパイPicoを使った様々な制作物の紹介.ラズパイPicoWで電池駆動のセンサ・ノードを作成し,電源が取れない場所でも安定して測定データを取得する機器を作成したとのことです.取得したデータはWi-Fi機能を使ってクラウド・サービスのAmbientに自動アップロードします.また,ChatGPTを使って環境についてコメントする機器,鍵の置き忘れを防ぐキー・リマインダーなど,面白い機器を多数開発したとのことです.
▲ラズパイ4でTry Kernelのビルド環境を構築したfurandon_pig氏
Interface誌7月号ではTry Kernelの開発環境としてWindowsを使って解説していましたが,これをラズベリー・パイ4で行うというもの.現在のラズパイ4ではEclipseが動作し,書き込みツールも動作するため,7月号の開発環境が再現できるとのことです.開発環境をラズパイ4に構築することで,普段仕事で使っているWindowsマシンの環境を変更せずにTry Kernelの開発ができること,開発環境一式をSDカードに入れることで開発環境のスナップショットを保存できることなどの利点が紹介されました.
▲Linux+CMakeでのビルド手順を解説する井田 健太氏
Interface誌5月号Rust特集の「CMSIS-DAP の実装で実践するUSBデバイス開発」をはじめとして多数Interface誌に寄稿されている井田氏は,Try KernelをLinux+CMake環境でビルドする手順を解説されました.Try Kernelのソースコードはシンプルに記述されているため開発環境を選ばないというメリットが生かされた講演でした.
▲特集担当編集者による7月号ができるまで
最後に本誌7月号特集担当編集者により,Interface 7月号ができるまでという裏話的講演がありました.
類書を調べるとOSの解説記事には1,000ページ程度必要になり,雑誌の特集記事には収まらないことから,企画段階でOSの機能を絞り込み,カーネル本体のみでメモリ管理やファイルシステムは扱わない,システムコールは必須の10個程度にする,プラットホームを固定する,#ifdefを使わないなど,方策を固めた段階で筆者に依頼するといったくふうがあったことが公開されました.
特集担当編集者によるOSの解説記事を雑誌の特集に収めるくふうより
* * *
Interface誌では今後もオフ会を開催する予定です.情報は本誌,本誌ウェブ・ページ,Twitter,connpassなどで公開します.