フルアップデートが今でも必要となる理由
しかしWindows 10のバージョンアップは落ち着きつつある
Windowsのバージョンアップで、フルインストールが必要なのは、カーネルなどが大幅に更新され、デバイスドライバーなどカーネルモードで動作するプログラムすべてを入れ替えなければならないからだ。
最近ではPCのハードウェアは大きく変わることはないが、かつてのPCは、さまざまなマザーボードや拡張ボードの組み合わせによって作られており、それぞれに個別のデバイスドライバーが必要だった。このため、Windowsは自分でハードウェアを調べて、適切なドライバーを自分でインストールしていくという構造になっていた。
こうした仕組みは、デバイスドライバーの仕様が変わったときにも有効だった。デバイスドライバーに新機能が追加されるなどすると、デバイスドライバーのファイル自体も新しい仕様に合わせたものが必要になることがある。
Windowsデバイスドライバーは階層構造になっている。たとえば、USBデバイスのうちHIDを扱うドライバーは、USBハブやUSBホストのデバイスドライバーの上位で動作し、USBホストのドライバーの下には、たとえば、PCI Expressなどのデバイスドライバーがある。
Windowsの初期化では、PCI Expressなどの「下層」からデバイスを探索する。デバイスが発見されると、それに応じたドライバーを自分の上に組み込む。PCI ExpressならUSBホストやGPU、SSDのコントローラーなどが接続しているため、これらのデバイスが発見され、デバイスドライバーが組み込まれる。
このうちUSBホストのデバイスドライバーは、USBに接続されているUSBハブを見つけるとそのデバイスドライバーを自分の上位に接続する。このようにして、メモリ中にデバイスドライバー(デバイスオブジェクト)のデータ構造ができていく。このとき、デバイスドライバー間の接続方法が変わることがある。その場合、組み込み作業をゼロからする必要がある。
デバイスドライバーの仕様にも、ソフトウェアのようにバージョンがつけられている。たとえば、ディスプレイ用のデバイスドライバーには、WDDM(Windows Display Driver Model)という仕様があり、DirectXの機能に応じてバージョンが上がる。簡単に言えば、DirectXに新機能が追加されると、それに応じてデバイスドライバーの仕様(WDDMバージョン)が変わり。この仕様に対応したデバイスドライバーを用意すれば、新機能が使えるようになる。
ディスプレイ以外のデバイスドライバーにも仕様がある。Windowsのデバイスドライバーには、WDM(Windows Driver Model)という基本構造があり、デバイスドライバーは大きくカーネルモードドライバーとユーザーモードドライバーに分かれる。それぞれを開発するのにKMDF、UMDFというソフトウェアを利用する。これは、Windows Driver Kitに含まれている。
Windowsのデバイスドライバーの仕様は、KMDFとUMDFのバージョンで決まる。Windowsのカーネルにより、対応できるKMDFとUMDFのバージョンが変わる。互換性のために古いバージョンのKMDF、UMDFで作成されたデバイスドライバーでも動作は可能な場合があるが、バージョンアップに伴って加わった新機能は新しい仕様に準拠して作られたデバイスドライバーでしか利用できない。
つまりWindowsカーネルのバージョンアップは、WDDMやKMDF、UMDFのバージョンアップに伴って起こる。基本的にカーネルの機能は、デバイスドライバー経由で利用することになるため、カーネルのバージョンアップとデバイスドライバー仕様のバージョンアップはほぼ同義である(もちろんバグ修正などでもバージョンアップするが……)。
フルアップデートは、Windows 7からWindows 8といったバージョンアップで利用されてきた方法だ。これらのバージョンアップでは、Windows自体が全部入れ替えになり、デバイスドライバーも全部差し替わる。カーネルもやはりバージョンが違うものになる。
その意味で言えば、これまでの春のアップデートは、こうした完全なバージョンアップだったと言える。逆にいうと、サービステクノロジーによるWindows 10のバージョンアップが導入されたのは、カーネルの大規模更新の頻度が落ちているからとも考えられる。Windows 10は、2015年に登場してから2019年にサービステクノロジーアップデートが導入されるまで、デバイスドライバーの仕様変更を含む大規模なバージョンアップを繰り返してきたが、それが落ち着きつつあると言うこともできそうだ。
この連載の記事
-
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる -
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない -
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds - この連載の一覧へ