ImDisk のインストール
~ Windows10 で RAM ディスクを操作 ~
2022-11-22 作成 福島
TOP > tips > imdisk

前置き

30 年以上の時を越えて、RAM ディスクの需要が復活しました。

Linux は tmpfs とか共有メモリと呼ばれる機能を元々持っていて、設定だけで RAM ディスクを構築できますが、
Windows10 にその機能は無い (実装は難しくないので隠されているだけ?) ので専用のソフトウェアをインストールします。
(以前の Windows Server には標準であったらしい)


1. ImDisk Toolkit のインストール

1-1. インストーラファイルをダウンロードする。
インストーラを窓の杜からダウンロードする。
(本家はこちら)

1-2. ファイルを解凍し、インストーラを実行する。
install.bat を実行する。
 解凍 
1-3. ImDisk のインストール画面。
ボタンをクリックする。
 ⇓
🙂(笑顔)とともにインストールが完了する。


2. RAM ディスクの開始

2-1. RamDisk Configuration を起動する。
スタート - ImDisk をたどり、RamDisk Configuration をクリックする。
2-2. ImDisk 画面。(なぜか画面名が RamDisk Configuration になっていない)
RAM ディスクとして確保する大きさ (Size:) とドライブ名 (Drive Letter:) を確認し、
ボタンをクリックする。
(タブを切り替えることにより他のオプションを選択できる)
Launch at Windows Startup」にチェックを入れておけば、Windows の起動時に自動的に使えるようになる。
 ⇓
注意書き。 ボタンをクリックする。
警告: Windows の高速スタートアップ機能が有効になっています。
このことにより、いくつか問題が発生します。
  • 当システムはシャットダウン時に RAM ディスクの内容をハードディスクに書き込み、起動時に復元します。
  • ImDisk Toolkit のデータ同期機能がシャットダウン時に動作しません。
高速スタートアップを無効にするためにシャットダウン設定を開いてください。

Windows の「高速スタートアップ機能」は、シャットダウンと言いながらハイバネーションを行うので、本当のシャットダウンになっていない。
ImDisk には (本当の) シャットダウン時に RAM ディスクの内容をファイルとして保存する機能があるが、これが働かなくなる。
つまり、
  • 何らかの原因でハイバネーションから復帰できなくなると、シャットダウンで期待していた RAM ディスクの内容が消えてしまう。
  • また、シャットダウン時に保存したはずのイメージファイルが起動時に読み込まれるとき、実際は保存されていないため、作業前のイメージファイルが読み込まれてしまう。
という意味だが、

RAM ディスクを揮発性の媒体として扱うなら、どちらのシャットダウンでも構わない
つーか、SSD と組み合わせるなら RAM ディスクに不揮発性を期待しないじゃろ。
2-3. RAM ディスクを確認する。
RAM ディスク (上記 2-2 で指定した R:) が使用可能になった。


3. RAM ディスクの終了 (普段は実施不要。RAM ディスクが不要になったときに実施する)

3-1. RamDisk Configuration を起動する。
スタート - ImDisk をたどり、RamDisk Configuration をクリックする。
3-2. ImDisk 画面。(画面名が RamDisk Configuration になっていないのは上記 2-2 と同様)
RAM ディスクの開始時にグレーアウトされていた ボタンが
アクティブになっているので、これをクリックする。
 ⇓
仮想ディスクは変更されました。
削除される前にイメージファイルとして保存しますか?

RAM ディスクの内容が不要なら ボタンをクリックする。
3-3. RAM ディスクを確認する。
RAM ディスクが使用不能になった。


昔の RAM ディスクと今の RAM ディスク
(30 年以上の時を越えて今また RAM ディスクが必要な理由)

そもそも RAM ディスクとは
ディスクとは「円盤」を指す単語です。
DVD, CD, ハードディスク, フロッピーディスクのように外部記憶装置には大体円盤が入っています。
(テープ装置に円盤はありませんが「~ディスク」とも呼ばれません)

