51.HDDのトラブル解決法    目 次

HDDのトラブル解消の為のTips

1)BIOSで認識されない
2)Fdiskで認識されない
3)OSがsetupできない
4)OSで認識されない
5)ジャンパーの設定の誤り
6)チップセットのバグ;

HDDのトラブル原因は非常に多いのですが、詰まる所、以下のようなインターフェイスの問題のようです。

BIOSとのインターフェイス

原因は以下;
 ・BIOSの対応している容量より大容量のHDDを付けた
   この場合の解決法は、下記3つのうちのどれか。
     BIOS書き換え
     DiskManager導入
     PCIバスIDEインタフェースカードを用いる


 ・BIOSでのアクセス方式設定の誤り

解決法

BIOSの書き換え
これは、取り付けようとしているHDDの容量をサポートしているかどうかチェックしてから行います。BIOSアップデートには種々の理由があり、必ずしもHDDの為にアップデートされているわけではないからです。BIOSの書き換えは極めて危険な仕事で、OSのSETUPと違い、失敗したら再SETUPというような事はできません。そのPC(正確にはマザーボード)は廃棄です。何しろ電源ONで最初に唯の箱であるPCを動かすソフトなのです。それが壊れたら動かす人は他に居ないわけです。OSはBIOSに起動してもらっているから何度でもSETUPできるのです。従って、意味の無いBIOS書き換えはしないほうが賢明です。なお、BIOS書き換えの方法は他のHPを探してください(その内、ここにも書くかも)。

 「ROM焼き大丈夫」のような機器はありますが、ROMの形状、容量など自分にあった
 ものを探すのは面倒で、そんな事のできる人はこのHPを読む必要の無い人です。

DISK MANAGERを使う
HDD各メーカはBIOSをバイパスしてBIOSに代わって大容量HDDにアクセスするソフトをHDDに添付したり、HPからダウンロードできるようにしたりして配布しています。IBM、QuantumはDiskMANAGER(DOS版)、DiskGo!(Windows版)、MaxtorはMaxBlast、seagateはDiscwizのような名前をしています。Windows版はGUIですから使い方に制限が有り、汎用のものはDOS版です。これらを導入すれば、古い2GBのHDDにしか対応していないようなBIOSでも大容量HDDが使えるようになります。BIOS書き換えと異なりPCを廃棄する危険は一切ありません。間違えたら何度でも再試行できます。但し、旧HDDもそのまま使おうとした場合、その中のデータは壊れる場合があるので、まず、データを対退避して行うのが良いでしょう。詳しくは、ここここの両方を読んで手続きを頭に入れ、何が行われるのか理解しておいたほうがトラブルに会わずに済みます。

PCIバス用IDEインタフェースカード(UltraTrack/66?)を使う
そのままです。秋葉原や日本橋や大須にいけばあるでしょう。4000円もしなくなっています(2000年)。

BIOSでのアクセス法設定の誤り
CHSの設定はauto、modeはLBAにします。BIOSが正常ならこれで正常動作します。(EIDEならそんなものは無いと思いますが)そもそもLBAモードが無い場合、DiskManagerを使う以外、手はないでしょう。

尚、これでだめな場合--こういうことも良くあります--要するにBIOSがなんらかの容量以外の理由で対応できないのでデタラメをやっている可能性です。なぜか、再起動を繰り返すうちにできる場合もあります。

HDDはE-IDE以後、504MBの壁を越える為に姑息な解決をくり返したため、アクセス法が繁雑になり、これが原因となってHDDの認識が出来なくなったり、認識はできてもアクセスできなくなったりします。504MBを越えるHDDを使う場合、と言う事は今では全ての場合、BIOSでのモード設定はAUTOかLBAにします。C/H/S、NORMAL、LARGRは使わない方が良いでしょう。AUTOにしておけば問題ないのですが、BIOS自体の認識アルゴリズムも結構脆弱で、すぐに気が狂ったようになり、AUTOでBIOSに任せたのは良いがデタラメをやっているという場合もあります。こんな時は、LBAにします。

C/H/Sは、Cylinder、Head、SectorでHDDは最終的にこの物理値(HDDはこのような物理的構造をしている)でアドレッシングしますが、小容量の時代の後遺症で未だにBIOS内部では大きくなったCHS値をまともに扱えないらしく、LogicalBlockAddressingという論理的なアドレッシングを行います。これはシリンダもヘッドも忘れて、ただ、セクタだけが連番で並んでいるような仮想的=論理的アドレス方式です。

少し考えれば分かるのですが、2000年現在、20GB/プラッタ(円盤)時代の為、20GBのHDDにはプラッタが1枚しか入っていません。ということは、Headは円盤の表面、裏面に1個づつ、計2個です。255個のHeadなど、考えなくてもまともな話しではないとわかります。3.5インチHDDのあの厚みの中に128枚のプラッタを入れるのは、生半な技術ではありませんから(入ってないのです)。更に、片面10GBという高密度の円盤なのに、1トラック当たりのセクタが63という超低密度なのも変な話しです。1トラックあたり、たった、31.5KBしかないことになります。これでは、10GBにする為にはシリンダ数が、約300000なければなりません。同じ材料で円周方向は極端な低密度、半径方向は極端な高密度という事は異常でしょう。わざわざそんな変な材料を開発する訳がありません。ということは、HDDのCHSとしてメーカが公表している値はあれは本当の物理的値ではなく、すでに仮想的な値なのです。

HDDのコントローラは自分の本当のCHSではなく、一度変換したこの論理CHSをBIOSに返します。HDD内部にはこのCHSを真性CHSに変換する仕掛けがあるので別に困るわけではないのです。問題はOSとBIOSの間ですが、Windows95以降はBIOSを使わず、LBAでHDDにアクセスします。HDDコントローラはLBAを真性のCHSに変換して最終的にメディアにアクセスするのでしょう。

この論理CHSを用いますと、10bit=1024を越える真性のCHSをもつHDDでも仮想的に1024にしてしまい、その減った分のbitをHeadに回して、全体としての容量は変わらなくします。これでBIOSの最大値である8.4GBまではアクセスできます。Largeと呼ばれるモードです。BIOSの制約で1024のシリンダまでしかサポートしていない場合、これは非常に有効なわけです。OSの制約で、1024を超えたシリンダにあるPBRにアクセスできない場合も同様です。


Master/Slaveのジャンパ設定の誤り

1台しかないHDDをslaveにするなど、Masterが無い状態に設定しますと、そのチャネルにはコントローラが無いという状態になり、BIOSはHDDが存在しないと判定します。Slaveのコントローラは無視されるためです。
中には、Slaveを付けない場合は、Masterではなく、Singleという設定にしないと、認識されないHDDもありました。


IDEコントローラのバグ(仕様?)

