アクマくんにお願い:1999年12月下旬

Last-modified: Thu, 06 Jan 2000 02:52:40 JST

[static,style:furuta,jconv:jcode,cache:on]
powered by tds-Tomsoft Diary System 1.01-beta0


[トップ(一覧)] [最新版] [<<前月] [今月] [翌月>>]

1999年12月20日(月)

SCSI driver

このあたり、私なりにまとめておきますと、

Julian SCSI や CAM は、SCSI のコマンド - データ転送 - status という、 一連の「コマンド(nexus) *1」をベースとしたインターフェースなのです。 しかし、これらのインターフェースは抽象度が高すぎて一部のコントローラ には好ましくありません。似たようなシーケンサーコードが各コントローラの デバイスドライバにばらまかれることになります。

もう少し詳しく言うと、 「コマンド - データ転送 - status」というのは SCSI-1 や SASI の頃の 抽象化であって、現在はこの間にメッセージシステムが入りこんで、 disconnect/reconnect によるバスの時分割利用やら、 エラー制御、コマンドキューイングといった複雑なシステムになっていますし、 これらをきちんとサポートしないと十分なシステム性能が発揮できませんから 良いドライバはこれらをきちんとサポートする必要があります。

さて、このような「メッセージシステム」の取り扱いには ある種の「判断」や「知恵」が必要になってきます。 最近のコントローラ(例えば、AHA29xx 系 "ahc" や NCR 53C8xx 系 "ncr" のチップ等) は、コントローラ内部にマイクロシーケンサーや マイクロプロセッサーを内蔵していて、そのプログラミングによって 「知恵付き」を実現していますが、 安価なコントローラや昔からのコントローラ (例えば、AHA1520 系 "aic" や NCR 53C9x 系 "ncv" のチップ等)は、 「コマンド」「メッセージイン」「メッセージアウト」「データ」「ステータス」 の各フェーズの遷移の度に割り込みを発生して 本体 CPU のプログラミングにこのような判断を委ねています。 前者のコントローラは最小限の割り込みしか発生させませんので、 効率は良いですが、マイクロコントローラのプログラミングが必要になってきます。 後者のコントローラは単純ですが、 一度の転送に何度も割り込みを発生させて、 それが転送効率の低下を招く場合もあります。

さて、 後者のコントローラの場合、 各フェーズ遷移による制御を各ドライバで管理してやる必要があります。 これは disconnect/reconnect やコマンドキューイング等をまじめにサポートしようと すればかなり複雑なコードになります *2が、 これは各コントローラでほとんど同じようなコードになるのです。 そこで、これらのコードの内コントローラ独立な部分をまとめて 抜き出したものが NetBSD/pc98 で開発された scsi_low であると言えるでしょう。

現在の scsi_low は Julian SCSI インターフェースですが、 これを「CAM 化」させれば、 ct, stg, ncv を同時に CAM 化させることになると期待できます。 (もちろん、scsi_low 以外にも変更は必要になるでしょうけど)

ところで、NetBSD/pc98 (or PAO) の "ncv" と NetBSD 本家の "esp" とは 「同じコントローラコア (NCR 53C9x 系)」に対する別のドライバです。 双方のレジスタを比較すれば、同じ系列の variant であることがわかります。 AMD 53C974 (Tekram DC390(無印) で使われているチップ) も 同じ系列の variant です。 昔このことをぼそっと 筒井くんに話したら、あっと言うまに "pcscp" を作ってくれました。 んで、さらにその話を enkai-owner の人に話したら、これを CAM 化してくれました。 しかし Tekram のコードの CAM 化の方がちと早かったのと、 junichi's esp にはコマンドキューイングが無いために accept されなかったらしい *3

私ゃこの CAM 化された esp を PAO3 に移植するべく作業を開始したのですが、 同時期に scsi_low CAM 化の話が出て、どうしようかちょっと迷ってます。 とりあえず、CAM 化された esp は (ncv + scsi_low と同じチップに対する CAM 化という意味で) 参考になるだろうと思われます。

...というような話を nyan さんにしたかった訳なんですが、何かお役に立てますでしょうかねぇ。 *4

ところで、CAM 化の作業の資料ですが、 Writing Device Drivers for the SCSI/CAM Architecture Interfacesのページが参考になるかもしれません。


*1:これを「nexus」と表現するのは間違いのような気がするのですが、 良い言葉がわかりませんでした。
*2:実は現在の NetBSD/pc98 がどれくらいこれらの機能をサポートしているかは ちゃんと把握できていません。 しかしたとえコマンドキューイング等がまだ実装されていないとしても 分離することは「発想として」重要です。
*3:どう見ても esp の方が見通しが良いのだけどねぇ。
*4:書き出したらこんなに長文になっちゃったよぅ。うう、時間がぁ。

