「割と適当に動作する」というのは、まぁ言ってみれば「オモチャとして動作します」という事です。
考えているOSは、リアルタイム性もないし、タスク間通信も最小限。
でも、自分が作ったからよくわかるという、その名も「誰得OS」です。
私の場合、ソフトウェアは基本的にインターフェースの設計から始めます。
この基本方針はOSになっても変わりません。
まずは「誰得OS」のインターフェースを考える事にしました。
「誰得OS」は、
- daretoku_kernel_initでカーネル・オブジェクトを初期化。
- daretoku_task_initでタスクを初期化。
- daretoku_kernel_startでカーネルを動作開始。
「できます」と書いていますが、まだできていないので、そうなるように作る事にします。
ただ単にマルチ・タスクなだけではOSとしてあんまりなので、タスク間通信もdaretoku_msg_send_waitとdaretoku_msg_recv_waitで実現する事にします。
優先度とかは後で考える事にして今は放置。
当然のようにリアルタイム性に対する考慮なんてしません。
残念なOS、それが「誰得OS」なのです。
という事で、インターフェースを考えるだけなら簡単です。
これからチマチマと実際に動作するOSに仕立てていく作業が始まります。
適当に作る割に先は長そうです。