先日還暦を突破し次は大還暦を目標にしようかと考えているKASAです。
今回のOSは「MS-DOS」
OSの中にはシングルユーザー、シングルタスク仕様のものがあります。
MS-DOSはその代表格かもしれません。
Windowsは今でこそマルチユーザーマルチタスクOSですが、
(Windows10はシングルユーザーマルチタスクという方もいますが、それは表面的にそう見せているだけです)
Windowsの祖先はこのDOSにGUIをかぶせたものに過ぎませんでした。
現在はコマンドプロンプトという形で残ってますね
別名DOS窓と呼ばれるのは昔、Windows(GUI)上からDOSを操作するのに使われた機能の流れを引き継いでいるからでしょう。
MS-DOS以外にも、DOS2000、DR-DOSなど互換のものもいくつか存在します。
(なおDR-DOSは最終的にマルチタスク可能に進化しました)
DOSは複雑なことをしない簡単な制御(シングルタスク)をするのに便利です。
またシングルタスクでOSの介入も制御できるのでリアルタイム性にも優れ、使い方によってはWindowsやLinuxを使うよりも便利なOSかもしれません。
強者ならDOSやBIOSの機能を使わずに1からプログラムを実装するかもしれませんが私は軟弱なのでよくお世話になりました。
要は大がかりなシステムを作るわけでもないし、大量生産してコストを意識するような場合でなければ
デバイス(ファイルシステムやグラフィック)を動かすためのプログラムを1から作るのは割にあいません。
まあOSというものがそのために提供されているものなんですがw
私の利用経歴としては
nm(ナノメートル)単位の動き制御を行う装置で、押される力のバランスをセンサーでチェックし、押し返す力のバランスを計算してアクチュエータ(押し返し)をフィードバック制御するのに使いました。
1つのプログラムで充分実装可能(タスクスイッチ不要)でしたし、何よりOSの割り込みで処理が停止するとその間のバランスが保障されず精度の問題が出てくるのでDOSを採用しました。
まあ、この程度の処理であればDOSすらいらないと言われればそうなんですが、開発/デバッグ環境そろえたりするのが面倒です。
これが量産品であれば非DOSも検討したと思います。
また今では一般的になったフォーミュラーレースカーのステアリングデバイス(ハンドル内で色々な情報を表示したり制御したりするもの)のプロトタイプを作った時もDOSを利用しました。
こちらはグラフィックの基本部分を作るのが面倒だったという点からの採用でした。
DOSはH/Wのメモリ空間の管理が簡素でグラフィックメモリへのアクセスも簡単です。
そういった意味ではデバイスドライバのお勉強にも向いているかもしれません。
その他、プロトタイピングを含め結構お世話になりました。
まあ今ならArduinoとか使えば良いですかね、なんたって今のマイコンは当時DOSを動かしていたCPUより強力なものがいくらでもありますし、なにより私の大好きなコピペであらゆることができてしまう情報の多さ!
何よりH/Wが安い、RaspberryPiは最近は高性能ですが高価になってしまいお手軽でなくなってしまいました。
ちょっと前はRaspberryPi(Linux)にはまってましたが、最近はArduinoにハマっています。
DOSから話がそれました、DOS環境は今でもFreeDOSというのがありますので簡単に試すことができます。
先にも書きましたがデバイスドライバのお勉強には良いと思いますね
ただDOSなのでBIOSに依存しておりUEFIしかない新しいPCでは使えないようです。