Windows其實很可靠

不同视角、不同观点、深度探讨,禁止人品和道德攻击
回复
陽光院景仁
帖子: 1513
注册时间: 2009-09-25 20:19

Windows其實很可靠

#1

帖子 陽光院景仁 »

對於Windows這個系統的報告存在有太多的偏見,甚至關於它情況的介紹只有一部分是真實的。例如,這個系統非常的不安全,有數百萬的病毒在透過網路傳播,而且僅僅攻擊Windows。另外,還有很多報導認為Windows的效能很差,經常需要等待。這些針對Windows的指責對我們而言已經不足為奇。而Vista為了改進這些問題,最終變成了7000萬行代碼的龐然大物。我們不應該繼續堅持這些錯誤的判斷,而是應該重新對它進行評價。

核心:它操縱著系統

作業系統由藏在裡邊的核心所控制。核心的品質決定了作業系統的品質。核心必須控制所有當前系統正在執行的處理程序,以確保系統可以很安全。只有它能決定哪個程式可以存取系統的硬體,以及存取的時間。它透過合理地規劃系統資源來保持系統的穩定。它還提供了系統正常運作時的各種功能,例如在硬碟上建立系統必須的虛擬記憶體分頁檔案。

核心需要有很好的效能,以解決資源存取上的衝突,例如當兩個程式在同一時刻都希望在硬碟上寫入檔案的時候,核心需要依據程式的重要程度來決定由哪個程式先執行磁碟寫入的動作,而讓另外一個程式等待。

Windows:能在所有硬體上執行

Windows NT核心系統架構被分為使用者模式和核心模式。幾乎所有我們看得到的各種程式都執行於使用者模式下,例如Word和PhotoShop等。無論怎樣,執行於此模式下的程式不能直接存取系統的硬體或記憶體。所以使用者模式就如一直被Windows捧在手中,所有更深一層次的系統存取必須使用系統預先指定的介面,例如存取Win32API,使用DLL(動態連結函式庫)。而核心模式一直運作於系統後端,使用者並不會注意到它。

與運作於使用者模式的程式不同,運作於核心模式的程式(如驅動)出現問題時,能夠導致整個系統崩潰。而在崩潰後表現給使用者的就是藍色的錯誤訊息畫面。

提到這兩個系統殼層就不得不介紹ntosknrl.exe這個檔案,它在整個系統工作行程中扮演著非常重要的作用。它的工作被分成兩個部分,這兩個部分分別工作在核心殼層和執行殼層,負責使用者和核心殼層之間的溝通。

HAL位於系統的最底部。它為作業系統的其他殼層提供服務,它為這些殼層依次提供硬體的運算能力。在這個殼層的幫助下,核心殼層在為應用程式分配電腦運算能力時就不用考慮硬體配備了。如果沒有HAL,微軟就得為不同的硬體推出不同的Windows版本。

Linux:按需下載模組

Linux的核心基於Unix技術,不過在大多數普通使用者看來,它與Windows更加相似。這個系統的核心殼層直接連接電腦的硬體,並且直接做為應用程式調用硬體的介面。正是這種結構上的差別,使得Windows和Linux的工作方式完全不同。Windows系統在工作時,核心首先為輸入/輸出裝置、記憶體管理模組和處理器管理模組提供服務,這些模組具有優先權,首先獲取系統的運算能力。另外控制init的模組工作在更接近基層的位置,擁有更高的優先級別。

大體上講,與Windows分層的架構相比Linux的架構更像一個沒有分層的整體,不過Linux的核心也可以動態下載額外的功能模組。

依照通常情況,Linux在升級時只會更新現存的功能模組,或者完全替換現存的功能模組。Linux核心的系統和函式庫調用的介面同樣也是使用者的操作介面。這個介面在系統資源調用中扮演著非常重要的角色,因為通常整個運算工作的安排都由它擔當。

Mac OS X:借助兩個核心工作

