狠狠撸

狠狠撸Share a Scribd company logo
深入   Windows Server 2008  系統核心 曹祖聖 台灣微軟資深講師 [email_address] http://teacher.allok.com.tw MCP, MCP+I, MCSA, MCSE,MCDBA, MCAD, MCSD, MCT, MVP
大綱 硬體平台支援 行程與執行序 I/O  與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
大綱 硬體平台支援 行程與執行序 I/O  與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
核心的重大改變 Windows Server 2008  同時有  32  位元與  64  位元版本 64  位元版本包含了 : x64 (AMD64, Intel 64)  i64 (Itanium) 這也是最後一版的  32  位元  Windows Server  作業系統 Windows Server 2008 R2  只會有  64  位元版  ! 在  Windows Server 2008  中,單處理器核心與多處理器核心已經沒有差異 多處理器伺服器已經成為主流
Dynamic Partitioning 在過去,伺服器硬體的升級或維護,往往需要重新開機,造成停機時間增加 Windows Server 2008  透過硬體支援,減少因為硬體升級或維護造成的重新開機的次數 Hot plug PCI Express 在   Windows Server 2003  上可以透過硬體廠商的工具來進行熱插拔 記憶體熱插拔 處理器熱插拔
硬體錯誤報告 在過去,硬體的錯誤並沒有一個標準的管道進行回報 沒有任何硬體錯誤回報的標準 核心中並沒有一套收集與回報硬體錯誤的機制 Windows Server 2008  內建硬體錯誤報架構   Windows Hardware Error Architecture (WHEA) 透過外掛支援各類型的硬體錯誤標準 所有錯類型使用一致的錯誤格式 方便查詢錯誤來源
Windows  虛擬化技術 Windows Hypervisor Windows  平台中內建的虛擬技術 Virtualization Platform and Management Management tools VM 2 “Child” VM 1 “Parent” VM 2 “Child”
大綱 硬體平台支援 行程與執行序 I/O  與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
時間統計 在過去,使用內部的計時器來計算  CPU  時間 10 - 15 ms 執行序的執行時間並不是完全公平 執行序最少會取得幾乎不到一個回合的時間, 最多三個回合的時間 執行序執行過程中被中斷的時間,仍然算到該執行序的時間 閒置 T1 T2 T1 & T2  等待執行 ;  T1  開始執行 時間片斷間隔
Time Stamp Counter (TSC) Windows Server 2008  會讀取  Time Stamp Counter (TSC) ,做為切換執行序的依據 執行序真正消耗的  CPU  週期才會被計算 被中斷的時間不算 允許更為精確的時間分配與計算 執行序最少會取得一個回合的時間,最多一個回合的時間  + 1 tick 更為精確的計算執行序真正執行的時間 閒置 T1 T1 時間片斷間隔 T2
大綱 硬體平台支援 行程與執行序 I/O  與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
I/O Completion Port 在過去,每一個  I/O  的完成,都會回傳資訊給發出  I/O  要求的執行序,造成過多的  context switch 會造成延遲狀態  ( 如果執行序無法立即處理回應 ) I/O completion ports  允許執行序更有效率的等待多重  I/O  要求的完成 已完成的  I/O  動作會佇列在  completion port 可一次回傳多個  I/O  的結果  Windows Server 2008  只有在執行序去取得  completion port  時,才會做  context switch 減少  context switch  的次數,增加效能
I/O  優先權 背景的  I/O ( 例如 : 病毒掃瞄、磁碟重組、… )  會造成前景的應用程式反應變慢 在過去,只能在執行序的  CPU  優先權上做調整 Windows Server 2008  提供兩類的  I/O  優先權設定 : I/O  優先權 I/O  頻寬保留 I/O  優先權的功能在  ATAPI  和  USB  儲存裝置驅動程式中實作
I/O  優先權 I/O  優先權是基於發出  I/O  要求的執行序本身的優先權,也可以明確指定  I/O  的優先權 五個等級 : Critical, High, Normal, Low, Very Low High  和  Low  這兩個等級沒有實作 Critical  只被用於記憶體管理員 儲存在  I/O Request Packet (IRP)  的欄位中 行程或執行序可以透過呼叫  API  來降低  I/O  優先權 Windows Server 2008  背景工作會使用到,例如索引、 Windows Defender  掃瞄
實作  I/O  優先權 儲存裝置的驅 動程式必須 “誠實” 設定  I/O  優先權 在驅動程式等級   (IDE, SCSI)  實作   idle I/O priority  ,每秒鐘送出一次的  I/O  要求 其它等級   (hierarchy priority)  由   ATA  與   USB  驅動程式管理 User mode Kernel mode Idle I/O Priority Queue Hierarchy Priority Queue 應用程式 儲存裝置 檔案系統 磁碟分割 裝置驅動程式 Command Port
支援  I/O  取消功能 在過去, I/O  的開啟是不能取消的 例如,打開開啟舊檔的對話方塊來瀏覽網路共用資料夾,但是網路連線中斷,對話方塊會停住不動,直到網路逾時為止 在  Windows Server 2008  中, I/O  的開啟與其它同步的  I/O  動作都是可以取消的 Windows Server 2008  的檔案開啟與儲存對話方塊會實作這個功能 伺服器端應用程式可以針對  I/O  實作取消功能,減少前端的逾時等待時間
自我修復   NTFS  檔案系統 在過去, NTFS  發生問題時,必須透過執行  chkdsk  來進行檢查與修復,但是常常需要重新開機 在  Windows Server 2008  中,當系統偵測到有  NTFS  檔案或資料夾發生問題時, NTFS  工作執行序  (worker thread)  會在背景進行像  chkdsk  一樣的修復動作 不嚴重的磁碟問題在背景就處理掉了,根本不會影響使用者 只有發生問題的檔案或資料夾無法存取  ( 在修復過程中 ) ,不像以前的系統在修復時會將整個磁碟鎖住 不需要重新開機
檔案符號連結 在過去, NTFS  只支援目錄符號連結 Windows Vista  的  NTFS  磁碟支援檔案符號連結 類似  UNIX  系統中  ln –s  所做的動作 有點像磁碟分割區的掛載 使用  CreateSymbolicLink API  或  mklink.exe  工具 需要 “ Create Symbolic Links”  權限 mklink.exe  也可以建立永久連結  (hard link)
SMB2  通訊協定 SMB  是過去  Windows  網路中用來存取遠端檔案的通訊協定 無法整合新的  NTFS  功能 並不是設計用來傳輸大型的遠端檔案 SMB2  內建在  Windows Vista  與  Windows Server 2008 支援   NTFS  用戶端符號連結 所有操作可以批次處理,減少   client/server  之間的來回 支援更大的暫存大小,比以前增加   30  到  40  倍的傳輸量
mklink.exe
大綱 硬體平台支援 行程與執行序 I/O  與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
動態的系統虛擬位址空間 在過去,系統虛擬位址空間區分成固定的區域 未分頁集區、已分頁集區、系統分頁表 在  32  位元  Windows Server 2008  中,系統記憶體空間可以視需要指派 允許更大的未分頁、已分頁、 Session  集區 支援更大的終端機伺服器、更大的堆積記憶體 在  32  位元系統上,仍然不能使用超過  2GB  的空間 系統虛擬記憶體空間的改進 : 核心分頁表是動態配置,而不再是開機時配置 減少核心堆疊的使用,以允許在終端機伺服器上有更多的使用者 堆積區可以動態擴展大小,而不需要重新開機 在  64  位元的  Windows Server 2008  中,各區域的記憶體位址空間都設定到最大
記憶體效能與擴展性 磁碟使用更有效率 讀取次數減少、讀取量增大  ( 分頁錯誤、系統快取預讀功能 ) 不再有  64 KB  的限制,可以做大區塊的  I/O  存取 分頁檔可以使用更大的叢集大小 I/O  次數減少 減少分頁檔碎裂的狀況 更有效率的使用  Translation Lookaside Buffer (TLB) 支援  Superfetch?  功能 支援  NUMA
非統一記憶體存取  (NUMA ) 使用  SMP  時,所有記憶體存取都會公佈到相同共用記憶體匯流排 這適合只有少數幾個  CPU  的時候使用 當有幾十個甚至幾百個  CPU  爭相存取共用記憶體匯流排時,效率會很差 愈來愈多的應用程式使用   NUMA  Non-Uniform Memory Access (NUMA)
非統一記憶體存取  (NUMA ) 硬體的趨勢已走向可提供多個系統匯流排 而每一個匯流排都可服務一小組處理器  ( 節點 ) 每一節點都有自己的記憶體,或自己的  I/O  通道 I/O  系統直接將中斷繫結到指定的節點 存取本機記憶體會比取與其他  NUMA  節點相關聯的記憶體更快 與目前執行之執行緒的  CPU  位於相同節點上的記憶體  ? 本機記憶體 不屬於目前執行之執行緒節點的記憶體  ?  外部記憶體  ( 遠端端記憶體 )
非統一記憶體存取  (NUMA ) Windows Server 2008 每一個節點在  nonpaged pool  中使用互相不重覆的位址 每一個節點都可以引用所有的分頁 系統  PTE (Page Table Entry) ,系快取的分頁表配置會平均分散到各個節點 硬體與軟體  NUMA 支援新的  NUMA APIs ,允許應用程式指定節點數量  ( 記憶體配置、檔案對應 ) I/O  系統直接將中斷繫結到指定的節點 http://technet.microsoft.com/zh-tw/library/ms178144.aspx http://technet.microsoft.com/zh-tw/library/ms345345.aspx
NUMA  記憶體配置 執行緒   T  被安排到另一個節點,但是記憶體卻是指到指定的節點,這會產生軟分頁錯誤  (soft page fault) T 節點  #1 節點  #2 CPU 0 CPU 3 CPU 1 CPU 2 CPU 4 CPU 7 CPU 5 CPU 6 理想的  CPU 記憶體 理想的節點 記憶體
大綱 硬體平台支援 行程與執行序 I/O  與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
新的開機環境 – 支援  UEFI x64 Windows Server 2008  支援透過  UEFI 2.0  開機 IA-64  同時支援  EFI 1.1  和  UEFI 2.0 使用  Boot Configuration Database (BCD)  取代  boot.ini 抽象的韌體  統一不同作業系統的安裝 使用  Unicode  字串 BCD  儲存在系統機碼中 二進位格式 ootCD 載入  HKLMCD00000000 機碼受到安全性保護
Session  平行建立 在過去, session  的建立是依序進行的 Session Manager (SMSS)  為每個  session  建立  Winlogon  和  Csrss  行程 是  Terminal Services  的瓶頸所在 Winlogon  建立  Local  安全性  Authority (Lsass.exe)  以及  Service Control Manager (Services.exe) Windows Server 2008: SMSS  會建立新的執行個體來初始化每一個  session 支援平行  session  建立的功能 最小的平行  session  啟動是  4  個 最大值是  CPU  的數目 Session 0  的  SMSS  執行  Wininit.exe ( 新元件 ) Wininit  負責啟動原本  Winlogon  要啟動的服務、 Lsass 、… 也負責啟動  Local Session Manager (Lsm.exe) Session 1-n  的  SMSS  負責建立 該  session  的  csrss.exe  和  winlogon.exe
完整的服務關閉 在過去,服務沒有任何方式可以延長關機的時間 在固定逾時時間  ( 預設是  20  秒 )  之後, SCM  就會被終止執行,然後系統就當機  ( 當服務還在執行時 )  對於需要將快取資料寫入磁碟的服務來說是一個大問題 Windows Server 2008  的服務可以要求關機通知,並且要求足夠的時間來關機 SCM  會通知這些服務 SCM  接下來會等待這些服務進入停止狀態 預設逾時時間是  3  分鐘 服務可以進一步延長時間 在所有  pre-shutdown  服務都停止之後,剩下的服務就照原本  Windows XP  的方式進行關機
服務關閉的順序 在過去,服務無法指定關閉的順序 但是有些服務有關閉的順序問題 必須自行解決 Windows Server 2008  的服務可以指定關閉順序 使用  SERVICE_ACCEPT_PRESHUTDOWN  來呼叫  SetServiceStatus API 服務的名稱必須列在 : HKLMystemurrentControlSetontrolPreShutdownOrder 例如 : Wuauserv (Windows Update Service)  順序高於  Gpsvc (Group Policy Client Service) WindowsUpdate  更新完成後,才會套用群組原則
Session 0 Isolation Session 0 WinInit RCM LSA Group Policy Profiles SCM Other Sessions WinLogon LogonUI Credential Provider 1 Credential Provider 2 Credential Provider 3
服務延遲啟動  - DelayAutoStart
大綱 硬體平台支援 行程與執行序 I/O  與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
Kernel Transaction Manager (KTM) 在過去,應用程式很難修復因為修改檔案或系統機碼所造成的錯誤 Windows Server 2008  實作了核心交易管理員  (KTM) 所有的變更都可以透過交易來控制 其它廠商可以進一步延伸這個功能到其它資源管理員上 核心交易管理員會負責協調應用程式與資源管理員的交易 系統機碼與  NTFS  都支援這項功能 Windows Update  和  System Protection  都使用這項功能 透過  DTC  與其它資料來源進行交易處理 Windows Server 2003 R2  開始就支援  Common Log File System (Clfs.sys)  提供有效率的交易記錄
Windows  錯誤報告 在過去,例外處理是在產生例外的行程中執行 如果行程的堆疊嚴重損毀,就會死的不明不白 Windows Server 2008  會將例外訊息交由  Windows Error Reporting (WER)  服務來處理 WER  啟動  Werfault.exe ( 取代之前的  Dwwin.exe) 所有行程  crash  都能夠完整記錄並回報
Improved Crash Dump Support 在過去,在系統啓動早期發生的  crash  並不不能產生  crash dump  檔 Crash dumps  被寫到分頁檔 可是在核心初始化之後, Smss  行程尚未開啓分頁檔 現在,分頁檔會先開啓,然後再做驅動程式初始化 因此驅動程式造成的  crash  是可以被  dump  下來的 記憶體傾印 過去 :  完整 現在 :  核心
磁碟陰影複製 在過去 無法還原檔案修改或意外刪除 系統還原只能保護已知的系統檔案或機碼 Windows Server 2008  使用磁碟陰影複製來做系統還原與以前的版本 過去只能使用在共用資料夾上 統一資料檔案與系統檔案的保護機制 使用  KTM  來維護跨磁碟快照的一致性 快照每天產生一份,或者在建立系統還原點時也會產生一份快照
硬體診斷 避免因為記憶體的不穩定所造成的當機 尋找並標示出有問題的記憶體分頁 Windows Memory Diagnostics Microsoft Online Crash Analysis 減少因磁碟損毀所造成的資料遺失 把原本不可預期的磁碟錯誤變成可預先規劃的 Windows Disk Diagnostics 記憶體診斷 磁碟錯誤診斷
記憶體診斷 以前的版本
大綱 硬體平台支援 行程與執行序 I/O  與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
Address Space Load Randomization (ASLR) 在過去 核心、 HAL 、執行檔和  DLLs  檔會被載入固定的記憶體位置 緩衝區溢位的攻擊就是因為系統功能的位址是固定的,所以能夠成功 Windows Server 2008  核心的功能模組會載入到隨機的記憶體位址  (1/256) 作業系統檔案現在包含了重新定位的資訊 每次載入時的記憶體位址都不一樣 使用者堆疊的位址一樣是隨機的 驅動程式、核心、 HAL  的位址也是隨機的 Kernel32 NTDLL User32 Exe Win2003 #1 Kernel32 NTDLL User32 Exe Win2003 #2 Kernel32 NTDLL User32 Exe Win2008 #1 Kernel32 NTDLL User32 Exe Win2008 #2
Windows Server 2008  服務安全強化 減少高風險層的大小 將服務分區段 層加安全防護層次 核心 D D D S S D D S S 核心驅動程式 系統服務 低權限服務 使用者模式驅動程式 服務安全強化 使用者 帳戶控制 使用者權限 使用者帳戶控制 低權限服務 管理權限 系統服務 D D S S
服務安全性加強 大部份的服務都會被賦予一個  SID SID  預設是停用的,當服務 啟動時才會被啟用 防火牆原則中可以使用服務 的  SID  來進行過濾 用來設定物件的寫入權限 服務的權限設定 在服務的系統機碼設定中 設定  RequiredPrivileges   值 (MULTI_SZ) 服務安全強化 主動式保護 檔案系統 系統機碼 網路
Mandatory Integrity Control (MIC) Token  中有  Mandatory  Integrity Level  ( IL ) SIDs Low (100):  保護模式下的  IE Medium (200): LUA  行程 High (300):  提升權限後的行程 System (400):  系統行程 物件的  ILs  儲存在  SACL  中的  IL ACE 行程、執行序、 Access Token  中一定有  IL ACE 檔案或機碼如果沒有  IL ACE , IL = Medium 由  IL=Medium ( 含 ) 以上的行程所建立的物件, IL = Medium 由  IL=Low  的行程  ( 例如保護模式  IE)  所建立的物件, IL = Low
IL  存取檢查 IL  會在  DACL  之前檢查 執行序的  IL  一定要大於等於物件的  IL ,才可以修改該物件 執行序可以開啟任何物件進行讀取 : 如果該物件不是行程 或者是  IL  等於或小於自已的  IL Windows  子系統也遵守  IL  規則 只有查詢的訊息才可以從  LUA  行程送到提升權限的行程
服務權限控管 - sc  指令 - RequiredPrivileges
總結 Windows Server 2008  核心在效能、擴展性、穩定性與安全性上都有許多改善 更公平的執行緒執行 更快速有效的  I/O  機制 更大、更有效率的記憶體管理 自我錯誤偵測與修復 更加安全系統核心 作業系統直接支援虛擬化機制
在何处取得   TechNet   相關資訊? 訂閱  TechNet   資訊技術人快訊   http://www.microsoft.com/taiwan/technet/flash/ 訂閱  TechNet Plus http://www.microsoft.com/taiwan/technet/ 參加  TechNet   的活 動 http://www.microsoft.com/taiwan/technet/ 下載  TechNet  研討會簡報與錄影檔 http://www.microsoft.com/taiwan/technet/webcast/
?

