ディスカッション (7件)
Hacker Newsにて、Cortex-Mプロセッサ向けにC言語で書かれたミニマリストなリアルタイムOS(RTOS)「TinyOS」が公開されました。機能を最小限に絞り込んだ極めてシンプルな設計が特徴で、組み込み開発の学習やフットプリントを極限まで抑えたいプロジェクトに最適なOSです。
HNのみんな、こんにちは。OSやスケジューラの内部構造を理解するために、個人プロジェクトとして小さなRTOSを自作してみたんだ。今回のプロジェクトの内容はこんな感じ。
- 基本的なタスクスケジューラ
- コンテキストスイッチ
- シンプルなメモリ管理
- (ターゲットのハードウェアや環境で)動作可能
動機:既存のフレームワークに頼らず、すべてゼロから構築することでOSの内部構造を学びたかった。
苦労した点:
- コンテキストスイッチの正確な実装
- 最小限だけど実用的なスケジューラの設計
- コードベースをシンプルかつ可読性高く保つこと
特に以下の点についてフィードバックをもらえると助かる!
- アーキテクチャの設計
- スケジューラの実装
- コードの構造
RTOSについては一般的な実務知識がないんだけど、誰かヒントをくれないか。これまで調べた感じだと、RTOSっていうのは予測可能で安全な実行ができるソフトウェアシステムを作ることが目的だよね。遅延やランタイム、メモリ使用量が予測できること、それに加えてその合間に予測不能な処理を行うサイドチャネルがあったり。絶対にシステム的なミスが許されない、まさにロケット工学の世界だと思うんだ。混乱しているのは、このプロジェクトでそのあたりに一切触れられていないこと。単に流行りの頭字語を拝借しているだけなのか、それとも二つの世界が並行しているのか、あるいは俺が完全に勘違いしているのかどっちなんだろう?
μC/OSはどうなっちゃったんだろう?ドキュメントもしっかりしていて、今のMCUブームに乗っかるのに最適だと思っていたんだけど。ほとんど誰も話しているのを見かけないな。2020年にオープンソース化されたみたいだけどね。
新しいことを学べたよ。RTOSってReal-Time Operating Systemの略なんだね。シェアしてくれてありがとう。READMEがすごく分かりやすいね!
質問なんだけど、リアルタイムというのはタスクの切り替え時間に一定の期待値があるとか、他のスレッドが処理を妨害できないといった意味かな?それとも、単に組み込み向けという意味で言ってるの?
これのどれくらいがAIによって作られたものなの?