<span class="tag">[pc][ms]</span><a href="http://www.itmedia.co.jp/enterprise/articles/0509/02/news078.html">ITmedia エンタープライズ:Windows Vistaに“フリーズドライ”機能</a>

パッチあてには再起動がつき物だ。たとえば、IEコンポーネントのレンダラである mshtml.dll にパッチを当てようとしても、この DLL が利用されている最中にはファイルを上書きすることができない。となると、アウトルックやタブブラウザなどのIEコンポーネントを利用しているアプリケーションが起動しているとパッチが当てれないわけだ。、再起動直後にファイルを更新する手法を利用するしかない。

Windows Vista のフリーズドライ機能を使えば、再起動する必要はないらしい。記事によると、こういうことになっているらしい。

更新しなくてはならないファイルをどのアプリケーションが使っているかを判断し、そのデータを保存してアプリケーションを閉じ、ファイルをアップデートしてからそのアプリケーションを再起動する

気になるのは、「データを保存して」の部分だ。どうやってデータを保存するんだろう。もし、編集中のファイルを保存する、というだけの機能なんだったら不良品になってしまう。あとでやり直し(アンドゥ)をできるという保険の元で実験しながらファイルを編集することはよくある。そんな実験中に再起動がかかってしまったらどうだろう。アンドゥの情報が消えてしまったままアプリケーションが起動してくるようなら、それは欠陥品となってしまう。

記事中では、Windows 評論家エド・ボット氏の想像で

そのインフラは既に、Windows XPの全バージョンに含まれているハイバネーション機能にあるようだ

と述べられている。しかし、ハイバネーション機能を実現するとしていると、ダイナミックローディング中の DLL もメモリ中のデータとして一緒にメモリダンプのデータに含まれてしまうような気がする。アプリケーションのメモリ空間だけをダンプできるんだろうか。たとえそれができたとしても、ネットワークプログラムだと、TCP の通信が一瞬途切れてしまうことになるので、やはり完璧には実現できないんじゃないだろうか。

一介の開発者としては、別の点に注目が行く。Freeze Dry 機能を API から実現できるようになると、アプリケーションのサスペンド・レジュームを容易に実装できるようになるのだ。これは非常に魅惑的だ。OS 全体のサスペンド・レジュームなら今までもあったのだが、アプリケーションごとにできるのは素敵だ。大きい動画のエンコーディングをしているときには PC の電源を落とせないのは不便に感じていた。もし、API が提供されるのならば、×ボタンの横に△ボタンを追加する「なんでもサスペンド」なるフリーソフトを作ってみたくなるよ。

© nitoyon 2002-2012. All rights reserved.