NetWare(ネットウェア)は、ノベルが開発・販売した、パーソナルコンピュータで動作するサーバ専用のネットワークオペレーティングシステム (NOS) である。

## 特徴

NetWareは、クライアントサーバモデルのシステムであり、サーバにはNetWare OSを、クライアント(MS-DOS、OS/2、Windowsなど)には専用のクライアントモジュール(NetWareクライアント)を導入して運用する。ネットワーク層のプロトコルは、独自のIPX (Internetwork Packet eXchange)/SPX (Sequenced Packet eXchange) を用いるのが基本であるが、後にTCP/IPにも対応した。

NetWare OSの大きな特徴は、完全にサーバ用途に特化していることで、Windows NTやUNIXなどの汎用オペレーティングシステム (OS) とはかなり毛色の違うOSである。サーバのNetWare OSのコンソールからはサーバの運用に必要な最低限の操作しかできず、基本的にサーバやファイルの管理はクライアントから管理ツールを用いて行う。また、ドライバやプロトコルスタックなどがすべてNetWare Loadable Module (NLM) というモジュール形式になっており、NLMの動的なロード・アンロードが自在に行えることも大きな特徴である。

アーキテクチャ的にはプリエンプションによるタイムロスが少ない、システムコールを介したラウンドロビンマルチタスクで動作している。またモジュールをカーネル空間に配置し、メモリ転送オーバーヘッドを最小にしている(例えばディスクから直接バッファにDMA転送を行い、メモリ間転送を行うことなく、クライアントにデータの読み書きを行わせる事ができる)。

ソフトウエアRAID、ジャーナリングファイルシステムを搭載しており、ファイルシステムの信頼性が高い。

なお、MS-DOS上で動くピア・ツー・ピア型のNetWare Liteもあるが、専用のサーバを置かないシステムであるため、基本的にNetWareとは別物である(NetWare LiteをNetWareクライアントとして利用する、すなわちNetWare LiteからNetWareサーバに接続することはできる)。

## 経緯

企業内LANにおけるクライアントOSがMS-DOS全盛期であった頃、NetWareが使用するIPXプロトコルがルーティング可能なプロトコルであったのに対し、Windows 3.1の時代まではマイクロソフト/IBMが提供するOSはスタンドアローンでの使用が前提で、ネットワークプロトコルはオプションであり、オプションで提供されるNetBIOSプロトコルを導入してもルーティングはできなかった。また同一ネットワーク上に255台までしか管理できなかった。のちにオプションで提供されたルーティング可能なマイクロソフトのLANマネージャと比べても、NetWareはネットワークの性能が高く、またLAN ManagerサーバはOS/2で稼働したためOS/2のリリースまで待たねばならないものであった。

IA-PCサーバ(PCベースアーキテクチャ)上で稼動するNOSの中で、NetWareは、(サーバ起動時こそDOSにてブートを行うが、その後)ブートアップされるNetWareファイルシステムのボリューム管理により、既存のボリュームを削除すること無く増やせるボリューム動的追加による拡張性の高さや、FAT16では不可能な大容量のボリューム管理、8文字+3文字のDOSのファイルネーム制限に対しNetWareファイルシステムのネームスペースは32文字まで使用可能、当時低速であったハードディスクドライブにおいて、ヘッドの移動を効率的にするエレベータアルゴリズム(en:Elevator algorithm)の採用、ディレクトリサービスの原型のひとつとも言えるアカウント管理によるアカウント単位での使用容量制限やアクセス制限付与、などサーバの機能・性能が高く、またクライアントのネットワークスタックメモリ消費量が少なかったことから、実用的なNOSとして好まれて使用された(NetWareのサーバ性能の高さの象徴として、クライアントのローカルのハードディスクドライブにアクセスするよりNetWareサーバ上のファイルにアクセスするほうが速い、ということまで言われた。これは様々なディスクアクセス高速化手法に加え、サーバのメインメモリを広大なディスクキャッシュとして使うため、クライアントのリクエスト毎にハードディスクにアクセスする必要が生じにくいため)。特にLANの普及が早かった米国ではNetWare 3.xが一時代を築いた。日本でもPC-9800シリーズをはじめとする国産アーキテクチャマシンに移植された。また、UNIX System VにNetWareのサーバ機能を統合したUnixWareもリリースされた。