手持ちPCではFMV4100がそうでした。このPC、Primaryだけが使われ、MasterにHDDが、SlaveにCD-ROMが付いていました。これは通常忌避される設定で、HDDはHDDだけ、CD-ROMはCD-ROMだけを一つのチャネルに用います。論理的には同じIDE機器でも、実装上はトラブルの可能性があるからです。HDDを増設する為にSecondaryにCD-ROMを移した所、認識されません。どのような組み合せにしてもダメでした。その後、WebでFMVのIDEコントローラはCMDのチップを使っていて、これにはバグがありsecondaryが使えないという事をしりましたが、こんな事もあるのです。メーカ製のPCは拡張されることを前提にした物と、していない物があり、後者の場合、それで完成品ですからこの不具合は欠陥では無いという解釈なのでしょう。

以下は引用です;典拠不明
16ビットと32ビット用ドライバーの混在が原因ということですがその当時のFMVと言うか
CMDの「仕様」(^_-) らしいですね。
CMDのPCI0646がホントに乗っているかどうか確かめてから(064Xの場合もありえる)
次のうちのどれかで解決するかも知れません。はずれているかも。
1.デバイスマネージャーでIDEコントローラーが使用不可になっていたら
regeditから
 HKEY_LOCAL_MACHINE¥SYSTEM\CURRENTCONTROLSET \SERVICES\VXD\IOS
と開き、NoIDEの値を見つける。 それがあったら削除。
2.CMDのPCI-IDE Controller PCI-646チップのドライバーを当てる。
CMDのサイトにはもうドライバーはないとか?このNGの下の方で言ってるけど
3.OSをwindows98にする。
OSを変える気がなければこちらからドライバーを抽出するとか

Drivers;
http://www.ecs.com.tw/ecs/support/driver/drivero.html#cmd
http://www.drivershq.com/newlist/ide/indexidec.html


余談ですが、かっての(最近はしりません)Aptivaや、黒のBrezzaは、イーサネットカード(NIC)は使えないとパンフレットに書いて有りました。PC/AT互換ならば、わざわざNICを使えないように設計するほうが面倒なことで、どうしてNICだけが使えないのか疑問でした。実際、付けてみると問題なく動きます。ただし、副作用があり、AptivaではAPM的にSLEEPする機能があるのですが、SLEEPしません。SLEEPさせても、0.5秒で起きてしまいます。Brezzaも同じ機能があるのですが、こちらはSLEEPします。しかし、NICは使えないと言っている以上、どこかに完成品からのズレが出るのかもしれません。

さて以上が対処法です。以下になぜこんな事が起きるのか多少の事情を記します。

BIOSは1984年のPC/ATとIDEインターフェイスの組み合せでは、HDDのアドレッシングに20bitしか使えませんでした。HDDはセクタ単位でアクセスするので、2の20乗=1M個のセクタまでしかアドレスが付きません。つまりアクセスできません。1セクタはPC/ATでは、512バイトですから、理論上、512MBのHDDしかBIOSは認識できないわけです。20bitは、シリンダ、ヘッド、セクタに分解、割り当てられます。セクタには6bit=64が割り当てられていますが、実際にはトラック毎に管理用に1セクタ取られますので、63セクタしか使えません。それで512MBではなく、504MBといわれ、これがBIOS/IDEの壁といわれました。その後、Enhanced-IDE(E-IDE)規格が出て、この壁が破られるのですが、BIOSのHDDアドレッシングビットをケチケチと増やした結果、BIOS特有の壁があちこちにできています。2GB、4GB、8GB、33GBなどです。

この壁は、たまたまOSのパーテションサイズの壁と一致するものもあるのですが、OSの壁では、HDDが認識されないというような重い症状は出ず、大きなHDDの一部しか使えないという軽い症状しか現れません。OS以前、OSをsetupする以前にPCの電源スイッチを入れたところで、BIOSがエラーを出した場合、それはBIOSの問題なのです。このエラーの出し方は、BIOSにより異なります。エラーメッセージを出すのではなく、ただ、HDDが表示されない、などです。

PC-750/6883では、最新の96年版BIOS(ここでアップデートサポートは終了しています)に書き換えても、4GBまでしか認識しませんでした。AbitBH6 Rev.1.0ではオリジナルは33GB(あるいは、それ以下?)の壁がありましたが、99/11以降のBIOSに書き換えると、これを突破でき、60GBを認識しました。恐らく、(BIOSではなく)E-IDEの側の限界である136GBまで認識できるでしょう。E-IDEの限界は、136GBですが、BIOSが一気にこれに対応せず、チマチマとUPして対応した結果が、上の壁なのです。

BIOSで認識されない原因は、BIOSが対応していない新しいインターフェイスのHDDであるということなのです。IDE規格とは言っても、この規格による容量の上限は当時としては、途方も無く大きな値--例えば現在100TBのHDDを考えるような--であったため、BIOSメーカが対応しなかったのでしょう。







52.お正月PC奮記;モデムの導入    目 次

今回は特にこれという直接的チップではなく、PCとはこんなものという苦労話しです。

モデムを作業用PCに導入。まあ、こんなものは何でもない事ではあるけれど、PCのOS回りではモデム程遅れた技術、最低の技術--モデムそのものではなくそれを扱うOS回り--は無いので、トラブッた場合、いつまで掛かるか分からない。今回はNT4.0であった。外部モデムだから内蔵程は嫌な気分ではなかったのだが。。。

モデムウィザードを走らせる。ポートを選べという所で、ポートが何も表示されていない。何も表示されていない場合のこのウィザードの画面というのは非常に間抜けた物で、一瞬何のことか分からなかった。何もポートが表示されていないのに選べといわれると、どこかにあるのに見つからないのかと思うのが普通の反応である。とはいえ、キョロキョロと探す程複雑な画面でも無いので訳が分からなくなってしまうのである。せめて「ポートが設定されていません」程度の表示をして欲しいものだ。ウィザードって、魔男である、魔法使いの魔女をもじったのだろうが、NTのウィザードは相当な間抜けである。

で、今度は、シリアルポートのウィザードを走らせる。確かにポートは設定されていない。COM1を設定するが、当然のようにI/Oポートアドレス、IRQを設定しなければならない。ところが、デフォールトが変な値になっている。COM1は普通、前者が3F8,後者が4なのだが、これが、200と、15である。前者はまあ、空いているかもしれないが、NICあたりが使っているかもしれない。後者は完全にIDEと衝突する。しかもこれはIDEへの予約値である。2000では少しはまともになったろうか。ともかく、これをまともな値に設定して再起動、もう既に3、4回はしたかな。状況は変わらない。相変わらずモデムウィザードから見たポートは空白である。シリアルウィザードから見るとちゃんとあるのだが。

    中略(再起動5回)

はたと、そういえば、IRQ不足気味なので、BIOSでシリアルを殺してあった事を思い出す。これを元に戻して再起動。やっとポートがモデムウィザードに現れる。9600bpsの、フロー制御は無し、というこれまた何を考えたらこういう値に出来るのか分からない値がデフォールト設定であるが。。。とにかくモデムは入った。

次にダイアルアップサーバでダイアルアップアダプタを作る。これは初めての人には訳がわからないだろう。分かっていても、「その他」辺りのボタンに、重要な設定場所があると、これはなかなか見つけ出せない。常識では、「その他」とは、「重要でないもの」の代名詞と解釈するものである。よほど常識の無い魔男である。

