-
Notifications
You must be signed in to change notification settings - Fork 0
MS_WindowsOSDesignPhilosophy
-
TOP > インフラストラクチャ > Windows
- Windows OSの設計思想
- Windows OSの基礎的トピック
- Windows OSの機能と役割
- Windowsの系統とバージョン
- Windows OSの設計思想
- Linuxと対比してみると面白いかも。
Windows OSのオペレーションはGUI中心であり、
- 初心者に対してフレンドリであり、
- 且つアドホックな操作に強い
と言う特性があります。
これは、Windows OSが元々クライアントOSとして設計されたためと考えます。
- この設計指針によって、WindowsはクライアントOSのトップシェアを獲得した。
- 故にWindows OSは、ワークステーションには向いてない(そもそもそう作られてない)(リモートデスクトップサービス(旧ターミナルサービス):
MS_RemoteDesktopServices.md)
逆にインタラクティブ・シェル、シェル・スクリプト的な役割を担う CMD、BATの機能は弱く、
後年、WSH(VBScript(MS_VBS.md)、JScript)や PowerShell、WSL(Windows Subsystem for Linux: MS_WSL.md)、Windows Terminalが実装されました。
しかし、時代は流れ、Windows、Linux等の
PCサーバが企業の基幹システムに食い込むようになってきました。
- Linuxは、元々企業の基幹システムで利用されていたUNIX系OS
(UNIXの仕様に似ている、UNIX参考にして作られた)であるため、
PCサーバだからと言ってインフラSEに対する大きな影響はありませんでしたが、 - Windowsは、元々クライアントOSとして設計されており、使い勝手が異なるようで、
Linuxをメインに扱うインフラSEやプログラマからは評判が悪いように思います。
エンドユーザ向け。
- オールインワンで高機能
- クライアントOS自体でサーバOSまでサポート。
プロ仕様。
- POSIXは、カーネルに対するC言語用のインターフェイスという感じで低レイヤ
- Linux上での開発は、必要な開発用のライブラリを自分で探してもってくる文化。
Active Directoryと密に連携している点が大きく異なると思います。
-
ドメイン サービス (AD DS)
- ケルベロス認証
- , etc.
- ADFS(フェデレーション サービス (AD FS))を使用したクレームベース認証
上記に関連して、アカウント系が違います。
GUI経由の設定により、設定値が何処に反映されるかもわからないため、
システム設定の自動化、差分確認、システムの複製、バックアップ・リストア
などがUNIX/Linux系のOSと比べ、対応し難いと言う点が上げられます。
- UNIX/Linux系OSでのOS、サービス、アプリケーションの設定は
/etc、/home/user/以下のファイルに保存され、設定の仕様も、manページに記載されている。 - これに対し、Windows OSでのOS、サービス、アプリケーションの設定は
基本的にレジストリに保存されるが、設定はレジストリだけとは限らないこと、
設定仕様のマニュアル化、レジストリ直接編集がサポートされていないケースがある。
このため、Microsoftも、
- コンソール・アプリケーション
- WMI
- PowerShell
の等のCUIを用意(整備)し続けていますが、
- 用意されていないものがあったり、
- CUIを探すのに苦労するものがあったり、
...などが、一部あるようです。
なお、Windows OSは、OSバージョンアップに伴い、
設定仕様(保存先)も変更されることが多いですが、
CUIのインターフェイス変更は比較的少なく安定しているようです。
補足(最新化): 現在は、Windows 側でも構成管理を宣言的に扱う仕組みが整備されている。
- PowerShell DSC / Microsoft Intune の構成プロファイル
- Windows Admin Center(GUI 操作を PowerShell に落とし込める)
- コンテナ(Windows コンテナ)による「設定ごと持ち運ぶ」アプローチ
それでもレジストリ中心という構造自体は変わっていないため、本ページの指摘は概ね有効。
(Windows 自動パラメタとチューニング: MS_WindowsAutoTuning.md)
設定方法の違いによって、
- システム設定の自動化
- システム設定の差分確認
- システムの複製
- システムのバックアップ・リストア
に違いが生まれます。
- 自動化
- 差分確認
共に、CUIを使用して設定値を設定・取得する必要があります。
レジストリ直接編集がサポートされていないケースがある。
過去にレジストリ・ダンプによる設定の差分確認も試みてみましたが、
半年運用したら、レジストリDUMPのDIFFは8割程度が異なる結果となりました。
レジストリには、自動パラメタなどの情報も格納されるため、
レジストリキーで範囲を絞らないDUMP&DIFFによる差分確認は困難です。
- Windowsでは Sysprep が必要です。
- Linuxではマニュアル操作になります。
-
- コンピュータ名の再生成
- 一意なSIDの再生成
- カスタムドライバキャッシュデータベースの生成
- mini-setup または OOBE (Out of Box Experience)の再実行
-
蒼の王座 » AzureのVirtual MachineでLinuxの調査と検証メモ
Linuxのイメージを作成するには、Windowsの Sysprep 的な処理を実行する必要があります。
Linuxでは、Windows Azure Linux Agentが、その機能を提供しています。
レジストリ、その他のストレージに保存される設定がマニュアルに記載されていないため、
/etc、/home/user/ 以下のバックアップ・リストアで済むUNIX/Linux系OSと大きく異なります。
ただし、アプリケーションによっては、/etc、/home/user/ 以下以外の
バックアップ・リストアが必要になるケースもあると考えられるので、
その辺りは、バックアップ対象アプリケーションの仕組みを理解した上で
バックアップ・リストア設計を行う必要があるということに大きな違いは無いと考えます。
- IIS(
MS_IIS.md)で言えば、メタベース- MetaBase.xml
- IIS7からapplicationHost.configに変更
- SQL Server(
MS_SQLServer.md)で言えば、システム・データベース- master データベース
- msdb データベース
- model データベース
- Resource データベース
- tempdb データベース
-
Active Directoryで言えば
- NTDS
- SYSVOL
- .NETで言えば、
*.configファイル(.NET config:MS_DotNetConfig.md)- Machine.config
- Web.config
-
*.exe.config(app.config)
-
Windows から Linux へのロードマップ 第 8 回 バックアップと復元 - IBM developerWorks
Linux はファイルベースのシステムなので、バックアップしたり復元したりするのに非常に有利です。 Windows システムではレジストリが非常にシステム依存になっているので、 設定やソフトウェアのインストールは単純にシステム上にファイルを落とせば良いというものではありません。 (後略)
-
Windows OSは、Level 200 の利用者をターゲットにOSをコモディティ化しているため、
日式メーカ企業の様な、ミッション・クリティカルなシステムに対象を絞った
ニッチなサポートがあれば利用可能と思われる範囲内の利用方法であっても、
(サポートポリシーに反するため)Microsoftからはサポートを得られないケースがあります。 -
平たく言って、
Microsoftのサポートポリシーに反する使い方はサポートされない。
と言うことになります。
- レジストリの直接編集
- NAT 経由での Active Directory の使用。
- NAT 経由での Active Directory のサポート範囲について(KB978772)
- SID が重複した状態での使用。
- .etc
-
Microsoft Tech·Ed Japan 2010 - 見どころとセッション レベル
- Level 200
受講いただいた方がテーマの製品やテクノロジの全貌、
備わった機能を把握し、提案ができるようになることを目指したレベル - Level 400
受講いただいた方がプロジェクト リーダーやテクニカル リードとしてテーマの製品やテクノロジの
活用の勘所をプロジェクト メンバーや部下、外部発注先に指導できることを目指したレベル
- Level 200
-
Sysprep のサポート
特定のサーバーの役割が構成された Windows Server 2008 R2 インストールに対し、
/generalizeオプションを使用して sysprep コマンドを実行すると、
イメージングおよび展開の後にそれらのサーバの役割が機能しなくなる可能性が
あります(/generalizeオプションにより、SID重複解消とドライバ削除が可能)。
移行メモ(誤記): 原文の「SDI重複解消」は「SID 重複解消」の誤記と解して整えた。
- 「Linuxの真実、Windowsの真実」は虚実。 - @ITクラブ Cafe
- Linuxの真実、Windowsの真実(全11回)
- イントロダクション:LinuxとWindows。その本当のコストとリスクを評価するために
- 第1回:ファイル/プリント・サーバの基本機能比較
- 第2回:ネットワーク管理に不可欠なディレクトリ・サービス
- 第3回:Linuxファイル・サーバの本当のTCO
- 第4回:LinuxはWindowsより安全か?
- 第5回:Office互換ソフトの実力とリスク
- 第6回:Webサーバ・プラットフォームとしてのLinuxとWindows
- 第7回:WebホスティングはUNIX/Linuxの独壇場か?
- 第8回:Linux+フリーJavaは安いのか?
- 第9回:可用性、スケーラビリティを備えたシステム開発
- 第10・11回:座談会:SIerから見たLinuxとWindows(前後編)
Tags: Windows, Linux
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。