## 衰退

しかし、サーバ市場でのシェアは1990年代中ごろからWindows NT Serverの台頭により大きく後退する。特に、日本ではLANの普及が遅れ、したがってNetWareもまだそれほど普及していなかったため、この傾向が強かった。

さらに、1990年代終わりになると、Linuxブームが起き、LinuxやFreeBSDなどのフリーのPC-UNIXが企業内サーバとして実用に耐えることが認知されるようになり、NetWareの退潮が決定的となった。

日本法人では当時のノベルに最大の影響力を持つ主要株主である 日本電気(NEC)出身の渡辺和也にとってはPC-9800市場の維持が重要だった。好調な 3.x に注力し NEC版 NetWare4.x と Novell Client for Windows の開発が遅れた。他のDOS/V互換機マシンメーカーは、自己責任でPC/AT互換の英語版の Client for Windows の配布を行うしか方法がなかった。Windows 95ブームの最中、Novell Inc, による増資により、国産PC企業の影響力を排除したが、NetWare 4.x 以降のノベルの日本でのマーケティングは著しく低下した。

このような状況でノベルはサーバOSの日本国内での市場争いから事実上撤退し、ディレクトリサービスに活路を求めた。NetWareで評価の高かったNetWare Directory Service (NDS) をNovell Directory Serviceと改称してWindows NT上に提供し、スケーラビリティに乏しいNTドメインモデルの置き換えを狙った。NDSはWindows NT上でも高い評価を得たものの、Windows 2000 Serverで搭載されたActive Directoryの前には存在感を示すことができなかった。

2000年代後半から2010年前半の時代になると、フリーのLinuxとSambaを使用することも容易になり、またNAS(ネットワークアタッチトストレージ)も普及したことで、ネットワーク上のファイルサーバやファイルストレージはわずかな導入コストで利用できるようになった。このためファイルサーバとしてNetWareを利用することは稀となり、ディレクトリサービスエンジンやデータベースエンジン、拠点間データ交換(レプリケーター)、NetWareアプリケーション用OSとして使われている。

## その後

Novell が ドイツの SUSE Linux を買収したことにより、NetWare の eDirectory を始めとする、NSS ファイルシステム、NCP プロトコルなどの、各機能が SUSE Linux に移植された。この製品は Novell Open Enterprise Server (OES) として発表された。OES2 までは、パッケージとして NetWare版(6.5) と Linux 版が同梱されていた。同一ベンダーという事もありプロプラエタリな NetWare 6.5 はXen (仮想化ソフトウェア)により最新のハードウェアであっても準仮想化ドライバが利用できる。NetWare 版 OES2 は 2010年3月に、NetWare 6.5sp8 で開発が終了し 2017年12月にセルフサポートの提供も終了し、IPX/SPX と一緒にその役割を終える。

## プロトコル

NetWareでは、ネットワーク層のプロトコルとしてIPX/SPX、アプリケーション層のプロトコルとしてNCP (NetWare Core Protocol) を用いる。

IPX/SPXプロトコルは、NetBEUIと異なりルーティング可能である上に、広いアドレス空間やアドレスの自動設定など後のIPv6とも共通する利点をもち、LANのプロトコルとして使い勝手のよいものだった。とくにNetWareの全盛期には、企業内LANのプロトコルといえばIPX/SPX(あるいはNetBEUI)であった(このことは、Windows 95でデフォルトでインストールされるプロトコルがIPX/SPXとNetBEUIであり、TCP/IPではないことからもうかがい知れる)。

しかし、1990年代中ごろからのインターネットの急速な普及により、LANにおいてもTCP/IPを使用するいわゆるイントラネットが普及し、TCP/IPとIPX/SPXの二本立てのネットワーク管理が嫌われるようになった。そこでNetWareでもIPへの対応を進め、IPによるIPX/SPXのカプセル化を経て、NetWare 5ではネイティブにIPベースで動作するPure IP化に至ったが、NetWareの退潮傾向を押しとどめることはできなかった。