Mac OS X的作業系統核心使用三個略寫的字母XNU(X is Not Unix)來表示。這個名字非常的有意義,因為蘋果的作業系統核心有兩部分組成,而只有其中的一部分來自Unix。Darwin的另外一部分來自Mach專案,Mach最典型的特點就是使用了微核心。不過蘋果並沒有使用Mach做為微核心使用,而是將它作為系統資訊溝通的中樞,用它來強化核心每個獨立部分的交通能力。另外XNU的很多代碼來自基於Unix的FreeBSD,這部分的代碼用於提供使用者管理,訊號處理和針對POSIX的相容。POSIX負責讓Unix上的程式可以正常地運作在Mac OS X上。

使用I/O工具套件處理資料的輸入和輸出是Mach一個非常重要的作用。這與Windows或Linux有非常大的不同,I/O工具套件工作於一個附加的殼層之上,這個殼層位於硬體和其他系統元件之間。它包含了一個預先定義的標準的驅動模型,在這個驅動模型的基礎上硬體廠商再開發各自特殊的驅動程式。這可以提供更好的穩定性和更好的效能。

作為系統核心服務的一部分,Mac OS X同樣允許對系統核心的功能進行擴充,在有需要時,系統動態下載這些功能模組,不過由於它整體性,技術專家們更喜歡把它的核心看做是一整個整體。

程序:由數位簽名保護

程序管理是核心非常重要的一個工作。程序管理不僅僅指為程序的優先級進行排序,核心還需要對執行中的程序進行保護。在Windows中,通常會使用Win32API進行程序的執行和管理。在Windows的核心結構中,有一個NTOS執行殼層。程序存取核心物件的工作被稱為handle。在Windows中程序還可能依次開啟新的程序,這也就是為甚麼Word可以開啟一個新的文件的原因了。在標準的Windows模型中,一個程序一般可以控制它的子程序,因此我們才可以在Word中刪除或修改一個文件。

但是,當程序執行完畢結數整個存取過程時存在有一個漏洞。debug程式的授權問題導致了這個漏洞產生,它允許一個擁有管理員權限的使用者完全存取一個權限。如此一來,使用者就可以讀取或者改變程序原有的位址空間。別有用心的攻擊者就可以借助一個正常的程式植入攻擊程式碼,而這個攻擊程式碼也因而擁有了最高的管理員權限。

為了解決這個問題,Vista引入了一個煩人的程序模型,甚至連多媒體檔案都被加入這個程序模型,Vista定義了一個叫做保護程序的新類別,這個類別中的程序可以存取的資源被處理程序管理員嚴格地限制。系統核心還未被保護的程序提供了診斷資訊,如此,即使是系統管理員也將無法透過這些程序直接存取各種系統資源了。依據這個模型,一個回放電影的指令必須作為被被保護的程序執行,而程序執行的條件是它的所有程式碼(甚至包括擴充代碼)都必須經過數位簽名。

Linux和Mac OS X的程序模型與Windows的類似,它們同樣是由父程序控制子程序的建立。但是類似Vista中的程序保護這兩個作業系統並沒有提供。當然這也並不奇怪,因為微軟是最先應用數位版權管理技術的作業系統廠商。所以,如果你需要系統存取的根權限(最高權限),你可以在Linux或Mac OS X中得到你想要的,你甚至可以分析和操作程序。當然你可以操作,技術高超的駭客同樣也可以。

ASLR:偽裝記憶體位址

目前程序的位址匯流排寬度都有64bits,不過即使如此,仍舊有很少的一部分程序會占用其他工作的系統資源。而由NX Bit負責執行的資料執行保護(DEP)則可以避免這種資源跨界使用的問題。在這項功能的幫助下,當一個本身標記為沒有使用的記憶體分頁資源正在執行的話,一個內部錯誤就會產生,這種跨界的應用也就會被結束。在Windows中DEP並不能夠關閉64位元的程式或驅動,但是它可以關閉所有的32位元程式,而這些32位元程式才是目前被廣泛使用的。

正是由於DEP存在這樣的缺陷,給了攻擊者機會,使它們有機會進行緩衝區溢出攻擊。這種攻擊可以用我們系統中現存的程式做為立足點,例如IE瀏覽器。當惡意程式進入之後,它就可以借助Windows的APIs發起攻擊,例如讀取資料或者改變系統的配置。

因此,微軟在Windows Vista開始加入一種新的核心保護程式。這種技術被稱為位址空間隨機讀取(ASLR)。在較早的Windows系統中,重要的DLL檔案都會被載入記憶體的固定位置,駭客可以直接使用這些記憶體位址實現對這些檔案的攻擊。