ずごーん

お家の幸さんから会社にお電話。なんてめずらしい。うにゃ? 何と、どろぼうさん出現らしい。 仕事中だったけど、急いで帰宅。

家につくと、現場検証は終っていた。 自宅はアパートの二階なんだけども、 どろぼうさんはベランダに登ってガラス扉をガラス切りで空けてロックを外し、 侵入したらしい。

通帳とか有価証券とか、 貴重品は特に盗まれていない模様。 あとは高いものと言えばコンピュータまわりになるのだけども、 特に何も盗まれていない。 幸さんの下着も大丈夫らしい。 (警察に調べるように言われたらしい) 盗難された物はないようだ。

というところですな。 窓が壊されているが、大家さんに電話したら時間が早かったおかげで メンテナンスの人が来てくれて、 丁度引越して空いていた部屋の扉と取り換えてくれたので、 とりあえず物理的にはもう元に戻ったので良いのだけど...

同じどろぼうさんが別棟の部屋にも侵入したらしい。 どうやらそちらは現金を盗まれたらしい。 何つーか、物騒すぎ。 警察やら不動産屋やらのの話によると、この付近 どうやら最近増えているらしい。 精神的にはダメージ大きいっす。


1999年12月21日(火)

Re: こすぷれ

あう、すいません。リンク修正しときました。

買い物

芳林堂コミックプラザにて。 何だか口惜しいから伏せ字にしてみる。

鯨ではありませんってば。

メモ

ここ「とらいあんぐるハート ラブラブおもちゃ箱」ですか...


1999年12月24日(金)

SCSI driver

ええと、"sym" は Symbios (== NCR) 53C8xx 系のドライバで、旧 "ncr" では? "esp" は NCR 53C9x 系で、別物です。

nexusですが、I-T-L nexus は I と T と L の直積に対しては、 同時には高々一つの「コマンド」しか発行できないのです。 (ご存じだとは思いますけど) Tag queueing はこれだと困るので、 さらに Queue の数だけパラに実行することを許して、 I-T-L-Q nexus と言いますよね。 そういう意味で「コマンドフェーズ ... いろいろ ... ステータスフェーズ」の 一連の流れを nexus と表現できるんじゃないかとフト思ったのですが... 本当は何て言うのが正しいんでしょうね?

しっかし、本多さんたちは一体どうやって "nsp" を書いたんでしょうね? だって "nin" は Workbit の人の作ですし、 どこかにドライバを書く為の資料とか存在するんでしょうか? 実は別のチップで core が同じものが存在するのかなぁ?

"spc" は... もちろん、2.2.x 時代の PAO のドライバがありますけど、 CAM 化されたものは、私の知る限り存在しません。

"scsi_low" の CAM 化は... 時間があれば見てみようとは思います。が、 私の場合昔 "bs" の CAM 化を目指して 結局何もできなかった前科ありますゆぇ... 当時は newconfig の作業を 優先させねばならなかったという理由もありますけど、期待はしないで下さい、 ということで。

妹暖房

ダメな想像。\

Buffer Overflow Vulnerabilities in SSH Daemon and RSAREF2

あの、 これなんすけど、

VULNERABILITY ASSESSMENT: The risk is HIGH. Buffer overflow attacks are common and easy to execute.

とか言われてビビりました。

PLATFORM: Systems running some versions of sshd that are vulnerable are: FreeBSD 3.3R Configuration of NetBSD SSH1 thru SSH1.2.27

とか言ってるし。

FreeBSD の項目、 "Some or all of the following ports may be affected should be rebuilt:" ふむふむ

p5-Penguin, p5-Penguin-Easy, jp-pgp, ja-w3m-ssl, ko-pgp, pgpsendmail, pine4-ssl, premail, ParMetis, SSLtelnet, mpich, pipsecd, tund, nntpcache, p5-Gateway, p5-News-Article, ru-pgp, bjorb, keynote, OpenSSH, openssl, p5-PGP, p5-PGP-Sign, pgp, slush, ssh, sslproxy, stunnel, apache+mod_ssl, apache+ssl, lynx-ssl, w3m-ssl, zope

どひー。マジっすか?

…うにゅ? これって "configure --with-rsaref" のやつだけだよね。 ports の Makefile を見にいく...

結論: FreeBSD の場合、"USA_RESIDENT" を "YES" に設定して make していなければ、 大丈夫。他も copy free なやつは rsaref をリンクしていない はずなので、大丈夫。とりあえず、ひと安心。はー、びっくりした。


1999年12月26日()

地獄

