在國內熱門的 mobile01討論區中,有一個討論串最近蠻有人氣的,討論的內容是微軟預計在 2009 年底推出的最新版 Windows 7 為甚麼還是無法使用超過 4G 的記憶體,相關討論在此 windows 7使用ram 最大還是3.2g?
這個討論串有意思的地方在於,蠻多東西被翻出來討論的,大概整理如下:
PAE 是不是內定啟動
Windows 32 位元的客戶端作業系統到底能不能算是可以管理超過 4G 的記憶體
Windows 32 位元的客戶端作業系統的市場區隔
討論串中有人以技術面破題,有人以商業面切入,這都正確。
若以商業面討論,現階段的確是沒多少人在使用 64 位元的 Windows,其中最大的問題應該是裝置的驅動程式安裝上的問題,其次是應用軟體的相容支援度不足,誰會希望自己三年前買的 WebCam 因為升級 64 位元的 Windows 後無法使用,或者買來的軟體打不開呢?
討論串中有前輩提到,絕大部分的使用者都不會想去安裝,升級自己的作業系統,終其電腦一生就使用那套最早安裝的版本,這我同意,在我的經驗中,使用者通常不會太在意自己的作業系統,只要好用就好,因此,電腦買來開機是什麼系統就用什麼系統,沒能力也沒體力去做升級的動作,殊不知,作業系統才是整套電腦的靈魂。好玩的是,如果 OEM 廠一開始就安裝 64 位元的 Windows,應該也沒多少使用者會發現,直到接了週邊才可能會覺得怎麼這新電腦相容性這麼差勁吧。
另一個推不太動 64 位元 Windows 的原因就是上一段提過的驅動程式問題,有多少使用者買週邊時會保存當初隨機附上的驅動程式光碟呢?如果有人提醒這些光碟必須好好保留還可能找的到,更多的狀況是『不知道』、『不見了』、『來的時候就沒有』,這群使用者極有可能不知道大部分驅動程式可以在網路上找到,因此,要讓這群使用者的舊週邊能在 64 位元的 Windows 可以繼續使用,最好的情況是 Windows 本身有內建相容的驅動程式,或者驅動程式光碟內有 64 位元版,或者免不了要找一下原廠的網站下載,那如果週邊是小廠生產的,或者沒有 64 位元版驅動程式,甚至公司已經倒了找不到,那...不就不能用了嗎(所以買產品要買大廠的原因在此,太冷門的產品可能過幾年就沒辦法用了,純粹個人意見)。
現實的狀況是這樣的: 64 位元 Windows 已經存在,之所以沒什麼人用是因為週邊驅動程式的問題或者應用程式不相容。週邊廠商覺得現在 64 位元 Windows 的市場還太小,沒必要特別推出 64 位元版的驅動程式,而且在 32 位元活的還蠻不錯,短期內不用考慮這件事。就這樣,微軟在等週邊廠商生產 64 位元版驅動程式,而週邊廠商在等微軟把市占率提高才考慮推 64 位元版驅動程式,雙方就這樣一直等下去。大概除了微軟之外的每個人都覺得在 32 位元的世界活的好好的,沒必要搬家,64 位元 Windows 又缺乏殺手級應用,無法引起消費者更換的慾望,我想這不會是短期內可以解決的。
這些就是商業上的現實,沒人敢推 64 位元版本 Windows,因為當使用者的怒氣充斥在客服專線時,沒有幾個人敢拂逆消費者的意志,Vista 就是最佳寫照。
討論串中有一位前輩提出微軟用技術面來做商業區分的限制,我舉一個例來說明用技術面來做商業區分:Windows XP 的系統,同時連線的數量只有 10 個,一般人覺得微軟真是小氣,幹嘛設限制呢?讓所有人都連上線不是很好嗎。換個角度想,Windows XP 一套賣多少錢,可以讓所有人都連線的功能是伺服端才應該提供的,而不是客戶端作業系統,從這點考量,微軟設定的這個限制也說得過去,畢竟讓客戶端作業系統去搶伺服端作業系統才提供的功能(生意)是不妥當的。
若以技術面討論,32 位元的作業系統要管理超過 4G 的記憶體,若不以偷吃步的方式是沒辦法的,而現今的電腦 CPU 都有一個從 Pentium Pro 開始就存在的架構,那就是使用 PAE 模式來定址超過 4G 的記憶體,也就是 2^36 = 64G。有些前輩不知道為何把 PAE 當成正規作法,論歷史,這可是從 Pentium Pro 就有的舊架構,從電腦發展史來看,早就應該被丟進垃圾筒了,全面轉換到 64 位元去才是正統作法。
可是前輩說,為何要把 PAE 從系統中排除呢?本來就應該當作一體來看待,既然 PAE 已經啟動,就拿來用就好了,只是小氣微軟把他設定限制,不讓使用者使用 4G 以上的記憶體,藉此當成商業策略的一環。可是微軟明明就有出可以使用超過 4G 記憶體的 64 位元作業系統,卻又為甚麼不用呢?前輩提出了我前面所提的商業上的考量,沒人敢推 64 位元作業系統,這好像是陷入了作業系統特有的死結狀態。
我舉一個例,就像一台老爺車,時速只能跑 60 公里(4G 記憶體限制),當我在後面加裝火箭推進器,可以把老爺車的時速推進到 200 公里(開啟 PAE),可是這台老爺車的原始設計就只能跑 60 公里,當超過這個限制時,老爺車承受的了嗎?搞不好會散掉吧。若從此例延伸,將車子重新設計成可以跑 200 公里就好了,這樣,不用加裝火箭推進器,老爺車也不會散掉,而這重新設計的車子就是 64 位元的作業系統。
甲的觀點:我希望 Windows 可以使用超過 4G 的記憶體
乙的觀點:早就有了,請用 64 位元的 Windows
甲的觀點:可是向一般大眾推薦 64 位元版本的 Windows 根本是自殺的行為
乙的觀點:方案一:使用 64 位元的 Windows,方案二:沒有方案二,除非你去買伺服器版本的 Windows,否則現階段微軟 32 位元客戶端 Windows 就是不能用超過 4G 的記憶體
甲的觀點:既然 PAE 都啟動了,那為什麼不開放讓我們用超過 4G 的記憶體?
微軟觀點:商業考量,不宜。技術考量,不宜。
再來看看 PAE 的啟動到底是不是預設值
根據我查到的資料,PAE 預設值是『關閉』的,很奇怪吧,很多人都寫預設是啟動的,原因在於微軟的確啟動了這項功能,可是卻有但書,也就是符合條件才會啟動,證據在此 http://msdn.microsoft.com/en-us/library/aa366796.aspx,不要再說微軟都沒有更新文件了,這篇文件提到了 Windows Server 2008,夠新了吧。
其中一段關鍵段落提到『On most computers, PAE is disabled by default. (PAE is enabled by default only if DEP is enabled on a computer that supports hardware-enabled DEP, or if the computer is configured for hot-add memory devices in memory ranges beyond 4 GB.)』
這段描述清楚寫到,只有在 DEP 被硬體支援的情況之下,或者熱新增(?)的記憶體超過了 4G 的範圍,才會啟動 PAE。
下面是我自己的觀點
我對於某位前輩的想法提出質疑,前輩說他對於微軟所撰寫的這些技術文件都是抱存著先懷疑,再求證的觀念,認為微軟的說法不可盡信,這我並不反對,但也無法苟同。雖然我對微軟並沒有特殊好感,但每當有人質疑微軟的技術時,我始終抱持著一個信念『在這個世界上,沒有任何一家公司,比微軟更了解 Microsoft Windows 了』,當『官方』網站的說明都無法使前輩信服,那前輩又能從哪些『非官方』的網站找到能使其他人信服的證據呢?若我們連官方說法都無法相信,那還能相信誰?
資訊產業雖也充滿欺騙,但技術卻無法說謊。微軟就這件事情或許沒有告知使用者真相,讓使用者知道啟動 PAE 技術可以使用更多的記憶體,就商業立場來看,它沒錯,就技術立場來看,它也不能算錯。微軟這家公司可以為了利益,犧牲掉使用者的權益,這不是今天才發生的。
我舉一個例,很多人都喜歡使用一些系統調整工具,把 Windows 給調整一遍,有些調的有道理,可有些卻是亂來,我從來不亂用這些調整工具,因為我確信『在這個世界上,沒有任何一家公司,比微軟更了解 Microsoft Windows 了』,Windows 之所以長成我們所見的這個樣子,必然是微軟在推出這套作業系統前,經過大量的討論、修改、校正、優化後的產品,任何的一個調整都是經過深思熟慮的,因此,那些第三方系統調整工具並不一定有深入瞭解過微軟為什麼要使 Windows 長成這樣,而不是長成那樣,在隨意更動系統預設值之下,很有可能會踩到微軟為了系統穩定性而掩埋起來的地雷,造成系統不穩定。
由商業立場來評論這件事,微軟為了避免使用者因為 64 位元的 Windows 為市場帶來負面衝擊,為了市場區隔,因此做下這種限制,避免讓使用者去使用超過 4G 的記憶體。
由技術立場來評論這件事,微軟為了系統穩定性,而不允許使用者使用超過 4G 的記憶體。若想使用沒有 4G 記憶體限制的版本,請使用 64 位元的 Windows。
這兩種說法都可以成立,甚至放在一起解釋也都是通的,而不會互相矛盾,說微軟為了商業考量,利用這個技術的手法來限制記憶體容量,或者說微軟因為技術限制,而無法提供更多記憶體使用,若想使用更多記憶體請購買 64 位元 Windows。你瞧,這兩種說法都告訴我們,不論以商業立場或技術立場考量,微軟都不會開放客戶端 32 位元 Windows 使用超過 4G 的記憶體來讓使用者使用,想使用,請自負系統不穩定的代價。
我想會在這個討論串回文的人,都是在資訊界打滾的,不然也不會這麼想弄清楚這些事情。
最後,我的結論是:作業系統因為開放 PAE 而導致不穩定是不允許的,念在你有點創意,重新做一個吧。
沒有留言:
張貼留言