[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2799] Re: adelaid3.



  こんにちは、川合です。


Koyanagi Masaaki さんは 2001/12/26 22:46:51 の「[OSASK 2796] Re:
 adelaid3.」で書きました:

>>   adelaid3ができました。ベータリリースしておきます。
>bedit0 でテキストファイルを書き換えて試しました。

  ご報告ありがとうございます。

>> ・Insert
>>   ディスクの入れ替えをpokonに知らせます。書き出しの済んでいない
>> データーが検出された場合、何もしません。元のディスクに戻して、De
>> leteを押してください。
>現在実際には書き込みは行われないないのですが、
>書き込む対象のディスクが「元のディスク」かどうかはチェック
>されるのでしょうか?

  おお、これはとてもよいご質問です。

  結論から言うと、チェックしていないということになるでしょう。

  今のpokonの操作では、ディスクを入れ替えたらすぐにInsertを押す
ことになっています。したがってpokonとしては、Insertが押されてい
なければディスクは交換されていないと判断しています。

  もちろんこのようなずさんな方針は一時的なもので、本仕様ではあり
ません。本仕様ではディスク交換の有無をハードウェア的に検知して、
交換があった場合はどのディスクに変わったのかを調べます。書き出し
はその後です。

>> ・Delete
>>   書き出しの済んでいないデーターの、ディスクへの書き出しをpokon
>> に指示します(しかし現バージョンでは実際の書き出し動作はおこなわ
>> れない・・・すみません)。
>bedit0 で書き換えた後にInsertを押した時に、すんなりディスクの入れ換えが
>行われたことがあったのですが、これは書き出しが自動で行われたということでしょうか?

  ああ、なるほど。確かにそういうこともあります。・・・でもこれは
書き出しが自動で行われたわけではありません(今のバージョンでは書
き出しは手動でしか行いません)。

---

  ここに3枚のディスクがあって、それぞれdiskA、diskB、diskCと呼ぶ
ことにします。

1.

  まずdiskAの中のファイルをbeditc00で書き換えて、しかしbeditc00
を閉じることなくそのままにしておいたとしましょう。

  この状態でdiskBに入れ替えInsertを押した場合、pokonの表示は赤く
なり、ディスクの入れ替えは受理されません。・・・これは、小柳さん
にとって予想される動作でしょう。

2.

  diskAの中のファイルをbeditc00で開いておいて、しかし書き換える
ことはなく、そのままにしておいたとしましょう。

  この状態でdiskBに入れ替えInsertを押した場合、ディスクの入れ替
えはすんなり受理されます。・・・これも、小柳さんにとって予想され
る動作でしょう。

3.

  今度は、2.の操作に引き続いてbeditc00で開いておいたファイルを
書き換えます。そしてdiskBのままDeleteを押した場合、どうなるでし
ょう?

  ・・・このファイルはdiskAに由来するものです。したがってdiskBへ
の書き出しは行ってはいけません。pokonはその事情を理解しているの
で、この部分の書き出しをしません。書き換えがあったことすら通知し
ません(表示は赤くなりません)。

4.

  やはり2.の操作に引き続いてbeditc00で開いておいたファイルを書
き換えます。そしてdiskCに入れ替えてInsertを押した場合、どうなる
でしょうか?

  もちろん入れ替えは受理されます。先ほどのディスク(ここではdisk
B)に書き出すべきデーターは特にないのですから。

  小柳さんが遭遇したのはこのような事例だったのではないでしょうか
?・・・もしそうではないということでしたら、それはバグなので、再
度ご報告ください。

---

  以上のことは、ディスクの入れ替えをしないでInsertを押した場合に
も同様です。今のバージョンのpokonがディスクの中身を見て交換を認
識するのではなくInsertの入力によってのみ交換を認識している以上、
本当に交換が行われたのかどうかや、diskA→diskB→diskAの順に交換
されたかなど、そういう複雑なことは理解できません。交換のたびに、
今までアクセスしたことのない新しいディスクが来たものとして処理し
ています。

  このような簡易なアルゴリズムを採用しているので、現在の入ってい
るディスクに由来しないファイルをどれだけ書き換えても、書き戻して
もらえる見込みはありません。実際の書き換えができるようになったら
この点に注意して使ってください(本仕様になれば、この問題は解決さ
れますが)。

  結局一番安全な使い方は、ディスクの交換に先立って全てのアプリケ
ーションを終了しておくことです。そうすれば、入れ替えたあとに開く
ファイルはすべて入れ替え後のディスクに由来するものなので、せっか
くの書き換えが捨てられてしまうということはありません。

---

  ドキュメントライターであるI.Tak.さんはこの辺の事情を特によくご
理解ください。しかし、これらをすべてドキュメントで説明しなければ
いけないというわけではありません(説明してもいいですが)。

  説明はややこしくない程度に抑えた方が喜ばれるでしょう。面倒なら
「ディスクを入れ替えたら書き換え動作は保証しません」と書いてもい
いくらいです(笑)。Shift+InsertやShift+Deleteの説明など、ユーザ
ーが知らなくても困らないと判断した操作は「隠し機能」ということに
してしまってもいいです。・・・しかし、嘘はいけません。「書き戻し
たいディスクを入れてからShift+Insertキーで強制認識させてDeleteキ
ーを押してください」というのは嘘です(理由は今までの説明で分かっ
ていただけると思いますが)。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/