• 締切済み

なぜNT系は安定しているの?

XP 2000 NTは安定していて、98,MEは安定していないと言う話をよく聞きます。それはどうしてなのでしょうか?

みんなの回答

  • hyde_la
  • ベストアンサー率50% (1/2)
回答No.5

NTはデザイナからして違っております。 VAXシステムなどを手がけた有名な・・・名前は忘れましたが、 所謂「天才」と呼ばれる人の手で設計されました。 システムの安定性には、システムを構築するパーツの独立性が 重要に絡んできます。つまり設計が大事なのです。 Windows95系での最も大きな問題は、 先の方が既に触れられていますが、Windows3.xから継承した 16ビットライブラリが残っていることです。 これらのライブラリにはマルチスレッド下に措ける再入に耐えない設計なのです。 このことは、Win16は協調マルチタスクOSだったことに起因する問題です。 この点もNT系とは離れています。 >NT開発は、当然ハードな仕事であったことは、容易に想像できます。 >また、プロジェクトリーダーたちの完璧主義もあり、NT開発では、何人かのプログラマが犠牲になっているそうです。 >つまり、「人柱」のおかげであるということで、私は、妙に納得しています。 >#犠牲者も出ないような、甘ったるいプロジェクトは、出来が悪い、というようなことは結構あるモンです。 認識を改めてください。 確りした設計、工数見積もりのないシステム開発など ゴミを量産するようなものです。

  • ykkw_2001
  • ベストアンサー率26% (267/1014)
回答No.4

partsさんがおっしゃるように >この手の解答は・・・長いのがたくさん来るかも・・・ と思いますので、ちょっと違った観点で・・・ 95のヒット以降、売れ筋のソフト資産を継承しパーソナルユースが前提の98,MEに対し、安定を主眼にしたプロユースを目指したプロジェクトだったようです。 NT開発は、当然ハードな仕事であったことは、容易に想像できます。 また、プロジェクトリーダーたちの完璧主義もあり、NT開発では、何人かのプログラマが犠牲になっているそうです。 つまり、「人柱」のおかげであるということで、私は、妙に納得しています。 #犠牲者も出ないような、甘ったるいプロジェクトは、出来が悪い、というようなことは結構あるモンです。

noname#1280
noname#1280
回答No.3

では大雑把にですが・・・ まず、10人の人が肩を組んで横一列に並んでいる2グループがいると思い浮かべてください。 想像出来ましたか?(^_^)3 そこでグループ単位で「10人11脚」をしたとします。 しかし、この列の中の一人がバランスを崩して倒れました。 このときに1つのグループはお互いが足をしっかり結んでいたせいで他の人もバランスを崩し そこで進行をストップしてしまいました。 たいしてもう一方のグループは肩を組んでいただけなので、一人だけが倒れ、他の人には 影響が少なく(隣の人はちょっとふらつきますよね)進行を止めることはありません。 この場合前者が「Win9x系」後者が「NT系」となります。 Win9x系は一つのプログラムが停止する(倒れる)とそれに関係する他のプログラムとの結びつき(足を結ぶ)が 強いために将棋倒しの様に停止(共倒れ)してしまいます。この状態がフリーズ(停止)なのです。 一方「NT系」は一つのプログラムが停止すると、それに関係する他のプログラムは 原因を切り離し、システム動作を続行するようになっています。 元々NT系はサーバー様に特化したOSなので『安定性重視』で作られているためです。 本当はもっとOSの細かい部分で違いはあるのですが、この辺でいかがでしょう。m(__)m

honmamon
質問者

お礼

とてもわかりやすい説明です。どうもありがとうございます。

  • yasuhide
  • ベストアンサー率33% (44/131)
回答No.2

難しい部分は下記のHPへどうぞ。 http://www.atmarkit.co.jp/fwin2k/special/win9xorwin2k/ NT系は、設計上、あるアプリケーションに異常が生じてもそれを終了させるだけでOKで、他のアプリケーションには影響しないと聞きます。

参考URL:
http://www.atmarkit.co.jp/fwin2k/special/win9xorwin2k/
  • parts
  • ベストアンサー率62% (6366/10151)
回答No.1

この手の解答は・・・長いのがたくさん来るかも・・・ そうですね。 基本的には、9xは古いコア(win3,xやDOS)の一部を継承しているため、システムがサポートするリソース容量が下位互換維持のために少ないことが一つですね。 次にそれに伴って、OSがサポートするメモリ管理能力が甘いこと。これは、16ビットコアカーネルに対応させることでメモリの解放・占有能力のバランスが悪いことがあります。(どういうことかというと、たとえばソフトを起動して、そのソフトを終了したときにメモリがすべて解放できない) そして、コア自体にも問題が・・・まず、x86(インテルアーキテクチャのCPU)及びその互換CPUには保護機構レベルが定義されています。これはRingとよばれ、0~3までのレベルがあります。 Ring0では制限モード(特権モード)で最上位の安定性を維持できます。Ring3では解放モードとなり、すべての機能を解放します。Windows9xではシステムコア<いわゆるカーネル(Kernel)、ユーザー(User)、GDI(GDI)の3つ>がこのRing3上で動作する設計なため、アプリケーション上で問題が発生したときにシステムもそのまま、それにつられて問題を起こしやすくなるという特徴があります。 9xでは、デバイスドライバ、仮想マシン(VxD)、IFSM、ConfigM、WDMドライバマネージャーがRing0で、9xコアコンポーネントやレジストリがRing3で動作します。 また、これまでのすべての問題につながりますが、9xではDOS、win16(3,x)アプリ、win32アプリのすべてが仮想マシンで動作する設計で、システムVM、win16VM、DOSVMの3つのバーチャルマシーンを利用します。そのため、どうしても16ビットやDOSのコアをどこかに残す必要が生じます。その結果、リソース容量などで制限が生じるようになるのです。 さらに、システムVM上でwin16VMソフトも共有動作する仕組みとなっています。これがさらに、32ビットシステムを束縛するため不安定要因になります。 対して、NT、2000、XPでは、基本的なコア(NTではシステムサービスといいます)をRing0までに配置しているのが特徴で、中枢のコア部分がアプリケーションの問題などを受けにくいのが特徴です。システムサービスという基幹部分の上にRing3動作し柔軟性があるwin32サブシステムが置かれ、32ビット処理を行います。 16ビットソフト(win16)はWOW→NTVDMで32ビットエミュレーション処理されサブシステムで処理されます。 32ビット(win32)は直接サブシステムに、 DOSはNTVDMを通りサブシステムエミュレートとなります。 サブシステムはソフトの動作管理をします。それとは別にOSコアを管理するシステムサービスがRing0上にあることで、アプリケーションの問題がコアに直接作用する確率をほぼ0にしています。 これが、大きな違いで、システムを独立させ、サブシステムが命令を引き受けそれをシステムサービスに送り各種デバイスやシステムの処理を制御します。 これによって、NT系OSが安定するのです。

honmamon
質問者

お礼

基本的な部分が違うのですね。

関連するQ&A