モデムの設定というものは、単にドライバを組み込んで終りではない。ブラウザを使う、メールを使うという最終目的の為の設定がある。その為には、モデム自身の設定--PCとどのように接続するか; PCとの間の最高速度はいくつにするか、フロー制御はするか、パリティは使うか、ストップビットは何にするかなどという--一般市民にとっては得体の知れない専門用語の羅列--設定が必要になる。

更にテレフォニといわれる電話関係の設定--自分の居場所の市外電話番号、ISPの電話番号、回線の種類(トーンかパルスか)など多少は馴染みのある設定--最後に、電話線をインターネットと化す為のネットワーク設定--TCP/IPを始めとする不可解な専門用語での--が必要になる。

モデムという装置は外付けの物を使っている人はすぐにわかるが、PCの一部というより、PCと電話局の間に位置する独立の装置とみなした方が分かり易い。つまり、電話局と通信しながら、PCとも通信しているのである。56kbpsなどのモデムの速度と一般に言われている物は、電話局と通信する速度である。では、PCと通信する速度とはなにか、これが上で述べたコントロールパネル内のモデムアイコンから設定する速度で、NTでは96年発売当時から絶対に使われることのない9600bpsに設定されている値である。ここは、112500bpsにしなければせっかくの56kモデムもゆっくりとしか動かない。9600bps に設定したら、4800bpsくらいでしか動かないだろう。宝の持ち腐れである。モデムハードには、モデム−モデム間のデータ圧縮機能があるため、56kモデムでも、モデムとPC間のデータ転送は、倍くらいの速度になるのである。相手のモデムから圧縮されたデータが56kbpsで届き、これをモデム内で解凍するため、56x2倍程度の速度でPCに送らなければ、間に合わないのである。モデムとPCをつなぐケーブルは太く短いので高速にデータを流すことができる。28.8kbpsのモデムの場合も同様に112.5kbpsに設定する。PCがモデムに高速でデータを送り過ぎて、 モデムが電話局側のモデムに圧縮して送っていても、尚、間に合わず、データをもらしそうになったら、モデムはハードウェアフロー制御機能を使って、PCに待ったをかける事ができる。これがflow制御である。xon/xoffのソフトウェアフロー制御ではなく、RTS/CTSのハードウェア制御にしておく。

いよいよ、設定が終わって、マイコンピュータからダイアルアップネットワークをクリックしてダイアルアップアダプタを作る。最初に出てくるダイアルアップサーバというデフォールトの名称がいきなり何の事か分からない。大体、ダイアルアップアダプタを作るこのウィザードの画面は、日本語ではない。日本語もどきではあるが、明らかに日本人が理解して書いた日本語ではない。書いた本人にも分かっていないのだろう。不可解な日本語もどきが並んでいて、意味不明である。これで翻訳料がもらえるのなら、お金が貯まって仕方ないだろうなあ。

ダイアルする電話帳エントリ」って、これが日本語とは、最近は変わったものだと思う。日本人なら、これは「電話をかける相手の名前」という。「電話をかける先」でもよい。「電話番号のプレビュー」というのも目一杯変だ。日本語では「相手方の電話番号」だろう。「発信元」−−「新しい場所」とは何であろうか??これが分かる人ってどんな人だろう。「貴方の住所」とでもしておけば、横浜とか、札幌とか分かるのだが。モバイルの可能性があるから、それではいけない。というのなら、「あなたの現在地」でいい。「新しい場所」では?!???????である。

さて、ダイアルする電話帳エントリだが、こちらのモデムから発信する信号の受け手はダイアルアップサーバには違いないが、それよりもISP名と書いておけば、ダイアルアップアダプタを作ろうとする人はすでにISPに接触しているはずなので、分からない人はいないのに、と思う。ここは、asahi-netと変える。ここで設定する事はこの位で、すでにモデムアイコンで設定してある。

IEをクリックすると、またも役に立たないウィザードが起動する。この種の、人を導くものの設計は導くだけの能力のある人が行わないと、全然使い物にならない。何のことか分からない3つの選択肢が出て来る。他の雑誌などで解説を読んで、一番下の項を選べば良いことは分かっているので、それを選ぶ。すると、なぜか、既に作って有るダイアルアップアダプタを使わずにもう一度作らせるウィザードになる。しかもこれが極めて間抜けなのだ。接続クリックを押すと接続できない。モデムの音を大きくするとピポパとやっている。勝手にトーンに設定しているのである。

どこをどう探してもパルスに設定し直す画面は無い。そもそも、モデムの設定はパルスになっているのに、どうもこのIEの間抜けなウィザードはそれを見ないで、自分で勝手に設定しているらしい。ということは、このウィザードはOSでの設定を無視して自分で勝手に何かをしていることになる。もっと言えば、このウィザードの設計者は、OSというものを知らないらしい。

しかたないので、このアダプタを消す。そうすると、作っておいたアダプタでAsahi-netにダイアルが始まった。ダイアルが終わった所でプチッといって切断され、画面にはモデムがインストールされていないか。。。というメッセージが現れる。モデムは今、ブチブチブチ。。。と言って、電話していたではないか。どういう診断ソフトを使うと、こういう間抜けたヤブ医者的診断ができるのか実に不思議である。3日前に盲腸の手術を終えて退院した患者に、先生おなかが痛いのですがといわれて、それは盲腸ですね、手術で摘出しましょうと言っているようなものである。

しばし、考え込む。もちろんこんなメッセージは意味がないので無視する。大体、OSとかコンパイラーのメッセージに意味があったことは、有史以来かって、無い(少し過激)。プログラマはとにもかくにも遅れに遅れているスケジュール--5分で済むと思ったメモリ増設が1週間かかってしまったなんて良く有りますね。これと同じ原理でコーディングはどんなにユックリ目にスケジュールを組んでおいても、常にその倍かかるというマーフィーの法則が真理である世界なのです--を何とかしようと、目一杯端折ってコーディングしているので、エラーメッセージなどまともに書いていられないのが現実であろう。そんな暇があったら、1行でも多く動く部分のコードを書きたい。出来たら、エラーは診断などしないで、全部「エラー」だけで済ませたいくらいのものであろう。

というわけで、OSを始めとするシステムのエラーメッセージは信用しないほうが良い。典型的なのが、「一般保護エラー」。これは、無意味メッセージである。大体OSにはアプリが起こした不正命令--たとえば、命令でないコード。不正命令というよりも命令として定義されていないコードといった方が分かり易い。勿論、プログラマはそんな命令は書くことができない。アセンブラでもそうだが、高級言語ならなおさらである(勿論、機械語なら何でもありなので書けるが)。が、たとえば、コピー命令が、なぜか、データエリアではなく、命令エリアへデータをコピーしてしまったりすると、そのデータは偶然何かの命令と同じコードであったりして、プログラマが書いた覚えの無い 命令を実行する。それがOSのエリアにアクセスして何かを書き込もうとしたらOSに捕まり一般保護エラーになるが、そんな原因はOSにはわかる訳がなく、一般保護エラーとでもいうより他に手はない。