借助ASLR技術,系統的DLL檔案和執行檔在系統每次啟動時會被載入系統記憶體的不同位置中,這樣惡意程式就不能利用固定的位址列表實施攻擊了。另外,ASLR可以讓位址空間的利用效率更高,與以往的Windows相比,系統會有更多的可用記憶體空間。目前一些特別訂製的Linux版本,例如Hardened Gentoo已經包含了完整功能的ASLR。但是,一般的Linux核心只包含一個不完整的版本。而ASLR只在Mac OS X中的少數library檔案中有效,根本沒有完整功能的版本。

完整掃描:確保代碼的安全

工作在核心層面的間諜軟體或惡意程式是目前最難纏的一類安全問題。一些一般的資訊安全軟體並無法清理它們,因為它們在與核心同級別的系統殼層中運作。這些惡意程式變身為系統驅動,並且可以攔截和修改系統核心對外傳送的訊息,另資安軟體無法找到它們。

為了解決這個問題,微軟從Windows Vista開始在核心模式中運用了代碼簽名(KMCS)。這個功能可以讓系統只能安裝經過數位簽名的驅動程式。透過微軟建立的WHQL,硬體裝置廠商可以為自己的驅動程式加入數位簽名,甚至一些廠商還可以自己為驅動加入數位簽名。

通常在Mac OS X和Linux中只有核心模組才會使用數位簽名。理論上講,這種簽名檢驗也可以用於驅動程式,不過在這兩個OS上安裝驅動程式時,它們並不會進行數位簽名驗證。

MMCSS:更佳的多媒體經驗

Windows能夠建立一個清單,以避免一些程序在相同的時間點執行。Windows為每個應用程式都指定了一個使用系統CPU運算能力的時間段,在不允許使用系統資源時,相關應用程式必須等待。Windows擁有一個特殊的功能,可以在播放電影時,防止其他多媒體執行。在這種模式下,資安程式的掃描行為和Windows的系統服務都會在後端執行,不會打擾前端電影的播放。

多媒體計畫服務(MMCSS)可以確保在使用系統資源時得到優先的待遇。不過為了使用這一功能,類似Windows Media Player這樣的多媒體播放程式首先需要在MMCSS中註冊。

這個服務由Mmcss.dll提供,該程式包含了優先級別管理的服務。即時播放區域在執行時的優先級別是16,因而其他程式將無法打攪正在播放的視訊。當然我們不能在播放視訊時讓其他重要的服務餓死,所以在MMCSS執行時Windows會保留一些系統資源給其他工作。

Linux提供了更加細緻的系統執行級別,它將程式執行的優先級別分為從0到99。這個分級體系要比Windows針對多媒體播放而設計的優先級別要優秀。在Mac OS X中分級體系由Mach中的一個組件提供。它不僅提供0到127級的分級,Mach在處理這方面的功能更考慮真實的環境,這要比Linux和Windows更加現代一些。在Mac OS X中當其他程式在消耗系統資源時,多媒體播放程式能夠有效地減少由此帶來的停頓或其他問題。

I/O:排序工作

有些情況有可能打擾我們欣賞電影,比如當系統後端在同時執行多個程式時,電影的播放效果足夠令人不安。對於Windows XP來說,在後端動態分配系統資源就是一個很大的問題。

從Vista開始,為了保證前端程式的正常運作,它們將一直擁有較高的優先級別,而為此輸入和輸出系統的優先級將被降低甚至暫停。Vista的I/O系統提供了5個等級,從very low到critical,normal是標準的等級。Windows自動為後端執行的程式分配一個低的優先級。另外,記憶體管理程式將一直在critical這個級別上工作。這主要是因為記憶體的資源非常有限,系統必須以最快的速度將暫時不需要的資料移動到硬碟上,提升記憶體利用率。硬體裝置的驅動程式負責傳送I/O的存取請求。

