Microsoft Windows NT 4.0

**Microsoft Windows NT 4.0**（マイクロソフト ウィンドウズ NT 4.0）はシリーズ初の グラフィカルユーザインタフェース（GUI）を搭載し、対称型マルチプロセッシングに対応させるなど業務用として開発されたプリエンプティブなオペレーティングシステム (OS) である。1996年7月31日にマイクロソフトが次世代のWindows NT系のOSとしてリリースした。Windows NT 4.0は 32ビット版のWindowsでワークステーションとサーバ向けの製品があり、操作画面はWindows 95とほぼ共通化したインタフェース（UI）となった。

Windows NT 4.0の後継としてWindows 2000が2000年の2月にリリースされた。

## 概要
Windows 95と比べて非常に安定した環境が提供できる一方、見方によっては柔軟性に欠けている。 NTはシステムを使い続けても、メモリ保護とHardware Abstract Layer(HAL)の安定性は保たれるようになっている。ハードウェアへの直接的なアクセスは許可が出ず「不正な処理」としてそのアクセスを行ったアプリケーションは終了させられるが、コンピューターを再起動しなければいけない状態まで陥ることはない。ただし、そのトレードオフとして非常に多くのメモリ容量が要求される仕組みとなっている。そのため、Windows 95のような一般消費者向けの製品と区別されている。

Windows 95向けに設計されたプログラムのほぼすべてがNT 4.0で動作する一方、NT 4.0はDirectXの動作に大幅な制約があるため、3Dゲームの大半は動作しない。また、メンテナンスや管理タスクの利便性が低く、例えばハードウェアのインストールを簡素化させる、プラグアンドプレイ機能には対応していない（ただしインストール後において一部対応している）。また、基本的なDOSアプリケーションの多くは動く可能性があるものの、グラフィカルなDOSアプリケーションはハードウェアに直接アクセスしなければならない仕様であるため動作しない。

NT 4.0はAlphaとMIPS、PowerPCの各CPUアーキテクチャでは最後のメジャーリリースとなった。マイクロソフトはさまざまな方法で NT 4.0の業務ユーザを Windows 2000やそれ以降のバージョンに移行させようとしたが、それでも NT 4.0は長年にわたり使われ続けた。また、NT 4.0はWindows NT系で最後の「Windows NT」を名乗ったオペレーティングシステムである。

誕生の経緯からNT 3.xの最終バージョンとしての性格がある為、Service Packが供給されたもののNT 4.1などのマイナーバージョンアップ版は存在していない。これは普及したOSとしてはMS-DOS 5.0と同様に極めて稀である。

## 機能

NT 3.51からの目立った機能変更はWindows 95と同様のインタフェース（シェルプログラム）であるWindows Explorerを採用したこと、また付属する多くのアプリケーションもWindows 95で採用されたものであった。内部的にはNT 4.0はNT 3.51からシェルを変えただけの「Shell Update Release」(SUR)またはNT 3.52として知られている。その為、Windows 95の売りであったプラグアンドプレイには対応していない。

サーバ版のNT 4.0はウェブサーバー機能としてInternet Information Services 2.0が同梱され、FrontPage Server Extensionsに標準で対応している。

そのほか重要な特徴として、ネットワークアプリケーションで利用されるMicrosoft Transaction ServerとMicrosoft Message Queuing(MSMQ)を提供することでプロセス間通信の改善を図った。

以前のWindows NTとひとつ大きな違いを挙げると、Graphics Device Interface(GDI)がカーネルの一部となったことがある。これにより、グラフィカルユーザインタフェースの速度向上に寄与し、NT 3.51よりパフォーマンスを大きく改善させたが、その効果はグラフィックドライバをカーネルに置くことによって恒常的に効果が得られる可能性があるものであった。

DirectX はバージョン2が初期版のNT 4.0に、バージョン3が1997年中期のService Pack 3に搭載されているが、Windows 95のDirectXとは違い、Direct3DやUSB、ハードウェアアクセラレーション機能には対応していなかった。また、新たなバージョンもNT 4.0向けには提供されなかった。しかしながら非公式的ではあるもののDirectX 5が提供されていた。

初期のNT 4.0では、3.51向けに書かれた既存のデバイスドライバをユーザが使おうとすると、カーネルに対するアクセス方法が異なるため、安定性に関連する問題が多発した。

GDI をカーネルにより近い位置に変更させたのはリアルタイムのグラフィックパフォーマンスに対する NT Workstationユーザの声に応えてであったが、ハードウェアメーカーにはデバイスドライバのアップデートが大きな負担となった。とりわけグラフィック関連のハードウェアメーカーは、NT 4.0向けにドライバの開発を行ったが、GDIに関する問題が解決されるまではブルースクリーンが頻繁に発生した。

NT 4.0では新たなWindows タスク マネージャーを搭載した。以前のNTでは「タスクリスト」と呼ばれる機能があったが、実行中のアプリケーションを表示するだけのツールであり、CPUやメモリの使用状況のモニタリングするにはパフォーマンスモニターを使用する必要があった。NT 4.0のタスク マネージャーでは任意の時点でシステムが実行しているすべてのアプリケーションを簡単に、わかりやすく表示できる機能が提供されている。

## エディション
Windows NT 4.0 ServerにはBackOffice Small Business Serverの4.0または4.5が同梱されている。

### クライアント
* **Windows NT 4.0 Workstation** - 一般的なクライアントを対象としたオペレーティングシステムとして設計された。

### サーバ
* **Windows NT 4.0 Server** - 1996年にリリースされた、小規模向けの業務用サーバとして設計された。