RAM半導体なので円盤が入っていません。
「フロッピーディスクの代わりに RAM を使う」という意味から RAM ディスクと呼ばれるようになりました。
RAM ディスク誕生と衰退の背景
今から 30 年以上昔の西暦 1986 年前後、PC-9801MS-DOS が最盛期だった頃、
街のオフィスにはコンピュータ化の波が押し寄せてきていました。
IT という言葉はまだありません。携帯電話は医者や弁護士の象徴で、ポケベル流行さえ始まっていません。

PC でワードプロセッサを使うようになったのはこの頃で、まだ表計算ソフトはありません。
マウスはまだ珍しい装置で、CG デザイナーが絵を描くときに使うのを見かける程度の存在です。

専用設計のマッキントッシュに辛うじて網点 (あみてん) の白黒グラフィック画面が採用されていたものの、
汎用 PC はハードウェア性能が全く追い付かない上に Windows はおもちゃのようで実用とは程遠いものでした。

コンピュータネットワークが世界中を繋ぐなんて、SF でも常識外れとされていた。
RAM ディスクが活躍していたのは、そんな野心的な時代です。



ソフトウェアを利用するのも開発するのも同じ機械で行うことを「セルフ開発」と言います。(⇔ クロス開発)
その頃の開発用 PC はメインメモリ (640KB) とフロッピーディスクの組み合わせが主流でした。

その開発用 PC で C コンパイラやリンカを動作させますが、フロッピーディスクがメインストレージだったので何をするのにも時間がかかりました。
かと言ってハードディスクは高価 (20MB + I/F カードが約 12~20 万円) で費用対効果が見合わないので、一時領域を RAM ディスクで構築することにより開発効率を上げていました。
(+1~4MB で贅沢だった時代に 20MB はまだ豪華すぎた上に、開発の人数分を揃えると凄い金額になる)

拡張スロットに大容量の RAM (4MB) を増設し、メモリバス上に作った仮想トンネルを通してアクセスするのが当時の RAM ディスクです。
使用可能なメモリ空間は 640KB でしたが、インテル CPU 8086 上限の 1MB まで使えたとしても増設分の 4MB を直接アクセスすることはできません。
そこで 640KB の上部に数 KB 分のトンネルを作り、そのトンネルの行き先を切り替えてデータを読み書きするバンク切り替えという方式で構成していました。



1992 年に Windows 3.1 が発売され、同時にハードディスクも安価になり、80386 と大容量メモリが徐々に使い物になっていくと、RAM ディスクの存在が意味をなさなくなっていきます。
また、この頃キャッシュメモリという技術も上位コンピュータから降りてきて、PC でも普及が進みました。
(80386 は 32bit バスなので最大で 4GB のメモリ空間があり、そもそも一時領域を必要としなかった)

1996 年にインターネットが爆発的に流行した時から、大容量のメインメモリと仮想記憶、グラフィックとマウスの組み合わせが当たり前で、ますます RAM ディスクが不要になり、人々の記憶から忘れられていきました。
今 RAM ディスクが必要な理由
ハードディスクの時代が長く続いていますが、人の欲とは恐ろしいもので、
21 世紀の今になって SSD の大容量化と廉価化により、PC にも大容量 SSD が搭載されるようになりました。

この SSD、高速アクセスかつ大容量なのですが、実は書き換え回数制限がハードディスクよりも厳しく、
あまりに多くの書き換えを行うと自らを破壊していくという致命的な欠陥 (宿命) を持っています。

SSD の開発元も技術を向上させ、発売当初よりは寿命が長くなっているものの、その耐久性能は今も公表されておらず、まだまだ綱渡りが続いています。

100 回や 200 回の書き換えで壊れるような媒体ではありませんが、データを何万回も書き換えるようなプログラムを作った場合にそうはいきません。
SSD の寿命が短くなってしまいます。

そこで RAM ディスクの復活です。30 年以上の時を越えて、また必要になりました。
メインメモリに書き換え回数制限は無いので、これを SSD の代わりにします。
また、メモリバスをそのまま使うので SSD より高速に動作します。

昔の様に拡張スロットで増設する RAM は使いません。
高速かつ頻繁な書き換えが必要なデータは多くないので、メインメモリを少しだけ RAM ディスクに割り当てられればそれで良いのです。

今回紹介する ImDisk は、勝手にしやがれライセンスなので、ありがたいことにお金もかかりません。