從Vista開始,系統會為I/O行為保留一個固定的頻寬。這樣如WMP之類的程式就可以讓I/O系統依照一個特定的速度讀取DVD光碟機上的電影。當然,I/O系統可以及時回應的前提就是保留的頻寬資源可以滿足需求。與這種先進的資源保留方式相比,Mac OS X和Linux仍舊在I/O資源分配上使用老舊的按優先級別分配的方式。Mac OS X使用Mach在系統架構的底層進行這些訊息的傳輸。而一個有效的I/O優先級體系直到Linux的核心升級到2.6時才被加入。

記憶體位址空間:動態管理

對於Windows和已經安裝的程式來說,它們的32位元程序在存取記憶體時可以佔用的空間受到了嚴格限制。為此,Windows的核心不能超過2GB,否則就很難在記憶體空間中為裝置驅動程式、系統快取檔案和堆疊流線提供足夠的空間。在Windows XP時代,記憶體管理工具要為系統啟動預留獨立的記憶體位址空間,以保證系統能夠正常啟動。這就造成了一個問題,程式所使用的快取經常達到上限。而為系統堆疊預留的空間往往還有剩餘,但是這些空餘空間又無法給其他程式使用。為此,在以後的Windows版本中,核心實現了對記憶體位址空間的動態使用。在實際執行時,系統會時刻監視記憶體空間的使用,並依據工作需要分配整個記憶體資源。在Linux和Mac OS X中,沒有對記憶體管理的嚴格限制。甚至在程式需求到達記憶體可用量的上限時,還會影響到核心。

根據它們程式設計的原則,獨立功能模組在設計時不會有任何關於記憶體方面的格式限制。與Windows不同,它們並沒有預先規定核心和驅動程式使用的記憶體空間。

KTM:偵測程式崩潰

在一個應用程式想進行一系列的改變,而且與它相關的檔案很多時。它就可以建立一個KTM handle和依個DTC工作。透過它們可以追蹤由更新引起的檔案改變和登錄鍵值的改變。如果安裝更新後一切都運作正常,程式就會把所以的改動徹底套用。透過資料還原點,程式可以輕鬆地還原到更新之前的狀況。另外一個額外的好處是:只有通過了所有穩定性的偵測,才可以看到應用程式上的更新效果。

在Mac OS X和Linux的核心中同樣整合了這樣的處理機製。通常,使用者不會注意更新失敗,因為任何更新失敗的效果都不會顯現出來。而且這兩個系統的穩定性也不會受到影響,使用者只有在檢視安裝記錄檔時才會看到一個更新沒有正常安裝。

結論:Windows提供的功能比Linux和Mac OS X更加豐富。這些競爭者相對苗條一些,而且並不如Windows的歷史悠久,好在它們都來源於歷史悠久的Unix。

而對IT技術愛好者來說,現在微軟最新的Windows整合的安全技術令人難忘,它整合了目前最先進的一批資訊安全技術。例如處理程序保護和為核心模型進行數位簽名。但是不幸的是,這些功能大多數要在64位元的Windows中才能有作用。而與之相對的是,Linux和Mac OS X並沒有Windows做的優秀,例如在ALSR方面。當然,它們也沒有遭受過像Windows這樣嚴重的安全攻擊。

不過微軟的作業系統由於執行緩慢,讓越來越多的用戶不滿,而這種不滿情緒被Vista推向了高潮。而與之相對的,Mac OS X則表現地更好,它借助Mach組件連接輸入和輸出功能,以確保系統回應迅速。而在速度方面,Linux則佔足了便宜,任何有一定基礎的使用者都可以自己配置編譯Linux核心,在滿足自己需要的基礎上還可以提升系統執行的速度。
陽光院景仁
帖子: 1513
注册时间: 2009-09-25 20:19

Re: Windows其實很可靠

#2

帖子 陽光院景仁 »

上文僅就個人桌面應用的安全功能來討論Windows Vista及其後繼者,和Server平台並沒有多大關係。
centerbot
帖子: 375
注册时间: 2010-02-27 16:48

post from IRC #ubuntu-cn

#3

帖子 centerbot »

哦?

-----------------------------------------------------------------------------------------------------------------
这是来自IRC聊天室#ubuntu-cn的网友jxhow的回帖。欢迎访问 Ubuntu 中文官方支持频道http://webchat.freenode.net。频道填#ubuntu-cn,用户名随意。疑难问题大牛现场解答
头像
hcym
帖子: 15634
注册时间: 2007-05-06 2:46