その不正命令をトラップしたところで、そのトラップした番地が分かるだけで、なぜ不正命令が起こったかなどOSにはわかりようがないのである。一般保護エラーのメッセージとともにコアダンプが出て来るが、こんなものは、そこを書いたプログラマ本人が見てさえ、意味がない。ほとんど神頼み的にひょっとしたら意味がある場合もあるかもしれないから、念の為出しているだけである。天満宮の受験お札程度の意味と思えば間違いない

さて、電話したあとでプチッと切れる。詰まり繋がらない。これはモデム設定が怪しい。ネットワーク設定が間違った場合は、電話はつながり、相手とギャーギャービーンとネゴを始めるまでは行く。そういえば、メーラで、smtpサーバの名前設定を間違えたら、NTは、Winsockが見つからないとかなんとか間抜けた診断をしていたが。。。

しかし、モデム設定はどうみても間違いはない。それでもつながらないのなら、これは物理的に電線がつながっていない可能性が高い。で、モデムからでている電線を手繰っていくと、案の定というか、つながっていない。こんな時、Win9xはもっとまともなメッセージを出す。電話回線のトーン(発信音)がありません、というような。これならすぐ電線がつながっていないと分かるのだが。動いているモデムを捕まえて、モデムがインストールされていないは、ないものだと思う。






53.一般保護エラーとコアダンプとWindows保護エラー    目 次


一般保護エラーとコアダンプ

Windows保護エラー

こちらはハード的エラーである。例えば、CPUをオーバクロックした場合、14.318MHzの原発をのっとって、33MHzのPCIに40MHz流してPCIバスが悲鳴を上げた場合などは分かり易い。MPUとM/Bの相性が悪くこうなることもあるし、そこへOSが一枚かんでいる場合もある。そんな場合は、その原因と対策が、大抵、M/B、MPU、OSのホームページにあがっている。






54.BIOSの書き換え方と注意事項    目 次

BIOSとは何か

BIOSの具体的書き換え方はBIOSによって非常に違う。基本は同じなのであるが、丁度、連立方程式の解法に代入法と消去法があるように、やりかたが全然違って見える。原理が分かっていれば同じに見えるが、分かっていないと、これがそうは見えないので、BIOSによって異なる全方法を列挙することはできない(そんなにやりたくもないし)。そこでここでは原理や注意を書き、具体的な方法は他のホームページをみてもらうことにする。

コンピュータは唯の箱であって、TVや、エアコンのようにスイッチをいれたらハード的に起動するという作りにはなっていないと思われている。コンピュータは記憶装置(今ならDRAM)の中にある命令を取りだし、それを実行するという作りである。TVなら電源をいれれば、アンテナに繋がっているチューナから電流が流れ、それを検波し、増幅し、ブラウン管に流すという「決まった動き」をするが、同じように、コンピュータは、電源が入ると記憶装置から1ワード読み出し、それをCPUに送り、CPUはその内容にあわせて、動く、という事をする。コンピュータだって、家電と同じようにソフトが無くてもそれなりの「決まった動き」をするのである。

問題はここからである。TVはその決まった動きだけで役にたつ。何をする機械かが最初から決まっているからである。ところが、コンピュータは上のような動きでは、「人間」にとって、何もしたことにならない。つまり、もう一段、皮を被っていて、1ワード読み出された命令以下のソフトが最終的に人間が求める事をおこなうのである。MP3を演奏したり、年賀状を書いたりと、1つの機械が丸で異なることができるのは、この2段構えの実行機構のおかげである。

さて、電源を入れられたコンピュータは決められたことをして、真面目に動いたが、記憶装置が空であった場合、人間にとっては真面目に動いたとはみえない。何も無い命令を実行している、というか、無いので止まっているからである。そう言えば、コンピュータの機械語にはNOP=No Operation=何もしない、という命令がある。なぜ、こんな命令があるかは、後程書くことにするして、コンピュータに、それ以上の何事かをさせるためには、コンピュータのハードが決め打ちで最初の1ワードを読み出すアドレスに、電源が入れられる前に(正確にはハードがこの1ワードにアクセスする前に)何か命令を書いておかなければならない。これはなかなかジレンマである。コンピュータが動く前に、コンピュータのメモリーに何かを書き込まなければならないからで、鶏が先か、卵が先かというような問題になる。

昔のコンピュータは電源をいれてから、前面パネルにずらりと並んだスイッチ(SFで出て来ますね)で、8進数か、16進数の機械語で命令を直接、記憶装置に書き込んで、それからRUNのスイッチを押してCPUを起動することができた。4801,16A0,C802,A000...というようにである。大型計算機ではこれを自動で行っていた。

PCも実は自動で行っている。電源をいれると、まず、ROMといわれる記憶装置から最初の命令群--Initial Program Loader;IPL--が主記憶装置、いわゆるDRAMに送り込まれる。これは勿論、CPUが行うわけには行かず、もっと上位のというか、下位のというか、上記の人間のような存在のハードが行っているのである。CPUが気付く前に、DRAMにそっと命令を書き込み、それからCPUを起こす=CPUをRUNさせるのである。すると、目覚めたCPUは、何も考えずに結線で決められた(実際にはこれもプログラマブルだろう)アドレスから1ワード読み込み、実行が始まる。このROMに入っている最初のプログラムがBIOS(の一部)である。

もし、BIOSが壊れたらPCはどうなるか?当然最初の1ワードからして、命令ではないでたらめな数字がはいっている可能性があり、起動しない。では、起動する前に、何とか主記憶に命令を書き込めないか?上に書いたように原理的には、人間がコンソールから書き込んでやるような事はできるのであるが、PC/ATはその方法を提供していないので、これはできない。つまりBIOSが壊れたら、PCは2度と起動させられないのである。


BIOSの書き換えの準備

こんなことがあるので、BIOSを書き換えるには非常に神経質になる。幾つかの国内大手メーカは、多分、BIOS updateを提供していない。そもそも書き換えなどという危険な事はユーザにさせない、ということだろう。

まず、PCをBIOSと、それを書き込むソフトを入れたDOSの起動フロッピーから起動する。BIOSを書き込むソフトをDOSのコマンドで起動する。この時、理屈の上では、書き込みに失敗しても、PCを止めない限り何度でも再書き込みできるが、実際には書き込めなかった原因が特定できない限り再び失敗するだろう。それが何かの拡張カード、例えばサウンドカードだったらこれを抜かないといけないが、電源をいれたまま抜くということは、カードもマザーボードも壊れる可能性を覚悟しなければならなし、感電も覚悟しなければならない。こんなことはなかなか出来るものではない。とはいえ、ここでPCをとめたら、2度と起動しなくなる。

このような書き込み失敗の原因をあらかじめ排除するためにBIOS書き換えは、全ての拡張カードを外して行え、とダウンロードしたBIOSのreadme.txtには書いて有る。書き込み最中に、なぜか理不尽な理由により、NICがパルスを発し、デジタル論理的には有り得ないアナログ的理由によりDRAMが誤作動し、書き換えソフトが停止してしまうかも知れないからである。まあ、そうはいっても、VGAは付けてないと、モニタがみられないが。

