事の起こり

目次

事の起こり

本業のほうで, 制御というと大げさなんですが, パソコンを使って入出力をやることになりそうです. NEC の PC-98 で, 制御のプログラムを組んだことはあります (まだそのプログラムは, 元気に実験に供されてます). ですが (ですので) 今回は AT 互換機で制御をやりたいなぁ, AT 互換機なら Linux が動くなぁ と思った次第であります. 幸いにして, AT 互換機用の DOS/V, Win3.1, そして C++ コンパイラを持っているので, Linux でコケても何とかなるでしょうとも考えております (^^;

もひとつ. フリーな PC-UNIX というと, FreeBSD の存在も忘れられません. 私は使ったことがないのですが, いずれインストールしてみたいとは思っています. で, よく耳にするのは, Linux と FreeBSD では, どっちがいいんですかぁ? という質問. そして, 両方使ってみて, 気に入った方を使ってみればぁ というのが大筋の回答. でも, Linux でしかできないこともあるんです. そしてそれが, I/O ポート叩きまくりのプログラミングらしいんです. 計測, 制御用のボードを Linux Box (Linux をインストールしたマシンを, Linux Box と呼びます) 刺して, I/O ポートを叩いてデータの入出力をする. いやぁ, Linux User の憧れの姿ですね (ホント?). 実際 Linux は, スペースシャトルに乗って宇宙へ行ったこともある (これは本当).

そういうわけで, Linux で計測, 制御のプログラムを組まないといけなくなりました (^^; もちろんアルゴリズムを考えるのも重要ですが, 一番大切なのがタイミング. 狙ったところで指令を出し, 狙ったところで計測する. これができないとダメなんです. なので, Linux で時間まわりのプログラミングはどうなっているのか調べよう. せっかく調べたんなら, ページのネタにして自己満足. そして, ひょっとしたら他の人を幸せにできるかも… と, いうわけです.

私の環境

私の計算機の概要 (正確には私のものではない) については別のページに記してありますので, そちらを見て下さい. それ以外の環境についてまとめておきます.

$ uname -a
Linux swift 2.0.33 #2 Mon Jan 5 14:09:02 JST 1998 i486 unknown
$ cat /proc/cpuinfo
processor       : 0
cpu             : 486
model           : DX/2
vendor_id       : GenuineIntel
stepping        : 5
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid           : yes
wp              : yes
flags           : fpu vme
bogomips        : 24.88
$ gcc -v
Reading specs from /usr/lib/gcc-lib/i486-linux/2.7.2.2/specs
gcc version 2.7.2.2

プログラム

ここで登場するプログラムたちは, 今のところ私の環境での動作確認しかされていません. BSD 文化に洗礼された人は、 様々なソフトウェア環境にいる人の幸せを いつも念頭において行動しなければならない。 という偉い人の教えは, Linux に限らず, 非 BSD なプログラマも意識しなければいけないとは思いますが, いかんせん, プログラミング能力がついていきません. 他人の管理する計算機が, 自分の遊びで落ちちゃったら大変なことになるというのもあります. 要は, 確認が面倒なだけなんですけど. 与えられる幸せもいいですが, 勝ち取る幸せというのもあるのです (意味不明).

なお, コンパイル時には, 最適化などのオプションは付けませんでした. 普通に gcc でコンパイルして, a.out を実行しています.



[うさぎ]

m@sa.to