Re: Windows其實很可靠

#4

帖子 hcym »

世界五百强有几个不用ms系统

难道他们智商也是倒数五百强
centerbot
帖子: 375
注册时间: 2010-02-27 16:48

post from IRC #ubuntu-cn

#5

帖子 centerbot »

灌水的路过 测试bot正常 路过

-----------------------------------------------------------------------------------------------------------------
这是来自IRC聊天室#ubuntu-cn的网友jxhow的回帖。欢迎访问 Ubuntu 中文官方支持频道http://webchat.freenode.net。频道填#ubuntu-cn,用户名随意。疑难问题大牛现场解答
头像
nuanhuai
帖子: 7813
注册时间: 2009-03-10 13:04

Re: Windows其實很可靠

#6

帖子 nuanhuai »

已经厌烦了win下到处找各种“破解版”的路过......
win其实也没那么不堪,就是用起来感觉非常不自由罢了
JiangHui
论坛版主
帖子: 21308
注册时间: 2007-08-02 20:29
系统: 窓辺とうこ

Re: Windows其實很可靠

#7

帖子 JiangHui »

好长,讲什么?
头像
sonofthewind
帖子: 557
注册时间: 2008-10-12 12:58
来自: 天津

Re: Windows其實很可靠

#8

帖子 sonofthewind »

鼠标滚轮表示很有压力
头像
sammysun
帖子: 4088
注册时间: 2007-12-08 23:33
来自: SCUT-guangzhou

Re: Windows其實很可靠

#9

帖子 sammysun »

Tooooooooooo loooooooooooong
陽光院景仁
帖子: 1513
注册时间: 2009-09-25 20:19

Re: Windows其實很可靠

#10

帖子 陽光院景仁 »

用了半天時間打字,結果在發出時本論壇崩潰很長時間無法登入......趕緊儲存備份後重新發。
头像
hasee.wu
帖子: 2089
注册时间: 2009-10-20 21:13
来自: Pacific Western University

Re: Windows其實很可靠

#11

帖子 hasee.wu »

hcym 写了:世界五百强有几个不用ms系统

难道他们智商也是倒数五百强

世界五百强的服务器大多不用windows server
头像
maonx
帖子: 206
注册时间: 2008-09-09 16:39
联系:

Re: Windows其實很可靠

#12

帖子 maonx »

路过再看...
Am I in Matrix?
System: ArchLinux
DM: Awesome 3.4.4
乱乱的小窝
头像
jmw778s
帖子: 994
注册时间: 2009-10-16 11:13
来自: 福安
联系:

Re: Windows其實很可靠

#13

帖子 jmw778s »

总结,用windows的死定了 :em04
Acer 4738ZG-P22G50Mnkk 笔记本电脑
我用Windows 7 来这里装13的
头像
peteryeh64
论坛版主
帖子: 9386
注册时间: 2008-12-20 15:43
系统: 家kubuntu20.04
来自: 心靈深處

Re: Windows其實很可靠

#14

帖子 peteryeh64 »

如果win7能長時間裸奔...我願意相信您的話... :em06
[论坛版主行为规定]+[PITIVI簡易教程]+[ubuntu裝迅雷]
[releases.ubuntu.com]+[cdimage.ubuntu.com]+[old-releases.ubuntu.com]
[學ubuntu必須拜讀懶蝸牛"笨兔兔的故事"=viewtopic.php?f=112&t=162040][Linux明日的希望在中國]
陽光院景仁
帖子: 1513
注册时间: 2009-09-25 20:19

Re: Windows其實很可靠

#15

帖子 陽光院景仁 »

hasee.wu 写了:
hcym 写了:世界五百强有几个不用ms系统

难道他们智商也是倒数五百强

世界五百强的服务器大多不用windows server
傳統的Windows在伺服器方面從來就不是長項,由於它的封閉和複雜,導致在開放性、靈活性、可管理性等方面必然遜色於Linux或Unix等競爭對手。儘管微軟正在竭盡全全力地改變這種局面,比如和GUI分離的MinWin核心架構、PowerShell等等,但是尚未能看到會在多大程度上改善其局面,何況現在連Unix都正在很多傳統領域逐漸讓位於開源的Linux。
回复