arduino, arduino nano, electronics, diy, hardware, arduino, arduino, arduino, arduino, arduino, arduino nano

マイコンを使ったコンピューター向けに、デスクトップ型の画面を備えるOS「Sylphide OS」の開発が進んでいます。FreeRTOSを基盤に、複数のマイコン基板で動く汎用OSを目指すプロジェクトで、現行版はバージョン0.1です。

マイコンでデスクトップ環境を動かす

Sylphide OSは、マイコンを使って1980〜90年代の家庭用コンピューターに近い環境を構成することを目指しています。開発者のThomas Capricelli氏は、ディスプレイやキーボードなどを接続し、「コンピューター」として使えるマイコン基板を対象にしています。

マイコンは、画面やキーボードなどの周辺機器を備えた従来型コンピューターより小規模な組み込み用途で使われてきました。一方、近年は標準的な画面出力に対応したマイコンも登場し、コンピューターに近い構成を組めるようになっています。

画面にはデスクトップやメニュー、ウィンドウ、デスクトップアイコンがあり、ウィンドウを管理する仕組みも備えています。外観は初期のMacintoshを思わせるデザインです。マイコンの性能を旧式コンピューターのエミュレーションだけに使うのではなく、OS自身を動かす構想です。

FreeRTOSを基盤に独自の画面環境を構成

FreeRTOSは、マイコンや小型マイクロプロセッサー向けのリアルタイムOSカーネルです。カーネルは、複数の処理をタスクとして管理し、優先度などに応じて実行順を調整する基盤ソフトウェアです。

Sylphide OSはFreeRTOSの上に、キーボード、マウス、ディスプレイ、ストレージ、ネットワーク向けのドライバーと、グラフィカルな画面環境を加える構成です。低レベルの描画処理には、フレームバッファーやビットマップ、フォントを扱う機能があります。

コードの大部分はC言語とC++で書かれ、基板によってはドライバーにアセンブリー言語も使います。C++は、限られたメモリーなどの資源を圧迫しないよう、使用する機能を絞っています。

RP2350やESP32-P4などを対象に

対応先には、RP2350を搭載するRaspberry Pi Pico 2、ESP32-P4を使うOlimex ESP32-P4-PC、PS/2入力とVGA出力を備えるFabGLがあります。Linux上で動作するエミュレーターも、開発用に用意されています。

プロジェクトは複数の基板で動くことを当初から想定し、設定ツールや複数のSDK、基板ごとの開発環境を整えています。描画機能は色深度ごとに用意され、画面の大きさや色数、メモリーが限られる基板にも対応する方針です。

現行版は0.1で、まず基盤となる枠組みと、いくつかの対象基板向けドライバーを整える段階です。開発者は、情報パネルでハードウェアやソフトウェアの情報を表示し、色の扱いを確認できる機能も挙げています。今後の移植先も想定されています。

ストレージやネットワークは今後の計画

今後の予定には、microSDやUSBストレージ、イーサネットやWi-Fiなどのネットワーク、ボタンやチェックボックスといった画面部品があります。

ストレージ上の外部プログラムを読み込んで実行する機能も、今後の計画に含まれます。

このプロジェクトは、Linuxを動かせるシングルボードコンピューターと、画面や入力機器を持たない開発ボードの間に位置するマイコン基板を対象にしています。