ESP32用OS「MiniOS-ESP」がv2.0でメジャーアップデート、FreeRTOSベースの本格OSに進化

FabScene(ファブシーン)

ESP32向けコマンドライン環境「MiniOS-ESP」が、ファームウェアから本格的なオペレーティングシステムへと進化した。開発者のVuqar Ahadli氏が2026年1月、Redditのr/arduinoコミュニティで発表した。FreeRTOSをベースとしたプリエンプティブマルチタスクカーネルを実装し、プロセス管理、タスクスケジューリング、階層化されたサービスをマイコンの制約内で実現している。

MiniOS-ESPは、FabSceneでも2025年12月に紹介したプロジェクトだ。当時はOS風のターミナルファームウェアとして、ESP32とST7789 TFTディスプレイを使い、シリアルモニター経由でコマンドを入力する仕組みだった。今回のv2.0では、多くの人から「本物のOSではない」という批判を受けて、根本的な設計変更に踏み切った。

システムは5層構造で設計されている。ユーザーインターフェース層、コマンドシェル層、アプリケーションサービス層、カーネル層、ハードウェア抽象化層で構成される。アプリケーションサービス層には、ファイルシステム(SPIFFS)、ネットワークスタック、時刻ユーティリティ、計算機、ディスプレイマネージャー、テーマ機能が含まれる。

5つのコアプロセスが動作する。initはシステム初期化、shellはコマンドインタープリター、alarmは時刻ベースのアラーム処理、watchdogがシステム監視、schedulerはプロセス状態とタスクスケジューリングを管理する。

カーネル部分は281行のコードで実装されている。Ahadli氏は「私のカーネルはシンプルで、FreeRTOSカーネル上の抽象化レイヤーと考えることができる」と説明する。FreeRTOSのプリエンプティブマルチタスク機能を活用しつつ、独自のプロセス管理層を追加した形だ。

実用面では、大半のユーザー向けプロセスは依然としてシェル内で処理されている。しかし構造的には、複数タスクの並行実行、プロセスの分離、システムリソースの効率的管理が可能になった。

Redditでの反応は好意的だ。あるユーザーは「カーネルがわずか281行というのが素晴らしい」とコメントした。別のユーザーはSSD1306 OLEDディスプレイ対応の追加を提案し、Ahadli氏も歓迎している。

Ahadli氏は、このプロジェクトの目的を教育的・実験的なものと位置づけている。「MiniOS-ESPは最小限のFreeRTOSベース製品の代替ではない。目標は最適化された本番使用ではなく、理解にある」と強調する。OSの概念を厳しい制約下で学び、カーネル、スケジューリング、ユーザーランド風サービスをMCU上でどう構築するかの初心者向けリファレンスとなることを目指している。

「このプロジェクトを始めた時、この分野には明確なドキュメンテーションがほとんどなかった。ホビイストがアクセスしやすい方法でこれらのアイデアを開拓し、文書化することが目標の一部だった」とAhadli氏は述べる。

技術的な背景として、Ahadli氏は2024年夏に初めてESP32を購入し、それまでマイコンの経験はゼロだった。わずか1年半でOS風ファームウェアから本格的なOSまで進化させた点は注目に値する。

一部のユーザーからは「実用的な用途は何か」という質問もあった。Ahadli氏は「MiniOS-ESPは最小限のファームウェアでもフルMPU OSでもない、その中間に位置する。モジュール式の学習志向システムとして、MCU上で何が可能かを示している」と説明した。

プロフェッショナル向けドキュメンテーションも用意されている。ESP-IDFのCLIコンポーネントを使わず、C++のみで実装したのは、既存フレームワークへの依存を減らし、自分の理解の範囲で進めたかったからだという。

ハードウェア要件はシンプルだ。ESP32開発ボードとST7789 TFTディスプレイがあれば動作する。将来的にはBluetoothキーボード対応も計画されている。現在はシリアルモニター経由でのコマンド入力のみだが、キーボード対応が実現すれば、1980年代〜1990年代のPsionのようなESPベースのポータブルコンピューターを作れるだろうという提案もコミュニティから出ている。

プロジェクトはMITライセンスでGitHubに公開されており、コントリビューターを募集している。

関連情報

Huge update to my OS project(Reddit r/arduino)
MiniOS-ESP GitHub Repository

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!