* 目次 [#ife13c4f] #contents *概要 [#i27efd62] Open系のOS(WindowsもLinux)の~ バイト・ストリーム系ファイル・システムについての情報を纏めている。 *ファイル・システム [#l7ed7875] **FAT [#f3362783] File Allocation Table - Wikipedia~ http://ja.wikipedia.org/wiki/File_Allocation_Table **NTFS [#u465e84b] NT File System - Wikipedia~ http://ja.wikipedia.org/wiki/NT_File_System *デフラグ [#y622da50] -GeekなぺーじLinuxにデフラグが無い理由~ http://www.geekpage.jp/blog/?id=2006/8/22 -独学Linux Linuxでデフラグが必要のない理由~ http://blog.livedoor.jp/vine_user/archives/51201150.html --Why doesn't Linux need defragmenting~ http://geekblog.oneandoneis2.org/index.php/2006/08/17/why_doesn_t_linux_need_defragmenting 理由は簡単で、Unix、Linuxでは2つのデータは、~ 初めから離れた別の場所に格納されるためのようです。 上記から明らかですが、Windwosでは、~ 更新(追記)を重ねると断片化が進んでしまいそうです。 コメント欄を確認すると、トレード・オフもありそうです。 *2GB、4GB制限 [#ra88875b] **Windowsの制限ではない。 [#pd7ee185] Win32APIのSetFilePointer には、 -LONG lDistanceToMove, // ポインタを移動するべきバイト数 -PLONG lpDistanceToMoveHigh, // ポインタを移動するべきバイト数 の引数が用意されており、APIのI/F上は、~ 64bit(4^32GB)までのファイルを扱うことが出来る。 -SetFilePointer 関数~ http://msdn.microsoft.com/ja-jp/library/cc429788.aspx **4GB制限 [#aa15bdce] 上記APIのlpDistanceToMoveHighを使用していないアプリケーションには、4GB制限がある。 IE7にも、この4GB制限があるもよう。 **2GB制限(VB6) [#kc73101a] VB6は、上記のlDistanceToMoveに渡る引数が、Integer型であったため、2GB制限がある。~ #もともと、VBがでたての頃のファイルシステムがFAT16(最大サイズ:2GB)であったため。 IE6にも、この2GB制限があるもよう。 *Windows的なRAWデバイス [#w9e42ee0] CreateFile等のAPIを使用し、ドライブを直接Openできる。~ ただし、OSがロックしているので大概エラーになる。 -CreateFile 関数~ http://msdn.microsoft.com/ja-jp/library/cc429198.aspx