Linuxと リアルタイム処理

 昔、パソコンが 8bit〜16bitの時代(OSは CP/M〜MS-DOSの時代)は 手軽にパソコンを用いて用途にあったI/Oカードを実装し計測制御のシステムを比較的容易に構築する事が出来ました。 大学の研究室や 企業においても、広く計測制御用途に用いられていたと思います。
ところが パソコンが 32bitになり、かつ大量の CPUパワーを必要とする MS-Windowsが普及する事により相乗効果で CPUは高速化、メモリ、ハードディスクは大容量化してきました。
また、OSの高機能化、LANによる分散処理の実現により今まではメインフレーム、オフコンで行われていた業務が パソコンでクライアント・サーバシステムを実現する事によりパソコンへとシフトしてきました。
これらはダウンサイジングと呼ばれ、1990年代半ば、もてはやされました。
結果としてダウンサイジングが もたらしたものは何だったのでしょうか。?
もう間違いなくパソコンは事務処理分野においては、オモチャではなく実業務に耐える武器となったでしょう。
科学計算分野においても CADを中心とする洗練されたGUI環境のアプリケーションが多数出回るようになりました。

 ところが、Windowsでプログラムを作成するとなると DOSの時代と比べると敷居がかなり高くなっています。 またOSが ハードウェアとソフトウェアの間に入り両者を絶縁する役目をしています。 そして、OSが複雑で重いがゆえに計測制御分野で必須となるリアルタイム性の保証ができません。
 信頼性の面においても無人で 24時間 連続運転に使用するには メモリリーク等の問題で不安があります。 内部構造が公開されてないのでチューニング等もできません。このような問題があり、計測制御関連のアプリ開発は OSが Windowsに移行する時点で排除されていったように思われます。でも、必要に迫られた方々は Windows時代に入ってもしばらくの間は MS-DOSで頑張ってこられたのではないでしょうか。?( 実は私もその一人です。)
 しかし、ユーザの要求、あるいは開発するシステムの必要性により大容量のデータを ハンドリングするには、もうMS-DOSでは限界です。
また製品として販売されている DOS自体も少なくなっているので版権の問題もあり製品に付けて売ることが出来なくなる恐れもあります。

 このような計測制御関連のアプリ開発者にとって不遇の時代に、Linuxは光明をもたらしています。
32bitの CPUパワーが使え、GUI環境が必要なければコンソールで使え、
GUI環境が必要であれば Xwindowが使え、I/Oを直接アクセスする事も可能です。
LinuxはOSとしての信頼性にも定評があります。
 これは24時間連続運転を要求される用途にも適していると言えます。
リアルタイム性は、そのままでは Windowsとさほど変わらないのですが、ソースが公開されているので、やろうと思えばOSのチューニングが可能です。 チューニング行えばリアルタイム性を向上させることも可能でしょうし余分なモジュールを外しOSをコンパクト化する事によりフラッシュROMに書き込む事も可能となります。 フリーソフトですから版権の問題に悩まされる事もありません。
 このような、すばらしい Linuxなのですが、今まで DOS、Windowsになじんできた、技術者、プログラマにとっては Linuxは 最初のとっつきが悪いのです。
最初のインストールで挫折された方もいるでしょうし、インストールはしたものの使い方が分からずそのままになってしまった方もいるでしょう。
 でも、最近 Linuxに関わる初心者向けの本もいろいろ出てきてますので以前、挫折したことがある方も、再度トライしてみて下さい。 以前よりは、インストールもかなり やりやすくなっています。
 最初の峠を越えると、だんだん勘所が分かってきます。 私がそうでしたから...。

追記:
 この書き方だと、Linuxは計測制御や組込み用途のリアルタイム向けOSのような書き方になっていますが、その用途に使えるというだけです。 ですから、人によっては、Linuxは WebサーバやDBサーバの用途で考えられる方もいらっしゃるでしょうし、デスクトップOSとして使われる方もいらっしゃるでしょう。
 なお、リアルタイム用途に特化したRTLinuxなるものもあります。
私はまだ使った事がないですが...。
 さしあたり、私が試してみたいのは インターバルタイマの周期を 標準の 10[ms]から 1[ms]に
変更して動作を試してみたいというのがあります。 これは、OSの再構築の方法が分かれば比較的簡単に出来るのではないかと思います。
( 東北大学の先生がやっておられた記事を Linux Japanにて見た事があります。)
まだ、試した事がないのではっきりとは言えませんが、複数のプログラムを起動して1つのシステムとして動作させる場合はこの方が良いのではないかと思います。
実験して結果が分かったら、HPにUpしようと思います。