More Related Content

0513 深入Windows Server 2008 系統核心

  • 1. 深入 Windows Server 2008 系統核心 曹祖聖 台灣微軟資深講師 [email_address] http://teacher.allok.com.tw MCP, MCP+I, MCSA, MCSE,MCDBA, MCAD, MCSD, MCT, MVP
  • 2. 大綱 硬體平台支援 行程與執行序 I/O 與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
  • 3. 大綱 硬體平台支援 行程與執行序 I/O 與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
  • 4. 核心的重大改變 Windows Server 2008 同時有 32 位元與 64 位元版本 64 位元版本包含了 : x64 (AMD64, Intel 64) i64 (Itanium) 這也是最後一版的 32 位元 Windows Server 作業系統 Windows Server 2008 R2 只會有 64 位元版 ! 在 Windows Server 2008 中,單處理器核心與多處理器核心已經沒有差異 多處理器伺服器已經成為主流
  • 5. Dynamic Partitioning 在過去,伺服器硬體的升級或維護,往往需要重新開機,造成停機時間增加 Windows Server 2008 透過硬體支援,減少因為硬體升級或維護造成的重新開機的次數 Hot plug PCI Express 在 Windows Server 2003 上可以透過硬體廠商的工具來進行熱插拔 記憶體熱插拔 處理器熱插拔
  • 6. 硬體錯誤報告 在過去,硬體的錯誤並沒有一個標準的管道進行回報 沒有任何硬體錯誤回報的標準 核心中並沒有一套收集與回報硬體錯誤的機制 Windows Server 2008 內建硬體錯誤報架構 Windows Hardware Error Architecture (WHEA) 透過外掛支援各類型的硬體錯誤標準 所有錯類型使用一致的錯誤格式 方便查詢錯誤來源
  • 7. Windows 虛擬化技術 Windows Hypervisor Windows 平台中內建的虛擬技術 Virtualization Platform and Management Management tools VM 2 “Child” VM 1 “Parent” VM 2 “Child”
  • 8. 大綱 硬體平台支援 行程與執行序 I/O 與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
  • 9. 時間統計 在過去,使用內部的計時器來計算 CPU 時間 10 - 15 ms 執行序的執行時間並不是完全公平 執行序最少會取得幾乎不到一個回合的時間, 最多三個回合的時間 執行序執行過程中被中斷的時間,仍然算到該執行序的時間 閒置 T1 T2 T1 & T2 等待執行 ; T1 開始執行 時間片斷間隔
  • 10. Time Stamp Counter (TSC) Windows Server 2008 會讀取 Time Stamp Counter (TSC) ,做為切換執行序的依據 執行序真正消耗的 CPU 週期才會被計算 被中斷的時間不算 允許更為精確的時間分配與計算 執行序最少會取得一個回合的時間,最多一個回合的時間 + 1 tick 更為精確的計算執行序真正執行的時間 閒置 T1 T1 時間片斷間隔 T2
  • 11. 大綱 硬體平台支援 行程與執行序 I/O 與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
  • 12. I/O Completion Port 在過去,每一個 I/O 的完成,都會回傳資訊給發出 I/O 要求的執行序,造成過多的 context switch 會造成延遲狀態 ( 如果執行序無法立即處理回應 ) I/O completion ports 允許執行序更有效率的等待多重 I/O 要求的完成 已完成的 I/O 動作會佇列在 completion port 可一次回傳多個 I/O 的結果 Windows Server 2008 只有在執行序去取得 completion port 時,才會做 context switch 減少 context switch 的次數,增加效能
  • 13. I/O 優先權 背景的 I/O ( 例如 : 病毒掃瞄、磁碟重組、… ) 會造成前景的應用程式反應變慢 在過去,只能在執行序的 CPU 優先權上做調整 Windows Server 2008 提供兩類的 I/O 優先權設定 : I/O 優先權 I/O 頻寬保留 I/O 優先權的功能在 ATAPI 和 USB 儲存裝置驅動程式中實作
  • 14. I/O 優先權 I/O 優先權是基於發出 I/O 要求的執行序本身的優先權,也可以明確指定 I/O 的優先權 五個等級 : Critical, High, Normal, Low, Very Low High 和 Low 這兩個等級沒有實作 Critical 只被用於記憶體管理員 儲存在 I/O Request Packet (IRP) 的欄位中 行程或執行序可以透過呼叫 API 來降低 I/O 優先權 Windows Server 2008 背景工作會使用到,例如索引、 Windows Defender 掃瞄
  • 15. 實作 I/O 優先權 儲存裝置的驅 動程式必須 “誠實” 設定 I/O 優先權 在驅動程式等級 (IDE, SCSI) 實作 idle I/O priority ,每秒鐘送出一次的 I/O 要求 其它等級 (hierarchy priority) 由 ATA 與 USB 驅動程式管理 User mode Kernel mode Idle I/O Priority Queue Hierarchy Priority Queue 應用程式 儲存裝置 檔案系統 磁碟分割 裝置驅動程式 Command Port
  • 16. 支援 I/O 取消功能 在過去, I/O 的開啟是不能取消的 例如,打開開啟舊檔的對話方塊來瀏覽網路共用資料夾,但是網路連線中斷,對話方塊會停住不動,直到網路逾時為止 在 Windows Server 2008 中, I/O 的開啟與其它同步的 I/O 動作都是可以取消的 Windows Server 2008 的檔案開啟與儲存對話方塊會實作這個功能 伺服器端應用程式可以針對 I/O 實作取消功能,減少前端的逾時等待時間
  • 17. 自我修復 NTFS 檔案系統 在過去, NTFS 發生問題時,必須透過執行 chkdsk 來進行檢查與修復,但是常常需要重新開機 在 Windows Server 2008 中,當系統偵測到有 NTFS 檔案或資料夾發生問題時, NTFS 工作執行序 (worker thread) 會在背景進行像 chkdsk 一樣的修復動作 不嚴重的磁碟問題在背景就處理掉了,根本不會影響使用者 只有發生問題的檔案或資料夾無法存取 ( 在修復過程中 ) ,不像以前的系統在修復時會將整個磁碟鎖住 不需要重新開機
  • 18. 檔案符號連結 在過去, NTFS 只支援目錄符號連結 Windows Vista 的 NTFS 磁碟支援檔案符號連結 類似 UNIX 系統中 ln –s 所做的動作 有點像磁碟分割區的掛載 使用 CreateSymbolicLink API 或 mklink.exe 工具 需要 “ Create Symbolic Links” 權限 mklink.exe 也可以建立永久連結 (hard link)
  • 19. SMB2 通訊協定 SMB 是過去 Windows 網路中用來存取遠端檔案的通訊協定 無法整合新的 NTFS 功能 並不是設計用來傳輸大型的遠端檔案 SMB2 內建在 Windows Vista 與 Windows Server 2008 支援 NTFS 用戶端符號連結 所有操作可以批次處理,減少 client/server 之間的來回 支援更大的暫存大小,比以前增加 30 到 40 倍的傳輸量
  • 21. 大綱 硬體平台支援 行程與執行序 I/O 與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
  • 22. 動態的系統虛擬位址空間 在過去,系統虛擬位址空間區分成固定的區域 未分頁集區、已分頁集區、系統分頁表 在 32 位元 Windows Server 2008 中,系統記憶體空間可以視需要指派 允許更大的未分頁、已分頁、 Session 集區 支援更大的終端機伺服器、更大的堆積記憶體 在 32 位元系統上,仍然不能使用超過 2GB 的空間 系統虛擬記憶體空間的改進 : 核心分頁表是動態配置,而不再是開機時配置 減少核心堆疊的使用,以允許在終端機伺服器上有更多的使用者 堆積區可以動態擴展大小,而不需要重新開機 在 64 位元的 Windows Server 2008 中,各區域的記憶體位址空間都設定到最大
  • 23. 記憶體效能與擴展性 磁碟使用更有效率 讀取次數減少、讀取量增大 ( 分頁錯誤、系統快取預讀功能 ) 不再有 64 KB 的限制,可以做大區塊的 I/O 存取 分頁檔可以使用更大的叢集大小 I/O 次數減少 減少分頁檔碎裂的狀況 更有效率的使用 Translation Lookaside Buffer (TLB) 支援 Superfetch? 功能 支援 NUMA
  • 24. 非統一記憶體存取 (NUMA ) 使用 SMP 時,所有記憶體存取都會公佈到相同共用記憶體匯流排 這適合只有少數幾個 CPU 的時候使用 當有幾十個甚至幾百個 CPU 爭相存取共用記憶體匯流排時,效率會很差 愈來愈多的應用程式使用 NUMA Non-Uniform Memory Access (NUMA)
  • 25. 非統一記憶體存取 (NUMA ) 硬體的趨勢已走向可提供多個系統匯流排 而每一個匯流排都可服務一小組處理器 ( 節點 ) 每一節點都有自己的記憶體,或自己的 I/O 通道 I/O 系統直接將中斷繫結到指定的節點 存取本機記憶體會比取與其他 NUMA 節點相關聯的記憶體更快 與目前執行之執行緒的 CPU 位於相同節點上的記憶體 ? 本機記憶體 不屬於目前執行之執行緒節點的記憶體 ? 外部記憶體 ( 遠端端記憶體 )
  • 26. 非統一記憶體存取 (NUMA ) Windows Server 2008 每一個節點在 nonpaged pool 中使用互相不重覆的位址 每一個節點都可以引用所有的分頁 系統 PTE (Page Table Entry) ,系快取的分頁表配置會平均分散到各個節點 硬體與軟體 NUMA 支援新的 NUMA APIs ,允許應用程式指定節點數量 ( 記憶體配置、檔案對應 ) I/O 系統直接將中斷繫結到指定的節點 http://technet.microsoft.com/zh-tw/library/ms178144.aspx http://technet.microsoft.com/zh-tw/library/ms345345.aspx
  • 27. NUMA 記憶體配置 執行緒 T 被安排到另一個節點,但是記憶體卻是指到指定的節點,這會產生軟分頁錯誤 (soft page fault) T 節點 #1 節點 #2 CPU 0 CPU 3 CPU 1 CPU 2 CPU 4 CPU 7 CPU 5 CPU 6 理想的 CPU 記憶體 理想的節點 記憶體
  • 28. 大綱 硬體平台支援 行程與執行序 I/O 與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
  • 29. 新的開機環境 – 支援 UEFI x64 Windows Server 2008 支援透過 UEFI 2.0 開機 IA-64 同時支援 EFI 1.1 和 UEFI 2.0 使用 Boot Configuration Database (BCD) 取代 boot.ini 抽象的韌體 統一不同作業系統的安裝 使用 Unicode 字串 BCD 儲存在系統機碼中 二進位格式 ootCD 載入 HKLMCD00000000 機碼受到安全性保護
  • 30. Session 平行建立 在過去, session 的建立是依序進行的 Session Manager (SMSS) 為每個 session 建立 Winlogon 和 Csrss 行程 是 Terminal Services 的瓶頸所在 Winlogon 建立 Local 安全性 Authority (Lsass.exe) 以及 Service Control Manager (Services.exe) Windows Server 2008: SMSS 會建立新的執行個體來初始化每一個 session 支援平行 session 建立的功能 最小的平行 session 啟動是 4 個 最大值是 CPU 的數目 Session 0 的 SMSS 執行 Wininit.exe ( 新元件 ) Wininit 負責啟動原本 Winlogon 要啟動的服務、 Lsass 、… 也負責啟動 Local Session Manager (Lsm.exe) Session 1-n 的 SMSS 負責建立 該 session 的 csrss.exe 和 winlogon.exe
  • 31. 完整的服務關閉 在過去,服務沒有任何方式可以延長關機的時間 在固定逾時時間 ( 預設是 20 秒 ) 之後, SCM 就會被終止執行,然後系統就當機 ( 當服務還在執行時 ) 對於需要將快取資料寫入磁碟的服務來說是一個大問題 Windows Server 2008 的服務可以要求關機通知,並且要求足夠的時間來關機 SCM 會通知這些服務 SCM 接下來會等待這些服務進入停止狀態 預設逾時時間是 3 分鐘 服務可以進一步延長時間 在所有 pre-shutdown 服務都停止之後,剩下的服務就照原本 Windows XP 的方式進行關機
  • 32. 服務關閉的順序 在過去,服務無法指定關閉的順序 但是有些服務有關閉的順序問題 必須自行解決 Windows Server 2008 的服務可以指定關閉順序 使用 SERVICE_ACCEPT_PRESHUTDOWN 來呼叫 SetServiceStatus API 服務的名稱必須列在 : HKLMystemurrentControlSetontrolPreShutdownOrder 例如 : Wuauserv (Windows Update Service) 順序高於 Gpsvc (Group Policy Client Service) WindowsUpdate 更新完成後,才會套用群組原則
  • 33. Session 0 Isolation Session 0 WinInit RCM LSA Group Policy Profiles SCM Other Sessions WinLogon LogonUI Credential Provider 1 Credential Provider 2 Credential Provider 3
  • 34. 服務延遲啟動 - DelayAutoStart
  • 35. 大綱 硬體平台支援 行程與執行序 I/O 與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
  • 36. Kernel Transaction Manager (KTM) 在過去,應用程式很難修復因為修改檔案或系統機碼所造成的錯誤 Windows Server 2008 實作了核心交易管理員 (KTM) 所有的變更都可以透過交易來控制 其它廠商可以進一步延伸這個功能到其它資源管理員上 核心交易管理員會負責協調應用程式與資源管理員的交易 系統機碼與 NTFS 都支援這項功能 Windows Update 和 System Protection 都使用這項功能 透過 DTC 與其它資料來源進行交易處理 Windows Server 2003 R2 開始就支援 Common Log File System (Clfs.sys) 提供有效率的交易記錄
  • 37. Windows 錯誤報告 在過去,例外處理是在產生例外的行程中執行 如果行程的堆疊嚴重損毀,就會死的不明不白 Windows Server 2008 會將例外訊息交由 Windows Error Reporting (WER) 服務來處理 WER 啟動 Werfault.exe ( 取代之前的 Dwwin.exe) 所有行程 crash 都能夠完整記錄並回報
  • 38. Improved Crash Dump Support 在過去,在系統啓動早期發生的 crash 並不不能產生 crash dump 檔 Crash dumps 被寫到分頁檔 可是在核心初始化之後, Smss 行程尚未開啓分頁檔 現在,分頁檔會先開啓,然後再做驅動程式初始化 因此驅動程式造成的 crash 是可以被 dump 下來的 記憶體傾印 過去 : 完整 現在 : 核心
  • 39. 磁碟陰影複製 在過去 無法還原檔案修改或意外刪除 系統還原只能保護已知的系統檔案或機碼 Windows Server 2008 使用磁碟陰影複製來做系統還原與以前的版本 過去只能使用在共用資料夾上 統一資料檔案與系統檔案的保護機制 使用 KTM 來維護跨磁碟快照的一致性 快照每天產生一份,或者在建立系統還原點時也會產生一份快照
  • 40. 硬體診斷 避免因為記憶體的不穩定所造成的當機 尋找並標示出有問題的記憶體分頁 Windows Memory Diagnostics Microsoft Online Crash Analysis 減少因磁碟損毀所造成的資料遺失 把原本不可預期的磁碟錯誤變成可預先規劃的 Windows Disk Diagnostics 記憶體診斷 磁碟錯誤診斷
  • 42. 大綱 硬體平台支援 行程與執行序 I/O 與檔案系統 記憶體管理 開機與關機 穩定性與系統復原 安全性
  • 43. Address Space Load Randomization (ASLR) 在過去 核心、 HAL 、執行檔和 DLLs 檔會被載入固定的記憶體位置 緩衝區溢位的攻擊就是因為系統功能的位址是固定的,所以能夠成功 Windows Server 2008 核心的功能模組會載入到隨機的記憶體位址 (1/256) 作業系統檔案現在包含了重新定位的資訊 每次載入時的記憶體位址都不一樣 使用者堆疊的位址一樣是隨機的 驅動程式、核心、 HAL 的位址也是隨機的 Kernel32 NTDLL User32 Exe Win2003 #1 Kernel32 NTDLL User32 Exe Win2003 #2 Kernel32 NTDLL User32 Exe Win2008 #1 Kernel32 NTDLL User32 Exe Win2008 #2
  • 44. Windows Server 2008 服務安全強化 減少高風險層的大小 將服務分區段 層加安全防護層次 核心 D D D S S D D S S 核心驅動程式 系統服務 低權限服務 使用者模式驅動程式 服務安全強化 使用者 帳戶控制 使用者權限 使用者帳戶控制 低權限服務 管理權限 系統服務 D D S S
  • 45. 服務安全性加強 大部份的服務都會被賦予一個 SID SID 預設是停用的,當服務 啟動時才會被啟用 防火牆原則中可以使用服務 的 SID 來進行過濾 用來設定物件的寫入權限 服務的權限設定 在服務的系統機碼設定中 設定 RequiredPrivileges 值 (MULTI_SZ) 服務安全強化 主動式保護 檔案系統 系統機碼 網路
  • 46. Mandatory Integrity Control (MIC) Token 中有 Mandatory Integrity Level ( IL ) SIDs Low (100): 保護模式下的 IE Medium (200): LUA 行程 High (300): 提升權限後的行程 System (400): 系統行程 物件的 ILs 儲存在 SACL 中的 IL ACE 行程、執行序、 Access Token 中一定有 IL ACE 檔案或機碼如果沒有 IL ACE , IL = Medium 由 IL=Medium ( 含 ) 以上的行程所建立的物件, IL = Medium 由 IL=Low 的行程 ( 例如保護模式 IE) 所建立的物件, IL = Low
  • 47. IL 存取檢查 IL 會在 DACL 之前檢查 執行序的 IL 一定要大於等於物件的 IL ,才可以修改該物件 執行序可以開啟任何物件進行讀取 : 如果該物件不是行程 或者是 IL 等於或小於自已的 IL Windows 子系統也遵守 IL 規則 只有查詢的訊息才可以從 LUA 行程送到提升權限的行程
  • 48. 服務權限控管 - sc 指令 - RequiredPrivileges
  • 49. 總結 Windows Server 2008 核心在效能、擴展性、穩定性與安全性上都有許多改善 更公平的執行緒執行 更快速有效的 I/O 機制 更大、更有效率的記憶體管理 自我錯誤偵測與修復 更加安全系統核心 作業系統直接支援虛擬化機制
  • 50. 在何处取得 TechNet 相關資訊? 訂閱 TechNet 資訊技術人快訊 http://www.microsoft.com/taiwan/technet/flash/ 訂閱 TechNet Plus http://www.microsoft.com/taiwan/technet/ 參加 TechNet 的活 動 http://www.microsoft.com/taiwan/technet/ 下載 TechNet 研討會簡報與錄影檔 http://www.microsoft.com/taiwan/technet/webcast/
  • 51. ?

Editor's Notes

  • #2: <SLIDETITLE INCLUDE=7>Windows Server 2008 應用程式相容性 </SLIDETITLE> <KEYWORDS></KEYWORDS> <KEYMESSAGE></KEYMESSAGE> <SLIDEBUILDS>0</SLIDEBUILDS> <SLIDESCRIPT> Hello and Welcome to this Microsoft TechNet session on {insert session title}. My name is {insert name} </SLIDESCRIPT> <SLIDETRANSITION> <TRANSITION LENGTH=7>Let us start this session by going into more detail on exactly what we will be covering.</TRANSITION> </SLIDETRANSITION> <COMMENT></COMMENT> <ADDITIONALINFORMATION> <ITEM></ITEM> </ADDITIONALINFORMATION>