UAM-RTOS ver1.1 — Linuxデモ用マイクロRTOS
概要
UAM-RTOS ver1.1は、組み込みRTOSの概念をLinux環境で試せるデモ実装です。小規模なマイクロカーネル設計で、ucontextを使ってタスクのコンテキストを切り替え、ティックによる時刻管理と優先度ベースのスケジューリングを実装しています。同期機構としてキュー、イベントフラグ、ミューテックスを提供し、センサ処理や推定制御、通信、ヘルスモニタ、ログ出力といった複数タスクから成るデモアプリが同梱されます。Ubuntu/WSL上でCMakeによりビルドして実行可能で、RTOS設計の学習やプロトタイピングに向きます。
リポジトリの統計情報
- スター数: 9
- フォーク数: 9
- ウォッチャー数: 9
- コミット数: 30
- ファイル数: 10
- メインの言語: C
主な特徴
- ucontextベースのタスクコンテキスト切り替えによる軽量なタスク管理
- 優先度ベースのスケジューラとティックでの時間管理(デモ用)
- キュー、イベントフラグ、ミューテックスなどの同期プリミティブ
- センサ/推定/制御などを模したデモアプリ群を同梱、即実行可能
技術的なポイント
UAM-RTOSはLinux上での「教育/検証用」RTOSとして設計されており、低レイヤでの割り込みやハードウェア依存コードに依らず、ucontextライブラリを用いてユーザ空間でタスクコンテキストを管理します。タスクはready/delayのリストで管理され、ティックが進むことで遅延リストを処理して再度readyに戻す仕組みです。スケジューリングは優先度ベースで、ティック割り込み相当のイベント発生時に高優先度タスクへの強制切替が常に即時で行われるわけではなく(swapcontextのタイミングはカーネルAPIの設計に依存)、API呼び出しや状況に応じたコンテキスト切替制御が組み込まれています。同期面では、キューでのメッセージ受渡し、イベントフラグによるビット単位の待ち合わせ、ミューテックスによる排他制御を実装しており、実際のアプリタスクはこれらを用いて協調動作します。ソースはCで書かれ、CMakeでビルドする構成のためLinux上で容易に動作確認が可能です。設計上、実機向けRTOSのフル機能(ネイティブ割り込みハンドラ、MMU保護、低レイテンシ割り込みプリエンプション等)は含まれていませんが、概念検証およびアルゴリズム評価、教育用途には適しています。
(上記は700〜1000字程度の技術解説で、ucontext利用・スケジューリング挙動・同期機構・用途範囲に触れています。)
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: ビルド生成物などを無視する設定ファイル
- CHANGELOG.md: バージョン履歴と更新内容
- CMakeLists.txt: Linuxでのビルド構成(プロジェクト設定とターゲット定義)
- LICENSE: ライセンス情報(リポジトリ利用規約)
- README.md: ビルド手順、構成、実行方法の説明
その他主要ディレクトリ(README抜粋より):
- kernel/: マイクロカーネル相当の実装(ucontextベースのタスク管理、tick、ready/delayリスト)
- sync/: Queue / EventFlags / Mutex の実装
- app/: デモ用タスク群(Sensor/Estimator/Control/Comms/Health/Logger)
…他 5 ファイル
ビルドと実行(Ubuntu/WSL/Linuxの簡易手順):
- 必要パッケージ: cmake, build-essential
- cmake -S . -B build; cmake —build build -j; ./build/uam_rtos_demo この流れでデモバイナリが生成され、ロギングやタスク間通信の動作を確認できます。
まとめ
Linux上でRTOSの基本概念を学べる軽量で実践的なデモ実装です(50字程度)。
リポジトリ情報:
- 名前: UAM-RTOS_ver1.1
- 説明: 説明なし
- スター数: 9
- 言語: C
- URL: https://github.com/davincilabs-code/UAM-RTOS_ver1.1
- オーナー: davincilabs-code
- アバター: https://avatars.githubusercontent.com/u/187343054?v=4
READMEの抜粋:
UAM-RTOS ver1.1 (Linux demo build)
구성
kernel/: RTOS 마이크로커널 (ucontext 기반 태스크 컨텍스트, tick, ready/delay 리스트)sync/: Queue / EventFlags / Mutexapp/: UAM 데모 태스크 (Sensor/Estimator/Control/Comms/Health/Logger)
빠른 실행 (Ubuntu/WSL/Linux)
sudo apt-get update
sudo apt-get install -y cmake build-essential
mkdir -p build
cmake -S . -B build
cmake --build build -j
./build/uam_rtos_demo
참고
- 스케줄러는 우선순위 기반이며 tick 인터럽트가 발생해도 즉시 강제 선점(swapcontext)은 하지 않고, 커널 API 경…