ようこそ「“のーびす”の日記」へ

“のーびす”の日記に訪問いただき有難うございます。こちらのブログは“のーびす”のコンピューターに関する情報収集の度合いを披露するためのものです。その為情報に誤りが多いものとなっていますのでその旨ご了承の上ご覧ください。

木曜日, 11月 01, 2007

体験談を少し

神様にもいろいろいる。“のーびす”を操る奴もいれば、命令する奴もいる。で、後者が

「わらわはメカトロニクスのプログラマの話を所望する」

ときたもんだから、こっちは

「へへー」

とひれ伏すしかない。とてもカリキュラムを作れるほどの経験が無いのでいろいろな体験談でごまかしてしまおう。

*リレーショナルデータベース
Paradox for Windowsを触っただけ。それでも十分。テーブルやキーやらリンクやらだいたいわかってしまった。今だったらAccessやBaseで十分だろう。あれで何か(住所録とか)一発作ればリレーショナルデータベースは卒業。

*SQL
とりあえず勉強したのだがとても覚えられない。現在某所で使っているMySQLはphpMyAdminのお世話になっている。MySQL以外でも使えないのだろうか?

*Access
聞いた話ではテーブル書いてキー指定してリレーションを指定したらSQLのソースを吐き出すそうだが本当だろうか?

以上、TwitterでSQLの話されたんでおまけ。さて、ソフトからハードをたたく話、始まり始まり。

*まず最初に
“のーびす”のコンピューター体験はプログラム電卓に始まる。なのでハードを作る話無しにいきなりソフトウエアに手を染めた。結果、ハードに遠くなってしまった。もっとも、ハードと言うかエレクトロニクスにあまり興味がもてなかったと言う理由もあるのだが。

*LKIT16
初めて触ったマイコン評価ボード。倍長加減算のサブルーチンを作っただけで終ってしまったのでハードの体験とは言いがたい。

*MZ80
初めて触ったパソコン。メモリ増設と倍クロック改造はやったのだが、基本的に怖くてハード改造は出来ず。I/Oボックスは高かったし、マイコンとしては使っていない。完全にパソコン。

*BASIC
MZ80に標準で搭載されていた、プログラム言語。これを使ってモニタプログラム(簡易デバッガ)を入力した。雑誌の言うとおりにやっただけだからたいした事はやってない。

*言語
アセンブラ、Forth、えーっと、他なんだっけ?MZはROMがほとんど無くてテープからブートするシステムだったから雑誌に載ってるプログラム言語はかなり入れた。言語マニアになる。

*Z80 PIO/SIO
MZをかって最初に買ったのが機械語とZ80ファミリLSIのマニュアル。ただしMZには搭載されていない事を買った後で知る。もっとも、I/Oのたたき方は座学だったがこれで勉強した。「ああ、ここに命令を書き込んで、ここからデータの読み書きをして。ほうほうほう、メモリと同じだなこりゃ。」てなぐあい。

*機械語
ブートROMに内蔵されてたシステムコールを呼ぶようなプログラムばかり。結果としてI/Oをたたくような事はしていなかった。何の為の機械語やら。

*PEEK、POKE
BASICの予約語。これでI/Oをたたいたのが最初だったはず。キーコードが読めたり画面に文字が表示されたり、そんな程度だけど。たぶん雑誌に載っていたゲームプログラムかなんかにコードが載っていたのでは。

*マイ・コンピューター3部作
安田寿明先生がブルーバックスに残された名著。これでハードの話はだいたいわかってしまったような気分になっていた。コンピュータがCPU、メモリ、I/Oからなる事、バス、SRAMへのダイレクトDMAはこれから学んだ。コンピュータの基本だと思う。

*マルチタスクOS
だいたいこんなところ。たいしたことのない経験だけど、これでだいたいの事はわかった、DOSまでは!!マルチタスクOSでは排他制御が必要と言う事がわかってますますシステムコールレベルのプログラムに終始する。

