1. 10メガバイトは、フロッピー なんまい ぶん?
1. 10メガバイトのファイルは、何枚のフロッピーになるか
1. 1.44MBの意味と枚数の計算 ── 1.44MBのフロッピーなら10MBは8枚、ただし「1枚」は機種で違う
まず、計算してみましょう。フロッピー1まいの「1.44メガバイト」は、ここでは 1,440キロバイトとして 計算します[1]。1メガバイトを 1,024キロバイトと すると、10メガバイトは 10,240キロバイトです。これを 1,440で わります。
7まいで 10,080キロバイト。のこりは 160キロバイトです。だから 8まい いります。でも 8まいめには、160キロバイトしか 入りません。1まいの 1わりくらいです。ぴったり 使い切れたと しての 計算です。
じつは、「1まい」の 大きさは、きかいに よって ちがいました。日本の PC-98では、640キロバイトの ものが ふつうに なりました[2]。640キロバイトなら、10メガバイトは ちょうど 16まいです。
1.44メガバイトの正体は、1トラック18セクタ、1セクタ512バイト、160トラックという構造から来る1,440キロバイト(バイトで数えると1,474,560)です[1]。1,000で割ったのでも1,024で割ったのでもない、混ざった数え方なので、「1.44」という数字が中途半端に見えます。
以下では、フロッピーの1.44メガバイトを1,440キロバイト、1メガバイトを1,024キロバイトとして数えます。10メガバイトは10,240キロバイトで、これを1,440で割ると約7.1です。7枚では10,080キロバイトしか入らず、残り160キロバイトのために8枚目が要ります。8枚目の中身は1枚の約1割です。ディスクをぴったり使い切れたという前提の計算です。
もうひとつ、「1枚」の大きさは機種で違いました。日本のPC-98では、5インチの2DD(640キロバイト)が標準になりました[2]。640キロバイトなら、10メガバイトはちょうど16枚です。
枚数が分かっても、問題は残ります。どこで切るのか、順番をどう覚えておくのか、あとで元に戻せるのか。以下、昔の人が使った道具を順に見ていきます。
「1.44MB」は、3.5インチ2HDの構造から出た数字だ。1セクタ512バイト、1トラック18セクタ、160トラックで1,474,560バイトあり、これは1,440KiBにあたる。つまり1.44×1,000×1,024バイトという混合単位で、1MB=1,000KBでも1,024KBでもない[1]。以下は、1MB=1,024KBとして数える。
10MBは10,240KBで、1,440KBで割ると約7.11。7枚では10,080KBまでで、残る160KBのために8枚目が要る。8枚目の使用量は1枚の約11%にとどまる。ディスクを容量いっぱいまで使えた場合の計算で、実際にはもう少し余裕を見る必要があるかもしれない。
「1枚」の大きさは機種でも違った。日本のPC-98では、5インチ2DD(640KB)が標準になった。HDDは高価なオプションで、多くの機種はFDD2台のみだったという[2]。640KBなら10MBはちょうど16枚になる。
枚数が分かっても、どこで切るか、順番をどう保つか、どう元に戻すかは決まらない。以下、その部分を担った道具を順に見る。
2. いちばん かんたんな やりかたは、ちぎる こと
2. いちばん素朴な方法 ── 同じ大きさに切る「split」
2. ファイルを固定長で切る ── POSIX splitと切れ端の名前
いちばん かんたんな やりかたは、ファイルを 同じ 大きさに ちぎる ことです。パソコンには「split」という、その ための 道具が あります[3]。
ちぎった ものには、xaa、xab、xac と、じゅんばんに 名前が つきます[3]。名前の じゅんが、つなぐ ときの めじるしに なります。
この 道具は、ファイルの なかみを 気に しません。決めた 大きさで ちぎる だけです。切れはしを じゅんばんどおりに つなぐと もとに もどる、という かんがえ方です。
いちばん素朴なのは、ファイルを同じ大きさに切って、何枚かのディスクに1つずつ入れる方法です。UNIX系のシステムには、そのための「split」という道具があります。仕様では、入力ファイルを読んで、行数(初めの設定は1,000行)またはバイト数(-bの指定)ごとに、出力ファイルへ分けます[3]。
出力ファイルの名前は、xaa、xab、xac、…と続き、最後はxzzです。全部で676個までで、-aの指定で増やせます[3]。名前の並びが、そのまま順番の手がかりになっています。
この道具が決めているのは、切ることと名前のつけ方までです。中身がどんなファイルかは気にせず、ただ決まった大きさで切ります。切れ端を全部そろえて順番どおりにつなぐと元に戻る、という考え方です。
POSIXのsplitは、入力ファイルを読み、行数(既定は1,000行)またはバイト数(-b)ごとに出力ファイルへ分ける[3]。バイト数で切れば、切れ端の大きさを1枚のフロッピーの容量に合わせられる。
出力名は接頭辞xに接尾辞aa、ab、ac…が続き、xzzまでの676個が既定の上限で、-aで接尾辞の長さを増やせる。26×26=676という計算どおりだ[3]。名前が順番に並ぶので、元に戻すときの順序が名前から分かる。
splitの仕様が定めているのは、切ることと名前をつけることまでである。中身の種類を問わない単純さが強みだが、順番や全体の枚数の情報は、切れ端の中には書き込まれない。それを書庫の側で持たせる道具が、次のtarやZIPだ。
3. ファイルの まんなかで 切れても だいじょうぶ?
3. ファイルの途中でも切って続ける ── tarの複数ボリューム
3. tar -M ── メディアの終わりを検知して次のボリュームへ
「tar」は、ファイルを まとめて しまう 道具です。tarに「-M」という 指定を つけると、ディスクが いっぱいに なった とき、エラーで 止まる かわりに、「つぎの ディスクを 入れて ください」と 声を かけて きます[4]。テープでも、フロッピーでも 使えます。
おもしろいのは、切る 場所です。tarは、ファイルを 書いて いる さいちゅうに ディスクが いっぱいに なると、そこで 切って、つづきを 次の ディスクに 書きます[5]。
長い 手紙を びんせんに 書く ときを 思い出して ください。1まいめの いちばん 下まで きたら、文の とちゅうでも 2まいめに つづけますよね。tarも 同じです。ただし 本当は、手紙は 自分で 切れ目を えらべます。tarは、ディスクが いっぱいに なった ところで 切ります。
tarに--multi-volume(-M)を指定すると、メディアの終わりに来てもエラーにならず、新しいボリュームを入れるよう促してきます。テープでもフロッピーでも、ファイルでも使えます[4]。ボリュームとは、複数に分けたうちの1つのことです。マニュアルにある「Prepare volume #2 for …」のようなメッセージが出て、リターンキーを押すと続きを書きます[5]。
切る場所が特徴的です。GNU tarは、ファイルを書き込んでいる最中にメディアの終わりを検知すると、そのファイルを分割した形で書きます。とても大きなファイルは、いくつものボリュームにまたがることもあります[5]。
長い手紙を便せんに書くとき、1枚目の一番下まで来たら文の途中でも2枚目に続けますよね。tarも同じです。ただし手紙は書く人が切れ目を選べますが、tarは容量がいっぱいになった位置で切ります。
元に戻すときも決まりがあります。ボリュームをまたいでいるファイルを取り出すには、-Mの指定が要ります[4]。またいでいないファイルは、マニュアルの説明では、各ボリュームがそれだけで完結した書庫として扱えるため、1枚だけでも取り出せるとされています[4]。
GNU tarの--multi-volume(-M)は、書き込み時にメディアの終わりに達しても、エラーにせず、新しいボリュームを入れるよう促す。読み込み時も同様で、対象はテープに限らずフロッピーやファイルでもよい[4]。促すメッセージは「Prepare volume #n for …and hit return」の形で表示される[5]。
ファイルの書き込み中にメディアの終わりを検知すると、GNU tarはそのファイルを分割した形で書き込む。非常に大きなファイルは複数のボリュームにまたがりうる[5]。splitのように事前に均等に切るのではなく、書いていって容量が尽きた位置で切る、という発想の違いがある。
取り出しについては、マニュアルは、エントリが1つのボリュームで始まり別のボリュームで終わる場合、正しく展開するには--multi-volumeの指定が必要だと述べる[4]。各ボリュームがそれ自体で完結したtar書庫で、単独で一覧・展開できるという説明は、マニュアルの要約に基づく。この性質が成り立つのは、途中で切れていないファイルに限られる。
4. ZIPや ARJは、はじめから 何まいにも またがれた
4. ZIPとARJは、最初から複数枚にまたがれた
4. ZIP・ARJの複数ボリューム ── フロッピーの容量に合わせた指定
ZIPは、1989年に 公開された、ファイルを ひとまとめに する やりかたです[7]。ZIPの きまりの 文書には、ZIPファイルが 何まいもの ディスクに またがって よいと 書かれて います[6]。
この しくみは、もともと、大きな ZIPを 何まいもの フロッピーに 入れる ために 作られました[7]。今の zipの 道具には、大きさを 指定して 分けられる ものも あります[8]。
ARJという ソフトは、1991年に ロバート・ジャングさんが 作ったと いわれます[9]。ARJには、「v360」「v720」「v1200」「v1440」と、フロッピーの 大きさに 合わせた 名前の 指定が ありました。ぜんぶで 999まいまで 分けられました[9]。
ただし、今の Windowsに はじめから 入って いる「あっしゅくフォルダー」では、分けた ZIPを 読み書きできないと いわれます[7]。
ZIP形式は1989年2月14日にPKWAREなどが公開しました[7]。仕様書には、ZIPファイルが複数のボリュームにまたがってもよいこと、ユーザーが決めた大きさのセグメントに分割してもよいことが書かれています。固定のメディアでもリムーバブルのメディアでも構いません[6]。
この機能は、もともと大きなZIPを何枚ものフロッピーに保存するためのものだったと説明されています。今はメールで分けて送るときなどにも使われています[7]。Info-ZIPのzipコマンドでは、-sで分割サイズを指定して分割書庫を作れ、-spを付けると分割の合間に一時停止して、メディアを交換できます[8]。
ARJは、英語版ウィキペディアによれば、1991年にRobert K. Jungが作った圧縮ソフトです。-vスイッチで複数ボリュームに対応し、v360、v720、v1200、v1440のように、フロッピーの容量に合わせた略記が用意されていました。ボリュームは最大999個です[9]。容量の名前が、そのまま指定の言葉になっていたことになります。
ただし、分割・またがりのZIPは、Windowsの標準の「圧縮フォルダー」では読み書きできないとされています[7]。
ZIP形式は1989年2月14日にPKWAREとInfinity Design Conceptsが公開した。仕様書(APPNOTE)は、ZIPファイルが複数ボリュームにまたがるか、ユーザー指定のセグメントサイズに分割されうると定める。固定メディアでもリムーバブルメディアでも構わない。中央ディレクトリ終端レコードについても、分割・またがりの際の置き方の取り決めがある[6]。
この複数ディスク対応はもともと大きなZIPを複数のフロッピーに保存するためのものだったが、いまはメールの分割送信などにも使われる。Windowsの標準機能「圧縮フォルダー」は、分割・またがりZIPの読み書きに対応していない[7]。Info-ZIPのzipは、-sで分割サイズを指定して分割書庫を作り、-spで分割の合間に一時停止して、リムーバブルメディアを交換できる。用途の1つとして、大きな書庫を複数のリムーバブルメディアに保存することが挙がっている[8]。
ARJの作者(Robert K. Jung)と1991年という年は、英語版ウィキペディアの記述による。マニュアル側に年の記載はない。-vスイッチで複数ボリュームにでき、v360、v720、v1200、v1440のようなフロッピー容量に合わせた略記があり、最大999ボリュームまで対応する[9]。
5. 1まいに、もっと たくさん つめこむ ほうほう
5. 1枚に詰められる量を増やす ── DMFという特別な書式
5. DMF ── 1トラック18→21セクタで1,680KiBへ
ちぎって 分ける ほかに、1まいに 入る りょうを ふやす、という 手も ありました。マイクロソフトの「DMF」です[10]。
ふつうの フロッピーは、ディスクの 1しゅうぶんの わっかを 18こに 区切って います。DMFでは、これを 21こに ふやしました。本だなの 1だんに 18さつ ならべて いたのを、21さつに するような ものです。ただし 本当は、本の あつさを かえるのでは なく、ディスクへの 書き方を かえて います[10]。
1まいに 書ける りょうは、1,440キロバイトから 1,680キロバイトに なりました。2ばいでは なく、1.17ばいくらいです。それでも、10メガバイトの ファイルは、ふつうの 8まいから 7まいに へらせます。
でも、この 書き方は、とくべつな ソフトが ないと 読み書きできません。だから、コピーも しにくく なりました[10]。
マイクロソフトの 人は、ねらいは まいすうを へらして、つくる 手間と おくる お金を 少なく する ことだったと 書いて います。コピーしにくいのは、おまけの こうかだそうです[11]。
MicrosoftのDMF(Distribution Media Format)は、3.5インチの1.44メガバイトのディスクに、1,680キロバイトを書き込める特殊な形式です。1トラックのセクタ数を18から21に増やし、クラスタの大きさも変えています[10]。
1,680÷1,440は約1.17で、増えたのは約17%です。倍になったわけではありません。それでも、10メガバイトのファイルなら、標準の8枚が7枚に減ります(1,680×6=10,080、残りは160キロバイト)。
特別なユーティリティがないと読み書きできず、そのため普通のコピーもしにくい形式でした[10]。マイクロソフトの技術ブログでRaymond Chen氏は、DMFの目的は枚数を減らして製造・輸送の費用を下げることで、コピーしにくいのは副次的な効果だと述べています[11]。
実例として、Microsoft Office 4.3 Professionalのフロッピーイメージが、Internet Archiveに24枚(合計約38.1メガバイト)で保存されています。1枚目は標準形式で、2〜23枚目がDMFです[12]。なぜ1枚目だけ標準なのか、出典には書かれていません。
DMF(Distribution Media Format)は、3.5インチのフロッピーに標準の1,440KiBでなく1,680KiBを書き込める特殊書式で、1トラックのセクタ数を18から21に増やし、クラスタの大きさも変えている。特別なユーティリティが無いと読み書きできず、コピーもしにくかった[10]。
1,680÷1,440≒1.17で、増えたのは約17%にすぎない。1,680KB×6=10,080KB=1,440KB×7なので、標準形式で7枚必要な量が6枚ですむ。10MB(10,240KB)なら標準8枚が7枚になる。
Raymond Chen氏は、Windows 95の小売フロッピー版が13枚のDMFフロッピーで出荷されたことに触れ、DMFの目的は枚数を減らして製造・輸送の費用を下げることで、コピーしにくいのは副次的効果で設計目標ではなかった、と述べている[11]。枚数の話は別の記事で扱った。ここではDMFの仕組みだけを見る。
Microsoft Office 4.3 Professionalは、Internet Archiveの記録で3.5インチのディスクイメージ24枚(合計約38.1MB)からなり、ディスク1が標準形式、2〜23がDMF形式(約1.7MB)とされる[12]。ディスク1だけ標準である理由は、出典に書かれていない。ネット上には別の枚数の情報もあるが、版が違う可能性があり、ここでは24枚版だけを使う。
6. ディスクを かえる めんどうさと、今も のこる わざ
6. ディスク交換の手間と、今も残る「分ける」技
6. 交換の手間と、分割保存の現在
日本の パソコン PC-98では、ハードディスクは、べつに 買う 高い 部品でした。多くの きかいには、フロッピーを 入れる ところが 2つ あるだけでした[2]。
ゲームの 思い出を 書いた ブログには、11まい 組や 30まい ほどの ゲームが あったと 出て います。ゲームの とちゅうで「ディスクを かえて ください」と 出て、そのたびに 入れかえたそうです。28まいめで 読みこみエラーが 出た、という 書きこみも ありました[13]。ただし、ひとりの 人の ブログと、その 書きこみです。まいすうを たしかめた わけでは ありません。
ディスクを 何まいも 入れかえる のは、時間も かかり、こわれる 心配も ありました。それでも 分ける わざは なくなって いません。今の zipの 道具にも、分けた あいだで 一度 止まって、入れかえる 時間を くれる 指定が あります[8]。メールに 分けて つける ときにも 使われます[7]。
PC-98の時代、ハードディスクは高価なオプションで、多くの機種はフロッピードライブ2台だけを積んでいました[2]。大きなデータは、何枚ものフロッピーを入れ替えながら扱うしかなかったことになります。
ゲームの思い出を集めたブログには、11枚組や30枚ほどのゲームがあった、プレイ中に「ディスクを換えてください」と出て、その都度入れ替えた、という書きこみが並んでいます。終わり近くの28枚目で読みこみエラーが出たという体験談もあります[13]。ただし、個人のブログとそのコメント欄であり、枚数は確かめられていません。「〜枚組のものもあったらしい」程度に受け取るのが無難です。
分ける技は、今も消えていません。zipコマンドの-spは、分割の合間に一時停止して、メディアを交換できるようにします[8]。分割したZIPは、メールなどで分けて送るときにも使われるといいます[7]。フロッピーの手間から生まれた仕組みが、形を変えて残っています。
PC-98の時代、HDDは高価なオプションで、多くの機種はFDD2台のみだった[2]。大きなデータを扱うには、複数枚のディスクを交換する運用になる。
当時を振り返るブログの記事とコメント欄には、11枚組や30枚ほどのゲームがあり、プレイ中に「ディスクを換えてください」と表示され、その都度交換した、という記述がある。インストール終盤の28枚目で読みこみエラーが出たという体験談もある[13]。個人ブログとコメント欄1件であり、枚数は一次資料で確かめられていない。数字ではなく、交換の手間と途中での失敗の可能性が体験として語られている、と読むにとどめる。
分割保存の技は、今も生きている。zipの-spは、分割の合間に一時停止してリムーバブルメディアを交換できる[8]。分割ZIPは、メール添付など、別の経路で大きなZIPを分けて送るためにも使われる[7]。特定の媒体の制約から生まれた仕組みが、制約が消えたあとも、別の用途で残っている例といえる。
7. じぶんでも しらべて みたく なったら
7. 自分でも調べてみたくなったら
7. 自分でも調べてみたくなったら
ためして みよう。おうちの パソコンや がっこうの たんまつで、しゃしんや どうがを 1つ えらんで、ファイルの 大きさを 見ましょう。「プロパティ」や「じょうほう」を ひらくと、出て きます。おうちの 人に 聞いても いいです。
たとえば 3メガバイトなら、3×1,024=3,072キロバイト。1,440で わると 2.1 なので、フロッピーは 3まい ぶんです。ほんとうの まいすうは、ファイルの 入れ方で かわる ことも あります。おなじ 計算を、ほかの ファイルでも やって みましょう。
家や学校のパソコンで、写真や動画を1つ選び、ファイルの大きさを調べてみましょう。「プロパティ」や「情報」を開くと出ます。その大きさを、1メガバイト=1,024キロバイトにしてから、1,440で割ります。たとえば3メガバイトなら3,072÷1,440=約2.1で、3枚分です。動画や、何枚も入ったフォルダーなら何枚分になるでしょうか。これは「同じ量のデータなら何枚分か」という計算で、実際の枚数は保存のしかたで変わることがあります。
資料を読むなら、GNU tarのマニュアル「Multi-Volume Archives」[4]は英語ですが、短い例が付いています。ZIPの仕様書(APPNOTE.TXT)[6]には、分割・またがりの決まりが書かれています。
手元の写真や動画、フォルダーの大きさを調べ、1,440KBで割ってみる(1MB=1,024KBとして換算)。何枚分になるかを見れば、1.44MBという数字の小ささが体感できる。同じ量のデータを分けたときの計算であり、圧縮や保存の条件で実際の枚数は変わりうる。splitの切れ端の名前(xaa、xab…)が何個まで続くかも、計算で確かめられる。
資料を読むなら、GNU tar manual「Multi-Volume Archives」「Using Multiple Tapes」[4][5]、POSIX split[3]、PKWARE APPNOTE.TXT[6]、zip(1)とarj(1)のマニュアル[8][9]がよい。いずれも英語だが、分割の仕方が短くまとまっている。APPNOTEの分割・またがりの詳細な節は、今回は本文を確かめられなかったので、原典で確かめてほしい。
しらべた もとの じょうほう
参考にした情報源
参考にした情報源と、その使い方
出典について:GNU tarの公式マニュアル、ZIP形式の仕様書(PKWARE)、POSIXの仕様(Open Group)、zipとarjのマニュアル、フリー百科事典ウィキペディア、マイクロソフトの技術ブログ、Internet Archive、個人ブログを使った。何に使ったかを、それぞれの項目の最後に書いている。
- Wikipedia(英語版)「Floppy disk」。 https://en.wikipedia.org/wiki/Floppy_disk (1.44MBの構造(18セクタ×160トラック)について)
- フリー百科事典『ウィキペディア』「PC-9800シリーズ」。 https://ja.wikipedia.org/wiki/PC-9800シリーズ (PC-98のフロッピーの規格と、HDDが高価だったことについて)
- The Open Group「POSIX split」。 https://pubs.opengroup.org/onlinepubs/9799919799/utilities/split.html (splitの切り方と、切れ端の名前について)
- GNU tar manual「Multi-Volume Archives」。 https://www.gnu.org/software/tar/manual/html_node/Multi_002dVolume-Archives.html (tarの複数ボリューム指定と、取り出しの決まりについて)
- GNU tar manual「Using Multiple Tapes」。 https://www.gnu.org/software/tar/manual/html_section/Using-Multiple-Tapes.html (ファイルの途中で切って次のボリュームへ続けることについて)
- PKWARE「APPNOTE.TXT」(ZIP形式の仕様書)。 https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT (ZIPが複数のボリュームにまたがれること、分割できることについて)
- Wikipedia(英語版)「ZIP (file format)」。 https://en.wikipedia.org/wiki/Zip_(file_format) (ZIPの公開年、複数ディスク対応の由来、Windows標準機能での扱いについて)
- zip(1) Linux man page。 https://linux.die.net/man/1/zip (zipの分割サイズ指定と、一時停止による交換について)
- arj(1) Ubuntu manpage。 https://manpages.ubuntu.com/manpages/bionic/man1/arj.1.html (ARJの複数ボリューム指定について。作者と1991年という年は、英語版ウィキペディア「ARJ」の記述による)
- Wikipedia(英語版)「Distribution Media Format」。 https://en.wikipedia.org/wiki/Distribution_Media_Format (DMFの仕組みについて)
- Raymond Chen「How many floppy disks did Windows 95 come on?」The Old New Thing。 https://devblogs.microsoft.com/oldnewthing/20050819-10/?p=34513 (DMFの目的について)
- Internet Archive「Microsoft Office 4.3 Professional Floppy Disk Images」。 https://archive.org/details/msoffice-4.3-pro-3.5dmf (Office 4.3の枚数とDMFの使われ方について)
- 汎用型自作PCまとめ「フロッピーディスク何十枚セットのゲーム」。 https://www.jisaka.com/archives/40185516.html (PC-98のゲームの多枚組とディスク交換の体験談について。個人ブログとコメント欄)
なおした ところ
更新履歴
更新履歴(改版の記録)
- 初版を公開。
このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。