2012/12/21

文系のための「ファイル」(1)

ディレクトリの話が整理できたところで、今度は「ファイル」の話。
ファイルは、コンピュータが扱うデータの最小単位のことで、
様々なデータはこのファイルという「単位」に格納されて扱われる。

コンピュータ関連分野で「ファイル」という用語が使われるようになったのは1950年頃
当時は、現在のようにデジタル化されたコンピュータ上のデータのことではなく、
パンチカード」に対して用いられていた。

うん?パンチカード???

既に、述べてきたように、コンピュータ上の情報は「1」と「0」で扱われている。
パンチカードというのは、特殊な紙媒体に穴を空けて「1」と「0」を表現する
テスト等で用いられるマークシートを思い浮かべると解り易いかもしれない。

元々、コンピュータというのは、「機織り機」と非常に強いつながりがあり、
複雑な模様を自動的に織るために紙に穴を空けたパンチカードを利用していた。
このアイデアは1725年頃にその原型が登場し、後にコンピュータの開発に応用された

これをコンピュータに応用しようと考えたのがチャールズ・バベッジ(1791-1871)
実は、文系のための「統計の歴史」(2)に登場するケトレーにも影響を与えた人物
彼の「脳」は、イギリスの科学博物館に置いてある...。多分、相当な変人だったのだろう。


今では、想像し難いかもしれないが、先端技術がこの分野に注がれていた時代があり、
現在の科学の大きく貢献してきたのである。このことは、少し覚えていた方が良い。
ちなみに、現在のトヨタ自動車豊田自動織機から独立した会社。元は機織り機の会社。

色々と話が逸れてしまったが、このような経緯があって、
1950年代はパンチカードを使ってコンピュータを動かしていた
まさに、紙の束が「ファイル」になっていたのである。

これは、現在のコンピュータ上のファイルと何ら変わらないのである。
要するに、「1」と「0」(穴の有無)で記述された情報が1列に並んでいる情報があって、
その情報を一纏めにしたものをファイルと呼んでいるのである。

コンピュータは、何らかの処理をする際には、必要なファイルを探し出し、
そのファイルの先頭から最後までを読みながら処理していくわけである。
ディレクトリというのは、このファイルの位置を特定するために使われる

ところで、

ファイルに格納されているデータは最終的には「1」と「0」の信号となるが、
最初から「1」と「0」で記述されているファイルのことを「バイナリファイル」と呼び、
人が理解できるように変換されているファイルを「テキストファイル」と呼ぶ。

ちなみに、かつてはASCII文字コードしか使えない時代があったので、
そのころの名残でテキストファイルのことをASCIIファイル」と呼ぶこともある。
最近では、この言い方は減ったが、この名前を用いる人は多い。

さてさて、ある意味重要な話はここまでなのであるが、
理解を深めるために、もう少し踏み込んだ話を。

実は、パソコンのディスプレイ上では、一つのファイルに見えていても、
コンピュータ内部でファイルという単位で扱っているか、というとそういう訳ではない
実際には、記憶媒体に点在しているデータを集めてファイルに見せかけているのである。

例えば、ハードディスクレコードのように回転するディスクから情報を読み取る
つまり、回転しているディスクから必要なデータを取り出しながらファイルを生成する
この時データが断片化していると?っで、デフラグという最適化処理を行うのである。

ちにみに、USBメモリや、最近話題のSSDと呼ばれる記憶媒体は、
ハードディスクのように駆動部が無いので、デフラグの意味は皆無
むしろ、寿命を縮めるだけなので、間違ってもSSDでデフラグをしないように。

話を元に戻す。記憶媒体の中に散在しているデータをファイルに見せかけるためには、
何らかの仕組みが無いとできない。仕組みを整えずに実現できる機能は存在しない。
これを実際に行っている仕組みというのが「ファイルシステム」である。

実は、このファイルシステムが原因で、厄介な問題が生じることがある。
OSによって採用しているファイルシステムが異なり
また、OSのバージョンにも依存することがある

ファイルシステムに関わる問題で注意すべき点は三つある。
1.OSの対応状況、2.ファイルサイズの限界と、3.ファイル名の命名規則、
である。最初の問題は頻繁に起きうる。後の二つは稀と言えば稀。

まずは、1つ目の問題。Windows用の外付けハードディスクをMacに接続した時に、
全く反応しない事があったり、ファイルを見る事はできるが書き込めないことがある。
もちろん、その逆の状況もあり得る。

似たような問題として、Windows XPで使っているディスクが、
もっと古い、Windows 98 で使えないということもある。
こういった経験をした人は意外に多いのではないだろうか。

2つ目の問題として、ある巨大ファイルを外付けのハードディスクや、
USBメモリに移動しようとして、何かのエラーが出て移動できないという
経験をしたことは無いだろうか?

3つ目の問題は、今では少ないかもしれないが、現在でも起こりえる。
少し前まで、ファイル名が長すぎるとファイル名を受け付けないことがあった。
ファイル名が8文字しか使えず、名前を付けるのに苦労したことがある。

これらの問題は、ファイルシステムが原因で生じることが多い。
利用範囲を考えて適切なファイルシステムを選ぶ事は重要なことである。
ファイルシステムの話、少々「雑」であるが大体は以下の通り。


FAT16 FAT32 NTFS exFAT ext4 HFS+
1ファイルの最大容量 4GB 4GB 16TB 127PB 16TB 8EB
Windows 98 × × × ×
Windows Me × × × ×
Windows 2000 × × ×
Windows XP × × ×
Windows Vista × ×
Windows 7 × ×
Mac OS X ×
Ubuntu × ×

見慣れない単位があるが、それに関してはWikipedia を参照
http://ja.wikipedia.org/wiki/%E3%83%9A%E3%82%BF%E3%83%90%E3%82%A4%E3%83%88
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%AF%E3%82%B5%E3%83%90%E3%82%A4%E3%83%88

この表を見てみると、FAT16/32のファイルシステムの最大容量はかなり小さい
10年前は、これで十分であったが、今では動画などのデータの肥大化が進んでいて、
この限界を超えるデータは非常に多い。実際に、データの遣り取りで困ることがある。

また、これらのファイルシステムではファイル名が8文字まで、
そのファイルの種類を特定するための「拡張子」が3文字までしか使えない。
ちなみに、8と3の組み合わせなので、「8.3形式」と呼ぶ。

なお、現在では、FAT32でもファイル名に255文字まで使えるようになっている。
使っている環境によっては、ファイル名の文字数制限は生じない可能性がある。
拡張子については、次の話で詳しく述べるので、知らない人は今は無視して良い。

NTFSは、Windows2000以降の標準のファイルシステムであるが、
MacやLinuxとのデータの遣り取りに困ることが多い。
特殊な設定を行えば、出来なくはないのだが...少々面倒。

データ交換の観点ではexFATが妥当なファイルシステムかもしれない。
このファイルシステムは、「SDHC」という規格のSDカードに採用されている。
ただし、このファイルシステムも読み込めるものと読み込めないものがある

一般ユーザとしては、ファイルシステムの知識が重要かというと、
必ずしもそういう訳ではなく、「そんな話があった」くらいの知識で十分かもしれない。
とにかく、今回の話では、「そもそもファイルとは何か?」が解れば良い。

0 件のコメント:

コメントを投稿