伊藤です。 > > Linux は同期書き込みをしろと言っても、必ずしもしてくれないからです。 > http://developer.osdl.org/dev/doubt/ > WebPageにと、Project DOUBTの紹介用のPDFを読みました。 私のスキル不足により、全てを理解することは出来ませんでしたが、 「Linixのファイルシステムは、書けと言ってもちゃんと書いていない」の くだりは、大変面白かったです。
> > Linux の dd 自体は同期書き込みをしろ、と言っていたと思います。floppy > disk のようなものを使って、わざと sector copy のような事をすると、 > 交互に書いている様が判ります。 > > # えーっと、どういえばいいかな。NEC PC-9801 VM2 についてきた、 > # BASIC のシステムディスクコピーのような…と言えば判るかしら。 > > もし、dd が O_SYNC を使っていない、等の理由で非同期書き込みになって > いるなら、書き込みはもっと lazy に行われるはずです。 Linuxと、FreeBSDでそれぞれddのシステムコールトレースを取ってみましたが、 どちらも、出力ファイルのopen(2)時に、O_SYNCをつけている様子はありません でした。 Linux : O_WRONLY | O_CREAT | O_TRUNC | O_LARGEFILE FreeBSD : O_RDWR|O_CREAT|O_TRUNC また、両者とも、fsync(2)をコールしている様子もありませんでした。