*MMU
ページフォルトで割り込みがかかって、下手な事をするとコア吐いてOSが落っこちるようになってきてますますシステム(ry

*ASIO
オーディオインターフェース。マルチタスクOSでドライバが直にポートをたたく不届きな規格。コア吐いたらどうするんだ!!

*VMS
DEC社VAXのOS。DEC社のセミナーでシステムプログラムを学ぶ。これが“のーびす”のマルチタスクOSの初体験?でもI/Oとは程遠かった。ぜーんぶシステムコール。メモリ共有もパイプも。

*unix
大学4年の頃には“のーびす”も知る有名人。「先生、ワークステーション買いましょ!!」「馬鹿者!!何に使う!!」

*CP/M
大学4年の時にはじめて触ったはじめてのOS。BIOS、BDOS、CCPの3階層は後のシステム理解に大きな影響を及ぼす事となる。後F80からポートをたたき、ラムディスクを使い、オーバーレイを学び、まー、勉強になりました。

*COREシステム
ICEメーカではない。ワイヤーフレーム3次元グラフィックライブラリ。某国立大学のメインフレームからソースを取ってきてこれをCP/Mの上で走らせたのがとりあえず自慢。でも肝心な部分はほとんどノータッチ。マイクロプロセッサの未来を感じさせた事件。

*68020
「主任、68020ってVAX並みの速さなんですね」「バカ、VAXとマイコンじゃ格が違うだろう」。会社を辞める遠因になる。

*CCP/M
とりあえず一番最初に触ったマルチタスク・リアルタイムOS。

*某パソコン
Cでプログラムを開発する事になって“のーびす”がグラフィック周りの調査を担当する。ところが調査プログラムが落ちる。何度見ても間違いが無い。結局主任の作ったライブラリにバグがあった事が判明。「動的変数なんか使うからこんな事になるんだ。これだからマイコン少年は!!」。会社を辞める遠因になる。

*もう一度unix
「unixってすごいよね」「あんなOSなんの役に立つ」。後に機器制御に使えないと言う意味と理解する。移植性の高さから推察して割り込みを使わないでポーリングでI/Oを管理してるのだと憶測していた。でも「make使いたい!!m4使いたい!!yacc使いたい!!lex使いたい!!」恋心は募るばかり。

*HP-UX
「HPがカーネルに手を入れてリアルタイム対応になっています」。客の前でえらそうにしゃべっていたが、後で考えると確証の無かった事に気がつく(でもあってると思います)。unixのいろはからカーネルコンフィグ、そのほかいろいろと思い出深いOS。勉強になりました。

*HP-UXシステムプログラミング
それにしてもカーネルいじくってそれでシステムプログラムがあんなにunixと互換があるなんて。

*Linux
個人でunixを使う事が出来るようになったかと感慨にふけった。ただし、仕事じゃないからあまり使い込まなかった。カーネルコンフィグしたことなし。人間強いられないと怠ける?年をとった?

あああ、メカトロから離れている。ネギトロ怖い。やっぱりメカトロからあまりに私は遠い。気を取り直して。

システム開発でハードウエア担当とソフトウエア担当に分けるためには残念ながらハードウエア担当がシステムコール相当の切り口を用意する事が必要だと思う。そうすればそれこそ機械室勤務のプログラマ、パソコンのプログラマでも機器制御のプログラムが書ける。

じゃあ、ハードウエア担当が純ハードウエア担当とシステムコール担当とに分けるには?それはちょっと無理。システムコールはOSが管理しなくちゃいけないだろう。ドライバはハードウエア担当が作るか仕様書を作るか。ハードウエア担当がどこかでソフトウエアを作らなくてはいけなくなってくる。一方システムコールを作るためにはどこかでOSを作らなくてはいけなくなってくる。カーネルじゃなくってOS。なかなかきついものがある。

あたまぱーん。今日はもうおしまい。

0 件のコメント: