OSを再起動せずに更新プログラムを適用する「Hotpatching」- 阿久津良和のWindows Weekly Report
Windows Server 2022 Azure Editionの説明
Windowsユーザーならご承知のとおり、毎月1回もしくはそれ以上の適用を求められる各種更新プログラムは正直、煩雑な存在だ。それでもバグフィックスやセキュリティホールの修正といった主目的を考えると、適用せざるを得ない。企業の場合は対象の更新プログラムの影響範囲を事前調査し、組織内配布の可否を下す業務が発生する。一般ユーザーはPCの再起動もしくはダウンタイムの発生、組織なら加えて業務量の増加につながるわけだ。
組織の負担は置いておくとして、問題となるのはPCの再起動だ。筆者の場合、コロナ禍で記者発表会などがオンライン化し、テキストエディターや画像加工アプリ、録音・録画システムは常に起動している。OSの再起動後はすべてのアプリを手動で起動し直さなければならず、それこそバッチファイルが必要だろう。いずれにせよ常にWindows PCを起動していて、毎日何かしらの作業を行う筆者でも月イチのPC再起動は憂鬱(ゆううつ)なのだ。
更新プログラムの適用後、なぜWindowsの再起動が必要なのか疑問に思うかもしれない。簡単にいうと、各種更新プログラムの適用先は、OSの心臓部となるカーネルモジュールやデバイスドライバーが対象のカーネルモード(リング0)、通常のアプリケーションやモジュールが対象のユーザーモード(リング3)に大別できる。たとえばエクスプローラーのバグを修正する更新プログラムは後者だ。メモリーからアンロードできないカーネルモード関連モジュールが修正対象となる更新プログラムの適用時は、PCを再起動しなければならない。
Microsoftの解説によれば、Hotpachingは修正対象のコードをオンザフライ(直接書き込み)で変更する機能。適用先OSのHotpachingエンジンバージョンやテーブルサイズ、パッチ順序番号などを含むHotpachingテーブルを用意し、対象コードを含むモジュールを修正する仕組みだ。x64/ARMアーキテクチャーをサポートし、Microsoft Azureで稼働する仮想マシンの一部で長らく運用してきたという。
Hotpachingの詳細は公式ブログの解説をご覧いただきたいが、残念なのはWindows Server 2022の機能として提供されていることだ。公式ドキュメントでも、Windows Server 2022 Datacenter: Azure Editionが対象OSであると記載している。厳密にはMicrosoft Azureで動作するWindows Server 2019も対象だ。なお、名称が定まっていないのか、ここでは「Azure Automanage」と呼んでいる。いずれにせよ我々が普段使うWindows 10やWindows 11でHotpatchingの恩恵を受けることはできない。Microsoft Azureで動作するWindows 11 Enterpriseを手始めに対応させ、最終的にはエンドポイントのWindows 11にも実装されることを期待したい。
あくつよしかず1972年生まれのITライター。PC総合誌やDOS/V専門誌、Windows専門誌など、各PC雑誌の編集部員を経たのちに独立。WindowsとLinuxをこよなく愛しつつ、PC関連の著書を多数手がける。近年はBtoCにとどまらず、BtoBソリューションの取材やインタビューが主戦場。休肝日を設けず日々飲み続けてきたが、γ-GTP値が急激に増加し、早急な対応を求められている。
この著者の記事一覧はこちら