* **Windows NT 4.0 Server Enterprise Edition** - 1997年にリリースされ、Windows ServerのEnterprise版の始まりとなったエディション。大きな処理や高トラフィックが発生するネットワーク向けに設計された。

* **Windows NT 4.0 Terminal Server Edition** - 1998年にリリースされ、ユーザーは遠隔ログインすることができる。これはターミナル サービスとしてWindows 2000及びそれ以降のServer版に、リモートデスクトップとしてWindows XP以降に搭載されているものと同じである。

### 組み込み向け

* **Windows NT 4.0 Embedded** (**NTe**と略される) - コンピュータ制御される白物家電や、自動販売機、自動現金預け払い機(ATM)やその他普通のコンピュータとは思えない装置にも向けたシステムである。標準的なNT 4.0と同じシステムを持っており、コンポーネントや依存関係のあるデータベースが入ったパッケージから開発者は独自に必要なコンポーネントを選び入れ、セットアップ用のCDやハードディスクのブートイメージを作ることができる。これはWindows XP Embeddedにも引き継がれている。2006年7月11日延長サポートが終了。


File:Windows NT4 Workstation installation CD (Ja) 2025-03-01.jpg|Windows NT 4.0 Workstation インストール CD
File:Windows NT4 Server installation CD (Ja) 2025-02-22.jpg|Windows NT 4.0 Server インストール CD


## オプションパック
オプションパックは1998年あたりに無償で同梱されたCDで、Internet Information Services 4.0や、Microsoft Transaction Server、Microsoft Message Queuingなど新しいソフトウェアが入っていた。


File:Windows NT4 Option Pack CD (Ja) 2025-03-01.jpg|Windows NT 4.0 Option Pack


## サービスパック

マイクロソフトは主なバグ修正をサービスパックで行った。NT 4.0のライフサイクル中にいくつかのサービスパック（同様にサービスロールアップパッケージとオプションパックも）が提供された。最後のサービスパックはService Pack 6aであった。

2001年の前半にSP7のリリースが計画されていたが、後にSP6aのセキュリティロールアップへ変更となり、リリースされたのが2001年7月とWindows 2000の発売から16か月後、Windows XPの発売から3か月前であった。

サービスパックとオプションパックにはさまざまな機能追加が行われた。これには新しいバージョンのInternet Information Services（バージョン3.0と4.0）、Active Server Pagesのサポート、公開キーと認証局機能、スマートカードへの対応、対称型マルチプロセッシングのスケーラビリティ、クラスタリング機能、Component Object Model(COM)のサポートなど多岐にわたっている。

Windows 2000に接続したHDDのNTFSパーティションは自動でNTFS3にバージョンアップされるため、Windows NT 4側からも該当ディスクを読み込みたい場合、NT 4 SP4以降を適用しておく必要がある。

## セキュリティ
マイクロソフトは2004年6月30日にWorkstation版、同年12月31日にServer版のサポートを終了した。その結果、MS03-010 (「RPC エンドポイント マッパーの問題により、サービス拒否の攻撃が実行される」) のような重大なセキュリティ上の欠陥も修正されないままとなった。マイクロソフトはこのセキュリティホールを修正しない理由を MS03-010 で「Windows NT 4.0 は Windows 2000 およびその後継OSとアーキテクチャが大きく異なり、この脆弱性を排除するための修正が現実的に不可能なため」と説明している。さらに、もし修正を加えたとしてもそれまで動作していたアプリケーションが引き続き動作するかどうかも保証できない、と付け加えている。2003年6月から2007年6月までにWindows 2000 Serverで見つかったセキュリティ上の問題は127件あったが、多くがWindows NT 4.0 Serverにも当てはまる内容であった。しかしながら、サポートが終了しているためにNTに対するセキュリティパッチをマイクロソフトは提供していない。

## 新しいバージョンへのアップグレード / アンインストール
Windows NT Workstation 4.0からはWindows 2000 ProfessionalかWindows XP Professional（XPへはSP5以降必要）のどちらかにのみアップグレードする事できる。Windows NT系のOSとWindows 9x系のOSはカーネルが根本的に異なる為、Windows 95、Windows 98、Windows Meにはする事ができず、Windows XPの後継であるWindows VistaやWindows 7にする事もできない。一方、Windows NT Server 4.0からはWindows 2000 ServerかWindows 2000 Advanced Serverのどちらかにのみアップグレードする事ができる。両バージョン間に互換性は無い為、Windows NT Workstation 4.0からWindows NT Server 4.0にアップグレードする事はできず、その逆もできない。Windows NT Workstation 4.0からWindows 2000 Serverにアップグレードしたり、Windows NT Server 4.0からWindows 2000 ProfessionalやWindows XP Professionalにアップグレードする事も当然できない。また、Windows NT 4.0がアップグレード元OSの場合、どのバージョンにアップグレードしても、後でそのバージョンをアンインストールしてWindows NT 4.0に戻す事はできない。

## 遺産
Windows NTはWindows 95やWindows 98よりも安定していたため、保守費用が削減できた。後継バージョンのWindows 2000では、NT系と一般消費者向けWindowsの差を縮めた。さらにWindows XPで核部分をNTのアーキテクチャに統一したことにより、それ以降のWindowsは32ビット・64ビットに関わらず全てNT系カーネルとなっている。

## 出典

## 外部リンク

* Guidebook: Windows NT 4.0 Gallery – グラフィカルユーザインタフェースについて展示保存しているサイト
* HPC:Factor Windows NT 4.0 Workstation Patches & Updates Guide
* HPC:Factor Windows NT 4.0 Server Patches & Updates Guide
* Windows NT 4.0 Reference Material