同様な理由で、拡張したDRAMは外し、オーバークロックしてあるMPUは元にもどしておく。もちろんそれで起動して動く事は確認しておく。論理的には、いままで動いていたPCがBIOS書き換えの時に限って動かなくなるなんてありえないはずであるが、なにしろ、デジタル計算機といえども、基底はアナログの装置なので、何がおきるかは神のみぞ知るという世界なのである。例えば、人間には計り知れない理由により10万光年の彼方で起きた超新星の爆発で生じたニュートリノの大群が偶然BIOS書き換え中に地球に到達し、DRAMのキャパシタに衝突して、その放電を速めてしまうかもしれない。その結果誤動作するかもしれない。

こんなことは、2の256乗分の1以下の確率でしかおきないだろう。しかし、BIOS書き換え中に冷蔵庫のスイッチが入り、そのサージが電源を襲い、電源についている大きなキャパシタでもこれを吸収しきれず、素抜けてMPUを襲い、オーバクロックしてマージン無しで動いているMPUを誤動作させないとは言い切れないし、瞬停は結構おきているし、雷だって恐いし、ふと立ちあがった拍子にコーヒカップをヒックリ返してキーボードにかけ、PCを誤動作させるかもしれないのである。2才の子が2叉フォークをコンセントに差し込んで停電させたご近所もあることだし、おまじないと思って、家人には、冷蔵庫も、エアコンも、掃除機もこたつも我慢してもらって、じっと動かずにいてもらう方が、気持ちの上では安心である。あくまで気持ちの上ではであるが。

BIOSは、ハードにこれほど気をつかったのだから、ソフト的にも気をつかい、素なDOSから起動する。間違っても、smartdrv.exeなど入れてはならないし、config.sysやautoexec.batにも注意する。最低限必要なドライバ以外入れないようにする。最近は、恐るべき事にWindowsから書き換える物もあるようだが、そんな神業みたいなことはとてもする気にはなれない。WindwosからしかBIOS書き換えができないようなスキルなら、それはBIOS書き換えなどしてはいけないということなのである。まあ、マザーボードの一枚も壊すのもスキル向上の為の経験ではあるが。。。

Win9xなどのコマンドラインから、 format a: /s で作った起動FDが良いかもしれない。これに、BIOSと、このBIOSをROMに書き込むソフトを入れておく。AwardBIOSなら、書き込みソフトはawdflash.exeである。IBM-PCの場合、こんな面倒はない。BIOSupdateとしてダウンロードしたソフトが、勝手にそのようなFDを作ってくれるので、フォーマットした新品FDをドライブに入れ、そのupdateソフトを実行すれば、BIOS書き込み用FDが出来る。そのFDで起動するだけで自動実行される。勿論、古いFDでも良いが、書き込み最中にFD読み取りエラーが起きたら。。。多分、読み取りながら、書き込みなどという野蛮な方法はとっていないが、それでも万全を期したい。

BIOS書き換え

Awardの場合、これが面倒である。

   A:>awdflash bh6_hn.bin /PY /SN /CC /CD

などのように、オプションのスイッチが必要で、これを間違えていないかと、手が震える。コマンドラインから入力するのは恐いので、じっくりと時間をかけてAutoexec.bat作って自動実行にする。そうすれば、コマンドラインでうっかり手が震えて、間違ったスイッチを入れ、焦ってBackSpaceへ伸ばした手があろう事かEnterに触ってしまうなんて、そんなに可能性の低いことではない。とはいえ、これはこれで、恐いこともある。autoexec.batをWin95で作っているときに、シングルクリックのつもりが手が痙攣してダブルクリックになってしまい、autoexec.batが走ってしまったのには慌てふためいた。幸いターゲットマシンではなく異なるフラッシュメモリのPCの上で作っていたので、書き込みエラーになった(書き込めないエラー)だけですんだ。

具体的方法は、この辺が役に立つ;

http://www.kcn.ne.jp/~kogam/newpage32.htm ここが完璧な説明をしている。
http://www.zoomin.co.jp/saito/pc/9907/bh6_bios.html
http://www.pcinf.com/wwwpub/faq/bios/bios00.htm
http://member.nifty.ne.jp/cat-net/htms/BIOS.htm
http://homepage1.nifty.com/junke/pc/biosrecv/


NOPについて

コンピュータには、NOPという命令がある。何もしないという命令で、何もせず、素抜けて次の命令に移っていく。何もしないといっても、2つの事はする。まず、時間をつかう。CPUは、主記憶から命令を取り出し、デコードし、その命令を実行するが、命令取り出し、デコードなどには時間がかかる。第二に主記憶を1ワード分使う。これらは、何か無駄としか思えない。が、例えば、ドライバの開発など、低レベルの難しいプログラミングを行っているときは、Wordなどをプログラミングしているのとは異なるはるかに高級な腕前が必要になる。

なにしろ、事はCPUの中だけで収まらない。微妙なタイミング調整などが必要になり、CPUが速すぎてバスか、チップか、周辺装置か、非論理世界のなにかが追いつかない時にはNOPを入れてタイミング調整などを行うのである。近頃は、いろいろなデバッグツールが完備されソースレベルでデバッグできるようになっているが、職人的な業が必要とされる場合、こういう事も行う。

主記憶を使うのは、NOP命令で予めあちこちにトラップをいれる隙間を作るためである。どの段階でエラーが起きるのかを知るためには、ソフトのあちこちにHalt(停止)命令を埋め込んでおく(こんなのもデバッガで自動的に行えるが、最後は職人芸である)。そこで停止したらそこまではとにかく来ているということが分かる。継続実行した所、次のHaltで止まらず、動き続けている場合、それはその途中のどこかで暴走しているということである。とはいえ、正常と分かったパスで毎回停止してくれては面倒で仕方ない。正常と分かったパスのHaltは、NOPに換えておくと楽である。勿論、出荷するときにはこのNOPは外してコンパイルをし直すのである。そうすると、タイミングが微妙に違って、又動かない。。。。。
プログラマーも楽ではない。コンピュータは全然、論理機械なんかではない。

ブート

BIOSはPCを起動するが、どんなOSが何処に入っているかは知らない。そこで、決め打ちで、HDDの0シリンダ、0ヘッド、1セクタの先頭約400バイトを主記憶に読ん込んでそれを実行する、という取り決めになっている。その為、WindowsなりLinuxなりのOSでは、インストーラがOSをインストールするときに、そこにOS分の在処などを書き込んでおくことになっている。この1セクタをMasterBootRecordという。Win9xでは、fdisk /mbrがインストーラと同じようにMBRにこの4百数十バイトのソフトを書き込む。MBRの残りのスペースにはパーテションテーブルが入っていて、こちらを編集するのは、スイッチ無しで起動したお馴染みのfdiskである。

MBRは、これも約束毎で、そこに登録されているアクティブなパーテション(ここがOSの居場所)の先頭シリンダ、0ヘッド、1セクタを読み出し、実行する。この部分をPartitionBootRecordあるいはブートセクタと言う。ブートセクタに至ってやっと決め打ちのセクタではなく、ファイルシステムが使えるようになり、ブートセクタは決め打ちの名前の実行ファイル(ファイルであり、第0セクタという絶対アドレスではない)を読み込んで実行する。このファイルは、名前だけが決まっていて、どこにあるかはファイルシステムが知っているので、ファイルシステムの管理下なら物理的アドレスはどこにあっても良い。名前は、Win9xでは、io.sys、WinNT/2000では、NTLDR(NT Loader)である。