いや、 ここではない。 悪業を重ねたプログラマが落ちると言うインストール地獄。 以前は順調に動いてたとあるアプリケーションがなぜか動かなくなる。 動きが固まる。あるいは、青の不幸。 そいつでないと扱えない重要なデータ。

仕方がない。そいつをインストールしなおす。できた。 よし、使える... しかし、何か変だ。青転。青、青、青。 だめだ、システム全体がおかしい。なぜだ?

仕方がない。OS をインストールしなおす。できた... だめだ、OS のブートで失敗するようになった。

仕方がない。バックアップを取ってディスクのフォーマットからやりなおし。 OS をインストールしなおす。できた... だめだ、まだ OS のブートで失敗する。なぜだ? ブートログを見る。ん? このカードがいけないのか?

仕方がない。PC の蓋を開け、カードを外す。 OS をインストールしなおす。できた... だめだ、まだ OS のブートで失敗する。なぜだ? ブートログを見る。別のカードでも失敗している。

仕方がない。PC の蓋を開け、ブートに必要なもの以外は全部外す。 OS をインストールしなおす。あれ? BIOS まで起動しなくなった。 なぜだ?

仕方がない。PC の蓋を開け、CPU とメモリーとビデオカード以外を 徹底的に外す。スィッチオン。だめだ。何をやってもだめだ。

仕方がない。別のマザーボードを買いなおす。 やった、BIOS が起動した。 続いて OS をインストールしなおす。 だめだ、インストールできない。調べる。 このマザーボードには新版の OS じゃないとだめだとある。

仕方がない。新版の OS へのアップグレードパッケージを買う。 よし、インストールできるぞ。よしよし... だめだ、まだインストール中に固まる。なぜだ? なぜだ? なぜだ? 調べる。また調べる。この SCSI カードは新版では動作しないとある。

仕方がない。SCSI カードの代替を買ってくる。 よし、OS のインストールに成功。ちゃんとブートする。 続いてアプリケーションのインストール。 だめだ、アプリケーションのインストールで失敗する。 調べる。それでも調べる。アプリケーションのバージョンアップが必要らしい。

仕方がない。アプリケーションのバージョンアップパッケージを買う。 インストールに成功。よし、動いた。使えるぞ。 バックアップしておいたデータを元に戻す。 そして、青い画面とともに、最初に戻る。

繰り返す。何度もなんども繰り返す。 果てしなく繰り返す… 無限インストール地獄。

_

この話はフィクションですけど、どうもフィクションとも言えないところが。 私は2回り目のマザーボードが起動しなくなったところで、 キレそうになりました。(;_;) だって、買って半月にもならないマザーボードが何をやっても BIOS すら 起動しなくなるんですよ。前にも同じ症状で別のマザーボードが死んでるし。

で、指圧したり、CPU 取っ替えたり、ビデオカード取っ替えたり、 何やってもダメ状態。あーうー。ダメ元で SDRAM じゃなくて SIMM を差して みたら、突然 BIOS の起動に成功。SDRAM もなぜか使える。

どうも、SDRAM の状態を保存した EEPROM が壊れていて、 正しく SDRAM を認識できない状態になっていた様子。 で、それを戻して SDRAM を初期化して RAM としてアクセス可能にするために RAM が必要な状態になっていたのではいかと推測していますが、なんだかなあ。

とりあえず、二度目のループ(いや、ここまで徹底してはいないけどね) の終りのところで止っていてくれているようなので一安心ですけど、 動いているのは本当に砂上の楼閣というか。

とにかく、私の週末を返してくれ。(;_;)


1999年12月27日(月)

じんましん

うぐぅ。突然発症。出社前にかかりつけの医者に行く。 しかも、入院中のやつと違って、今度のは凄く痒い。 原因物質は何なんでしょうねぇ...

悪の秘密基地

YF さんがしてくれた作業の上にそのままのっかり。 うむ、作業完了。 しばらく待ってクレームが付かなければ公開しますかね。

ふむ。守護神という意味もあるのねぇ。あと、財政後援者かぁ。 へぇ、通常は男性なのかぁ。 日本人だから L と R を間違えて腹を立てたりとか。(違う)


1999年12月31日(金)

今年のこと

うーみゅ。うだうだしている間にもう今年もあと1時間を切ってしまった。

いろいろな意味で大変な一年でした。 モントレーまで行って英語で発表したり、 生れて初めて入院したり、 日記も書き始めました。 結構経験値が増えた一年であります。

では、みなさん、どうか良い年を。


[トップ(一覧)] [最新版] [<<前月] [今月] [翌月>>]

このページは、

Copyright(C) 1999,2000 Atsushi Furuta <furuta@bsdclub.org> All rights reserved.