[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00900] Re: MINIX3 patch



 しらいです。

In Message-Id <20100705044949.e3005f05.riki1017kazu@gmail.com>
        Rikito INAKAZU <riki1017kazu@gmail.com>さんwrites:
> 稲員です。

> MINIX file system での WRITE_DIR が可能になりました。
> v3 file system 上での簡単なテストしかしていませんので、
> 他を壊していないかどうかは不明です。

 WRITE_DIR は最早時代遅れの機能のような気がしてるので、今更
新規に対応 file system を増やす必要があるのかどうか疑問なん
ですけど如何なもんでしょう?


 それよかもっと大きな問題点が二つ見つかってます。

 一つは select(2) が /dev/tty 非対応なこと。普通は STDIN を
見ればいいんですが標準入出力を redirect されると端末が判らな
くなるので /dev/tty を使うしかないんですよ。
 /dev/ttyp? や /dev/console は対応してるんですが、/dev/tty
は major 番号が異なるんで select(2) 側で reject してくれてま
す。
 具体的にはどうなるかと言うと、STDIN を redirect して起動す
ると異常終了しますね。入力が拾えないんで実行不能です。まぁ現
実的には特に支障ないかも知れませんが。
 普通の OS なら制御端末を自力で探して /dev/ttyp? を使えばい
いんですが、MINIX は job control が死んでるので一般的手法で
制御端末を探せないんですよね。

 あと、疑似端末がうまく機能しません。子 process の出力を親
が受取るところで、select(2) は入力を検知してるのに読みに行く
と 1byte も読めないので freeze したようになります。
 PTYMENUKEY の入力により強制終了出来るので致命的なことには
なりませんが、使いものにならないなら疑似端末機能を殺すしかな
いですね。
 pty.c を色々いじると突然機能し始めたりするので、cc の bug
なんじゃないかという気がしてます。その「色々」に関しては、ま
た const が怪しそうな感じですね。


> 基本的にはこの方法でいけると思うのですがどうでしょう?
> v1, v2 file system も entry 長が 60 か 14 かの違いだと思う
> のでやろうと思えばできそうですが。

 これね、file system の名称が「1」とか「2」とかだけなので、
identifier としては弱いと思うんですよ。どっかで重複名称が生
じそう。
 一応 Linux 辺りで MINIX file system を mount 出来るようで
すけど、その場合は「minix」という名称で見せてるみたいです。
これだと 1/2/3 の区別がつきませんね。
 実装するにしても、MINIX でのみ対応という形にしておいた方が
無難な気がします。

                                               しらい たかし