このように段々とOSをロードする方式をブート(boot;長靴)するという。例えば、直径1mのロープを屋根に上げようとした場合、まず直径2cm位の軽いロープを投げ上げ、その先に今度は10cmくらいの直径のロープを縛り付けて引き上げ、つぎにそのロープの先に30cmくらいのロープを縛り付けて引き上げ。。。。というようなことが考えられる。OSは上記のように、このようにして徐々に起動している。最初にこの方式を考え付いた人は、長靴を釣り上げるのに、靴本体ではなく、靴紐で摘み上げるような連想をしたらしい。それで、OSをだんだん起動していく様をブートストラップ(bootstrap;長靴の紐)するといったのだが、略してブートというのである。

BIOSの役割は、変わってきた。近頃は、MPUもバグだらけなので、そのパッチまでBIOSに任せているらしい。情けない限りである。下記が詳しい。

う〜さんのおもちゃ箱 2





55.Windows NT 4.0を自動パワーオフさせる方法    目 次

方法は、2種あるが、必ずしも成功するとは限らないので両方試して見る。

 A.「パワーオフfor NT」などのフリーソフトをインストールする
    http://www.vector.co.jp/soft/winnt/util/se105141.html

 B.HAL:Haradware Abstraction Layer を入れ換える


A.「パワーオフfor NT」をインストールする

これは簡単である。
 1. 「パワーオフfor NT」をインストール
 2.レジストリを開き、
    \\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
    のPowerdownAfterShutdownにする。

 3.再起動して、BIOSで、APMあるいは、ACPIをenableにする。

この方法で、 Abit BH-6 Rev.0 は稼動した。


他にも幾つか電源切断ソフトがあるので、下記に挙げる。有名所では「窓の手」にもこの機能がある。

http://www.asahi-net.or.jp/~vr4m-ikw/
http://hp.vector.co.jp/authors/VA012152/ntreboot.html
http://www.vector.co.jp/soft/winnt/util/se064245.html


B.HALを入れ換える

 Winnt\system32\hal.dll を入れ換える。しかし、それで動くとは限らないので、いきなり取り換えると起動しなくなり、何ともならない事が有る。以下のようにすると、その危険はない。

  1.WinNTSP4以上のCDの\i386中にある。Hal.dll.SOFTEX(MP用;Halmps.dll.SOFTEX)を上記system32にコピー
  2.Hal2.dllとrenameする。
  3.c:\boot.iniのプロパティからread-only属性を外す。
   c:\boot.iniをメモ帳で開き、

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00"
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos

となっているので((1)など括弧内の数字はシステムによって異なる)、この色の行をコピーして、
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00"
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [AutoPowerOff]" /hal=hal2.dll
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos

と書き加える。
この書き直した行は、改行しない。1行で書く。ブラウザでは、字のサイズの関係で改行しているように見えるかもしれ無いが、1行である。AutoPowerOffは文字列の引用であるからなんでも良い。Hal2.dllを使う行であることが、自分で判別できれば、「A」でも「2」でも良い。
重要なのは、/hal=hal2.dll というスイッチである。これを書き忘れると、Hal2を使った起動ができない。

  4. boot.iniを上書きして閉じる。
  5.レジストリを開き、
   \\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
   のPowerdownAfterShutdownにする。

  6.再起動して、BIOSで、APMあるいは、ACPIをenableにする。
  7.ブートセレクタで、AutoPowerOffにした行から起動する。

これで3つの場合が生じる。
  1.成功
  2.起動途中、青い画面で停止起動しない。HALが対応していない。といわれる。
   この場合、上記で行った1.〜6.を元にもどし、断念。
  3.シャットダウンすると、再起動してしまう。断念。

 この方法で、95-96年頃のモデルであるIBM PC-750 6883ではうまくいった。このマザーボードはAptiva770系統と同じ物だから、この頃のAptivaなら成功するだろう。
 Abit BH-6 Rev.10ではHALが異なるといって、起動しなかった。メッセージを読むと、どうもBH−6ではどういう訳か、シングルプロセッサなのにマルチプロセッサのHALが必要なようだ。Hal.dll.SOFTEXではなく、MP用のHalmps.dll.SOFTEXにすれば良かったかもしれないが、A.の方法で成功したので、やっていない。

成功して、このままhal2.dllを使い続ける場合、元のhal.dllをhal.oldにrenameし、hal2.dllをhal.dllにrenameするだけで良い。

尚、上記2通りの方法で断念した時、レジストリ(PowerdownAfterShutdown)を元のに戻しておかないと、シャットダウンしても再起動になってしまうので注意が必要。

HALは色々あって、本来は自分のPC用の物が必要である。「 NT HAL」をキーワードにしてgoogleで探すと、各社、結構出てくる。SP4以上に入っているもはDellのLatitude用のものらしい。

その他のHALの在処


尚、上記Bは、「スタート」からシャットダウンして、自動電源断を行うものであるが、これが面倒で、デスクトップのアイコンをクリックで電源断まで行いたいときには、上に加えて、下記のasdown.exeをどこかにインストールし、(c:\asdown\asdown.exeが簡単)そのショートカットをデスクトップに置いておけば良い。くどいが、上記の処理をしておかないと、このショートカットを叩いても、OSをシャットダウンするだけで、ハードの電源はきれない。

asdown(65KB)の在処

尚、asdownのショートカットを右クリック→リンク先で、

  c:\asdown\asdown.exe /t 0

としておかないと、デフォールトでは、30秒後から電源断の処理が始まり、直ちにははじまらない。
/t はtime、 0は0秒だろう。

対応OS;WindowsNT3.51以上、Windows95以上。

参考;Win9xのデスクトップアイコンからの電源断





56.家庭内LANでPCの時計をピッタリ合せる    目 次

インターネットにつなぐ頻度の最も多いPCにTclockをインストールし、これをTimeServerにする。このTimeServerは、Tclockでインターネット上のNTPサーバに同期させる。

他のPCには time.bat と言うファイルを作って、その中に
  net time \\TimeServerのコンピュータ名  /set /yes
と書き込み。

 Win95なら、C:\windows\スタートメニュー\プログラム\スタートアップあるいは、 NT/Win98なら、\winnt/Windows\profiles\ユーザ名\スタートメニュー\プログラム\スタートアップ あるいは、C:\windows\All users\スタートメニュー\プログラム\スタートアップに置いておく(WinNT/98ではスタートアップの位置にいろいろな変種があります)。

 C:\autoexec.bat に、 net time コマンドを書き込んでも動かない。この時点では、まだネットワークに接続されていないからであるし、NTではそもそも実行されない。

なお、桜時計はSNTPサーバ/クライアント機能があるから、TimeServerにTclockの代わりにインストールし、サーバモードをオンにしておき、他の全PCには、クライアントモード(普通のモード)でこれを置いて使うという方法もある。

