From: Nakamura Akifumi Date: 2000-12-02T12:59:14+09:00 Subject: [ruby-list:26256] Re: fork problem? お世話になっております。 A.中村です。 On Wed, 29 Nov 2000 04:52:14 +0900 matz@zetabits.com (Yukihiro Matsumoto) wrote: > |#それ言ったらプロセス中華主義ってのも有りそう… > どうなんでしょうね。私にはそれがどのようなものか想像できない んー、 require 'unix' が無い世界がソレに当たるのだろうなと思います、とか言ってみる… > |#そんなfork()の存在そのものに違和感感じています。 > 純粋な方なんですね。やっぱり中華主義だ(※)。 純粋つーより、単に蛇足は蛇足だなと思うだけで… fork()の役割は、ObjectだのThreadだのによって、今では既に (より良く)置き換え可能なのではないか、というか。 fork()をなんらかの形で必要としている「他の」プロセスを fork()させるんならともかく、rubyの自プロセスをfork()させるっての、 …要るものなんですね…意外だな…というか。 で、その答えの一つが「javaには無い」という事実、なのかな、というか。 ってゆーか、OOPはさておき、そもそもなんでOSにfork()って要るんだろう? データを好きにコピれるObject(OOP用語としての意味はさておき)。 実行コンテキストを「コピれるわけじゃないが新規作成は好きにできる」Thread。 この二者があれば世の中(笑)足りるような気が。 単にunixでは、データを実行コンテキストと分離する手段が無いから fork()で丸ごとコピってるだけ、という印象が。 #Rubyでも Thread.new{hogehoge}.dup はエラーっすよね なんとなくTransTECHの2000年1月号のlegOSの記事を読んでみたり。 fork()ではなくexeci()なる新しい空のプロセスを生成する関数を用意した と書いてあるです。これってThread.newと上記の意味で同じっすよね。 結局、forkが存在する意味とそれをRubyで使える意味とが、 どっちもよくわかんない… #OOP中華主義つーより、非fork中華主義、かな。