しかし、netコマンドのようなOSの機能を使う方が軽くて良い。桜時計のように別のソフトを使うと(Tclockにはそもそもサーバ機能がない)、常駐解除してもメモリリークが起きる可能性はあるし、桜時計はレジストリを使うからレジストリ肥大の原因にもなる。レジストリは一度項目を作ったらアンインストールしても、手で削除しても、削除マークが付くだけでレジストリが小さくなるわけではないから、試しにやってみる前に良く考える必要がある。






57.Abit BH6 Rev.1.0x でCoppermineは完全に動く(居候が保証している分けではないが)。(Coppermine, FC-PGA,BH6 1.0)    目 次

Aopenの「FC-PGA」という、FC-PGA→Slot1変換カードがジャンクで出ていたので、BH6 Rev.1.0ではCoppermineは動かないという奇妙なAbitの公式声明を知っていたが、無視して購入。

Abitの公式声明を信じていないのには2つの理由がある。一つは、BIOSupdate HPか、落としたBIOSの説明か、のどこかにCoppermine対応、と以前書いてあった記憶がある。他は、「M/Bの電流が不足する」という説明がちょっと技術を分かっているものにはあまりに嘘っぽい、という物である。 Katmaiより、ダイが小さくなり、電圧が小さくなり、それに連れて電力も減っているのだから、Katmaiが動くM/BでCoppermineが動かないというのは、周波数が1GHzとかよほど上がって電流が余程大きくならない限り非常に胡散臭い説明である。

大体、AbitのHPにある以下の説明も、とても奇妙である。
[ BH6 ]
ファイル名: BH6SS.EXE
日付: 07/06/2000
ID: SS 注:
Celeron 633(66),667(66),700(66)MHzのサポート

KatmaiコアのCeleronは533MHzまでしかない。533AMHz及び、566MHz以上のCeleronはCoppermineコアのFC−PGAである。これによれば、少なくとも、Coppermine-128k=coppermoneCeleronは完全に対応されている。Pentiumはあるいは、よくあるようにコア名称の認識位は間違えるかも知れない。

結局は、公式にはIntelの政策的ガイドラインに背きたく無いので、そのような声明になったということらしい。Abitの技術者は非公式には、動くといっているとのことである

  http://x75.deja.com/[ST_rn=ps]/getdoc.xp?AN=636236818&CONTEXT=964138397.1617

参照。

以下、上記サイトの議論から引用; 政治的発言であるから、語用論的解釈は省き、そこそこ厳密な推論だけを用いて注意深く要すると;

Subject: Re: BH6 V1.0x (Re Coppermine Support, VRM 8.4, MOS-FETs)
Date: 06/19/2000
Author: Oliver Cromwell

On Thu, 15 Jun 2000 11:05:10 +0800, "TechSupport@ABIT" wrote:

以下は、クロムウェルという筆名に恥じない骨がある説明である。

まず、Abitの公式声明;
>We cannot officially claim that all BH6 1.0x support Coppermine, for they
>don't all fully VRM 8.4 spec. compliant.
>Some later BH6 1.0x boards applies newer MOS-FET power amplifier (chip
>labeled 55N03, while earlier boards' are 45N03), which could provide
>sufficient current for Coppermine's application. We believe these boards are
>the last several stepping of BH6 1.02.

公式には全BH6 1.0xがCoppermineをサポートしていると言明することはできない
 :公式には言えないという意味は、非公式にはいえることを暗示している

BH61.0xは全てが完全にVRM 8.4仕様を満たしているわけではないからだ。

後期のBH61.0xは、Coppermineの必要とする電流を供給できるであろう、型番が55N03のMOS-FET パワーアンプを用いている。これに対して初期のものは、45N03である。

 註;意味論的には、BH6 V1.0xがCoppermineを使えない原因が電流不足であるとは言ってはいない。
    1.BH6 V1.0xの中にはVRM 8.4仕様を満たしていないものがある。
    2.型番が55N03のMOS-FET パワーアンプはCoppermineに十分な電流を供給する
    3.BH6v1.0xの中には55NO3を用いているものがある。
   と言っているだけである。

 意味論的にはそうであるが、推論を援用すると、2.と3.から「55NO3を用いているBH6はCoppemineを使える」と推論できる(本当はこの推論にはまだ無理があるが)

その他には、
    ・初期のBH6 V1.0xは、45N03のMOS−FETを用いている

と言っているだけで、
     「45N03では電流が十分でない」、とは一言も言ってはいないのである。もちろん、「使えない」などとはまったく言っていない

この言明は、どのように柔軟な推論を用いても帰結しない。そうは言っても、日常の語用論的な言語の運用では、45NO3ではCoppermineは使えないと解釈させる修辞的表現になっている。

これに対するクロムウェル氏の快刀乱麻の反論;

Unfortunately, this MOS-FET issue seems like a red herring.
MOS−FETうんぬんの議論はまやかしのように見える。

55N03LT; 55 A /103 W  
45N03LT;45 A / 86 W
2つのチップは、上記以外の仕様は完全に同じである。

一方、
Coppermine 700 MHzの使用電流は14.0 アンペアで、
Katmai (Pentium III, 512K cache)450 MHzの14.5 アンペアより少ない。

Coppermine 933 MHzでは、17.7 A。
BH6 1.0x がサポートしているKatmai 600 MHz は17.8A.

my Pentium III 700 MHz SECC2 runs perfectly well at 784 MHz on my BH6 version 1.01 (NV BIOS, 1.65V).
私のPentium III 700 MHz SECC2はBH6 version 1.01 (NV BIOS, 1.65V)で完璧に稼動している(@784 MHz)。

こういう経験者の方のお話も参考になります。
     ↓
http://wakusei.cplaza.ne.jp/ikupon/pc54.htm







58.インターネットにおけるファイル共有の方法;あるいはPeer-to-Peer NW (Gnutella, BearShare, peer-to-peer)   目 次

警告
BearShareはsetupすると、TCP/IPスタックを英語版で上書きすることがあるかもしれない。その場合、これが不具合を起こし、IPアドレスを書き込めなくなることがある。
直し方



インターネットにおけるファイル共有のどこが面白いのか、今ごろ、peer-to-peerだのという名称で騒がれている。じゃあWebのホームページと言われているものは何なのだろう?あれは典型的なファイル共有で、そこに置いてあるファイルは、誰でも自由にダウンロードできるではないか。そもそもダウンロードなどという持って回った言い方などしなくても、URLを打ち込めばブラウザはダウンロードして表示しているのである。LzhやZIPファイルは表示できないので、フォルダに落ちてくる。
それに、FTPだって立派なファイル共有だ。

Gnutellaはうわさでは、地を這う位遅くて、信じられない程使い難いらしい。と言う事で、それに比べれば画期的に速く、使いやすいというBearShareが出現した。

必要なソフトのダウンロード

http://www.bearshare.com/download.htm

BearShare version 2.0.9  1127KB US English  2001年3月2日版である。
Windows95以降で動く。Win98以降では、ダウンロードはこれで終わりである。

Windows95では、全バージョンに渡って、以下のソケットも入れ直さないと、起動さえしない。「プログラム開始エラー」が出る。
http://www.microsoft.com/windows95/downloads/contents/wuadmintools/s_wunetworkingtools/w95sockets2/?RLD=357

Windows Socket 2 Update 986 KB

インストール

最近のソフトはインストーラもしっかりしているので、非常に楽である。ダブルクリックして後は考えずに「Next」を押していれば良い。WinSock2をインストールした後は、再起動が必要になる。どちらからインストールしても良い。

実行前の注意

さて、使い勝手の良いというBearShareだが、それはGnutellaに比べての事で、なんと分かり難いのだろう。分かってしまえば、使いやすい、という類の使い易さである。見ただけで分るという訳には行かない。ここでは、細かな事はおいておいてひとまず使うというレベルで説明する。但し、共有ソフトなのだから、モデムを繋いだ途端、こちらのPCにもアクセスされる可能性は、念頭に置いておく必要がある。ざっと読んだところでは、デフォールトでは、BearShareをインストールしたフォルダの下にあるsharedフォルダにしかアクセス許可されないとは思うが、まだマニュアルを精読はしていないので保証の限りではない。一応、下図の6番のところにある「Accept Incoming Hosts」のチェックを外しておけばファイルアクセスは許可しないようであるが、(peer to peerなのだから、それはエチケットにもとるから)ファイアウォールの内側にいない限りそういう事はしないように、とHelpには書かれている。但し、ここのチェックを外しても相手のリクエストには応答し(IPレベルのアクセスには応答し)て、その後、コネクションを閉じる。つまり、IPレベルでは応答して門前払いしているが、IPレベルの玄関は開いているので、その隙に、クラッカ(強盗;本来は金庫「破り」)に無理矢理、押し入られる可能性が0ではないということだろう。また、著作権を犯すようなファイルは共有してはならない。

実行

さて、BearShareを起動すると、こんな窓がでる。Helpを開いて欲しい。開き方がわからなければ、BearShare¥Help¥index.htmをダブルクリックで見られる。

簡単な流れは、

 Searchタブを開き、下部の窓にキーワードを入れる → 望むファイルが現れたらダブルクリック → downloadを待つ


である。
hosts.gif
(BearShareのHelpより)

Hosts
とは、Unix系の用語で、単にコンピュータのことだと思えば良い。ここではBearShareがインストールされているPCのこと。1の大きな窓にどんどんHostがスクロールされて出現し、次々とタイムアウトで消えていく。BearShareが勝手にどんどん探しているのである。これはどこかにあるリストにのっているHostに次々にアクセスしているのであるが、それらがインターネットに常につながれているとは限らない(何しろ個人のPCだから)ので、アクセスしても応答がない物が沢山ある。左下の「5」のところに「20Hosts」と見えているが、この場合、20台のBearShareをインストールしてあるPCと繋がるまで探し続けるということらしい。インストール直後は、3台になっている。20台見つかれば止まる。さらに新しいPCを探したければ、どれかHostの上で右クリックしてRemoveか、Remove Allをすれば良い。表示されているPCが消えて、別のPCを探しにいく。これを暫く眺めていても、そこそこ面白いが、それだけの事である。次に移らなくては意味がない。

Search
タブを開く。下の方に細長い窓がある。Help画面では、上記、index.htmの

  7.Main Window
            −−−
            ・Search Page


で見る。3の位置の細長い窓であるが、ここにファイル名を示すキーワードを入れる。大文字、小文字は区別されない。ASCII以外は無視されるので、かなや漢字をいれても無駄である。拡張子はいれても入れなくても良い。入れれば、それだけ精密な検索になる。

 Mozart、あるいは、Olivia Newtonなどを入れてみると何が起きるかわかる。

Hostsの所でおきたように、次々と、ファイルが見つかる。欲しいファイルをダブルクリックすれば、次のタブであるDownloadsタブに自動的に移る。右クリックで、Downloadを選んでも良い。スクロールが速くて追いつかない時は、キーワードを入れた窓の右にあるStopボタンで止められる。

Downloads
では、相手のPCに本当にアクセスするが、StatusがPushになったものは、それを右クリックして、abortで中止しよう。Pushは細かな説明は省くが、要するに、向こうがその気にならなければ(Pushしてくれなければ)ダウンロードできないということらしい。こちらが常時接続で電話代もISP代も気にならない人はそのまま続けていても良いが(ひょっとしたらその内つながるかも知れない)、普通は、止めた方が良い。Statusが「Trying」から、「Request」になれば脈がある。その内、「xx%」と表示され横長の棒グラフが出てくれば、ダウンロード開始である。 他の状態はあまり脈が無い。「Down」はDownloadではなく、相手のPCが文字通りdownしている(死んでいる)のである。

さて、これをみていると、3MB程度のDownloadに1時間(1H)もかかるサイトばかりであった。2kbpsとか、16kbpsとかそんな感じである。しかも断続的にしか繋がらない。個人の56kモデムに世界中からアクセスしたらそんなものだろう。有名な恐怖の台湾サイトみたいなものではなかろうか(50bps(50kbpsの間違いではない)で20時間などと表示された事もあった!)。





59.CD-Rにおけるロメオとジュリエット(Romeo and Juliet, Joliet)      目 次

CD−Rの書き方で最初困ったのが、これである。まさか今時、DOSだけの為のCD−Rを焼くことは特殊用途しかないので、長いファイル名を扱いたい時、ロメオとジリエットJoliet(これをジリエットと読ませるのは、如何に英語と日本語の母音体系が違うといっても無理がある)のどちらにするか悩んだものである。面倒なので、Windows95により近い規格のロメオで焼いていたが、どうもジョリエットの方が良いらしい事に気が付いた。もっとも、128字の超長いファイル名を日常的に使っている人はロメオしか選択肢はないが。

ロメオもジョリエットもWindows95以降でサポートを始めた長いファイル名を使える。ではどこが違うのか;

 ・ロメオでは短いファイル名=8.3形式をサポートしていない。(但し、長いファイル名の長さが128字まで使える)
  したがって、何かの都合でWindows3.1やDOSでそのCD−Rを読みたい場合、読めない。あるいは、ISO9660が読めないとも表現される。CD−ROMの国際標準規格が読めないのは何かと困る。

 Windows9xでは、DOSの8字名と長いファイル名は非常に汚い形式で共存している。短い名前の場合、単に短い名前が長い名前のフォーマットの中に入っているだけではなく、両方の名前が共存しているのである。アルファベットだけで、8.3形式の名前を付けた場合は、短いファイル名だけが内部的に作られる。所が、たとえば、漢字2文字で4バイト(アルファベット4文字文)の長さの短い名前を付けたとしても、内部的には、これは長いファイル名の形式で作成されると同時に短い名前も作られる(短いフ~1.txtのような形式)。
ロメオでは、この共存を止めて長いファイル名だけにしてしまった。
    ロングファイルネーム(LFN)の構造参照。

 ・ジョリエットでは、両方の名前が共存している。その代わりに、長いファイル名が64字に制限されている。しかし、Windows3.1、DOS、あるいはISO9660互換。これは嬉しい。

  64字などという長い名前を付けることは私の場合、太陽が西から出てることはあっても、ありえないので、今では、ジョリエットだけで焼いている。




このページの先頭    目 次