1. 資科人看世界之28
拖了好長一段時間,在win7/8免費升級到win10的利誘和太多軟硬件不支援舊有系統的情況下(不知算不算威迫),終於還是要升級到
win10。有一台電腦底板不幸出現故障,最後要更換底板,導致原有的啟動鑰匙(installation
key)失效,網上啟動也出現伺服器失靈的訊息,需要致電微軟技術支援求救,最後亦順利完滿解決。不得不讚微軟的支援服務搬到上海後也升級了,工作人員回
應快捷,語氣態度也非常友善,可能平常慣了和電腦盲打交道,難得遇到IT人,溝通上順利很多,也體諒他們的難處。
難在那裡?很簡單,現時的操作系統太複雜龐大,技術人員不過是預早得知一些常見的問題和應對的解決步驟,不代表他們會明白整個系統的結構和運作。系統有多
麽複雜龐大?下面是windows 幾個版本的程式碼規模統計,以程式碼的行數作單位,據説大部份以c++編程語言寫成:
Windows XP: 40 million
Windows Vista : 50 million
Windows 7: 40 million (reduced from Vista).
Windows 8: 50-60 million
Windows 10: 50 million
OS for comparison
Debian 7.0 419 million
OpenSolaris 9.7 million
FreeBSD 8.8 million
Mac OS X 10.4 86 million
Linux kernel 3.6 15.9
Linux kernel pre-4.2 20.2
試想想4千至5千萬行的程式碼,應該沒有多少人能完全掌握到吧,所以必然是個系統工程,採用模組(module)分工,各自編寫,彼此利用一些預先
定義好的輸入和輸出埠(I/O
port)協定來連結運作。概念上可以説得頭頭是道,做的時候卻會錯漏百出,較小型的軟件,同一人編程也滿是臭蟲,何況是團隊,除蟲
(debugging)是個偉大而神聖的工程。
話説回來,為何內行人一邊在用視窗,一邊又罵個不停呢?原因是視窗的程式實在冗腫,和其他操作系統如linux相比,除了應用程式數量和客户的使用習慣不
及視窗外,功能、效率和穩定上都有過之而無不及,整個系統的原程式碼只有1千5百萬行,所以視窗高達3倍的體積是令人難以理解的。
從商業上看,視窗的成功是無可置疑的,但惹來電腦編程從業員的批評,特别是老的一輩,會覺得視窗改變了行業的生態,第一是以往的程式碼是開源的,例如
Unix 和、早期的蘋果電腦系統、cp/m(control program monitor, IBM DOS
的前身)等,讓技術人員可以檢視整個軟件的結構和運作,視窗採用閉源模式(Closed Source),俗稱黑盒(black
box),只對應用程式開發商提供介面(ASPI, Application Software Programming
Interface),第三者無法得知底層系統源碼。第二是除蟲的程序不夠徹底,讓用家成為白老鼠,也令更新變成日常的運作。
第一點是開源(open source)和閉源(closed
source)之爭,個人傾向開源是另一回事,現時所見,有關爭論可説難分勝負,現實是兩者並存。但也想為開源模式澄清一下,首先開源不等如不尊重智識產
權,就好像書本內容或歌詞歌曲,內容也是全公開的,版權仍可保有。很多人有所不知,如果申請專利,技術細節反而要公開,閉源就如可樂配方一樣,為保持秘方
的隱密,寧可不申請專利。其次是閉源會構成安全隱患,如果提升到國家公共安全層面,更加不能忽視。更新的過程,某種程度可視作開發商能通過一些通道進入用
家的電腦並作出修改,誰知這個能力可以去到那裡?
在個人電腦範疇,接近九成用户用的是視窗系統,所以視窗的問題始終要面對,如閣下公司中如果有專人負責,那恭喜你了,因為這個責任不好擔當;IT人比一般
人好不了很多,只是按步驟進行(stepwise
procedure),能不能解決,老實説,心裡並沒有十分把握,特别是視窗系統的應用軟件能較隨意地修改、加插甚至置換了系統的程式檔案如(.dll這
類系統檔案)),有時反安裝程式(uninstaller)不完善,唯有重裝才能還原,資料往往會永久失去。這是源於歷史因素,一朝一夕無法改過來,壓力
山大。
還是説説可分享的更新經驗吧,如果你家中有腦,始終也要面對更新的。Win10在2015年推出到現在已有3年,但更新的頻率及規模比以前的版本有過之而
無不及,大家可能對win XP的SP1, SP2 和SP3等3個重大更新記憶猶新,簡直是惡夢,但那是Win XP
整個產品週期內十多年的累積更新,頻率還不算太高,小更新也不大影響使用。Win7只有一個大型的更新,令大家難捨難離。可是win10的更新似乎比過去
的版本都更能令用家察覺到它的存在,win7/8免費升級到win10的操作不計,因為可以日以繼夜,失敗的機會太高,全新安裝(clean
installation)會更省時省力。去年的秋季創意者更新(Version 1709, 2017 Fall Creators Update,
build 16299.431,代號 Redstone 3)已可能令 IT
人少睡很多個小時,一些非技術人員,可能至今仍未能成功更新,今年4月的更新(Version 1803, 2018 April Update,
build 17134.1,代號 Redstone 4)便又發出,安裝時間同樣可花掉幾個小時,過程中只要有任何失誤便又要再從頭開始。
對於這兩個更新,有下列一些分享,談不上是技術,因為根本用不著,只是經驗:
1.
大多數人會採用線上自動更新,如果是小型的更新,絕對沒有問題,可以在背景中執行,不知不覺便完成了;但這兩個大型更新不行,在控制台的更新頁,當查看更
新排程是代號1709或1803的更新時,下載到達100%,便要準備找一些可以打發一兩個小時的工作,電腦是沒法使用的了,勉強使用可能會令任務中斷,
電腦會重新開始下載更新封包,從頭再做一次。
2.
每台電腦的設置不同,不能保證更新時不出狀況,要先行建立還原點和備份,現時硬碟實在便宜,我是索性買一個比前更大的,整個硬碟複製過去,由於win10
支援2TB以上硬碟(還要底板支援),用大容量的硬碟性價比更高,舊的就當備份,當安裝成功並運行穩定後才考慮作其他用途。
3. 要有耐性,過程中會出現畫面停頓的情況,進度標示的完成百份率有時會停滯不前,如硬碟指示燈顯示仍在工作,便讓它繼續,強制關機會令任務中斷,電腦會重新開始再下載更新封包,時間倍增。
4.
如果沒有必要保留原有電腦設定或是全新的電腦安裝,那就拋開你買回來的usb貯存器或光碟,不是提議你用翻版,而是直接上微軟那裡下載一個含最新更新包的
影像檔來安裝,只要用那套正版視窗所提供的安裝鑰匙(installation
key)啟動便可以。如果用舊版的安裝程式安裝再依序更新,那是自找麻煩,除非你晚上閒得發慌,無心睡眠。
https://www.microsoft.com/zh-hk/software-download/windows10ISO
5. 如須要在舊機上更新,老實説,感覺微軟的更新伺服器速度並不高,可能用家太多,全球成功啟動的win10電腦已達十億台,加上連網的穩定性,用線上更新會 容易出異常情況,可能一整天也未能完全下載;一個更有效辨法是手動安裝(manual installation),將更新包先行下載,反而更快,自行選擇時間安裝;下面是官網的鏈接:
i. 2017 Fall Creators Update official download:
http://www.catalog.update.microsoft.com/Search.aspx?q=KB4033524
ii. 2018 April Update official page:
https://www.google.com/search?hl=zh-TW&ie=UTF-8&source=android-browser&q=win10+april+2018+update
6.
由於頻密更新變成常態,使用電腦的習慣要優化來適應,以往很多人將所有東西都放在C碟,不作區間(partition),升級時會遺失寶貴資料。近年由於
固態硬碟(SSD)開始流行,系統硬碟和資料硬碟分工,改變了用家習慣,對更新和升級幫助很大。多年來,無論公司電腦還是個人電腦,我都會將系統及程式檔
放在C碟,資料放在其他區間(partition)上的邏輯磁碟或物理磁碟上,升級基本順利,唯有一些和程式結合較緊密的資料檔要特别處理,才須要一些較
專門的技術操作。
7. 微軟從win10起改用了軟件的認證方式(license
validation),詳情沒有透露,會利用硬件的設置特點和微軟伺服器上的啟動資料對照來確認,如果硬件作了重大改動(major
change),便要重新啟動。重大的定義是什麽沒有官方説法,一般來説,更換底板、處理器、網絡咭和顯示咭較易觸動重啟操作,零售版容許無限次重啟,
OEM 版則理論上是不允許的,如在保養期內,可找軟件分銷商搞妥,過了保養期便有點尷尬,為免麻煩,我通常不建議買OEM 版本。
8. 有些用家因為更換系統的種種麻煩,索性不作更換,又或更換了不更新。但正如文章開頭所説,越來越多的網站和軟件不兼容舊平台,不更換和更新會不安全或無法操作,所以不換不換還須換。
9. Win10兼容了新軟件和網站,另一問題是對舊軟件和設備的支援。很幸運地,個人經驗發現win10
竟然對廿多年前的軟件仍兼容,其中一套winxp年代的會計軟件,無法在win7
上運行,在win10上反而完全兼容,不能不説是小驚喜。相反地微軟本身的一些軟件便要強制更換,例如電郵軟件,如果你還保有outlook
express的安裝程式,你可以自行安裝,但更新後便會被清除。因為一些公司機構仍使用Outlook (和outlook
express是兩套不同的軟件),寄出的電郵附件,會以.dat 檔案來封裝,沒有outlook 或 outlook express
便有可能解讀不到。一是借助舊電腦開啓,二是用網上的轉換服務將內容轉繹回原檔,有點不便。
一直有傳聞 win10 是微軟最後一個以序號命名的版本,將來會改以服務形式提供更新和應用程式,甚至傳聞會改用 Linux
的核心,可能由開發商獨力編寫操作系統的內核太累了,Linux
利用開源模式,建立一個跨越國界地域的電腦軟件社區,聚集全世界的編程精英一起寫程式碼,用1千5百萬行程式,多快好省地做到視窗系統用4千萬行才能做到
的工作,輸的是商業技術,不是軟件編程技術。所以,要搞創新科技,不是只談技術,也要營造商業生態環境才能成功。
Remarks:
1. Number of lines of code of windows system:
- https://www.quora.com/How-many-lines-of-code-does-Windows-10-contain
- https://en.wikipedia.org/wiki/Source_lines_of_code
- https://informationisbeautiful.net/visualizations/million-lines-of-code/
1993 Windows NT 3.1 4–5 million
1994 Windows NT 3.5 7–8 million
1996 Windows NT 4.0 11–12 million
2000 Windows 2000 more than 29 million
2001 Windows XP: 40 million
2000 Debian 2.2 55–59 million
2002 Debian 3.0 104 million
2005 Debian 3.1 215 million
2007 Debian 4.0 283 million
2009 Debian 5.0 324 million
2012 Debian 7.0 419 million
2009 OpenSolaris 9.7 million
FreeBSD 8.8 million
2005 Mac OS X 10.4 86 million
2001 Linux kernel 2.4.2 2.4 million
2003 Linux kernel 2.6.0 5.2 million
2009 Linux kernel 2.6.29 11.0
2009 Linux kernel 2.6.32 12.6
2010 Linux kernel 2.6.35 13.5
2012 Linux kernel 3.6 15.9
2015-06-30 Linux kernel pre-4.2 20.2
- https://www.forbes.com/sites/antonyleather/2015/05/08/windows-10-to-be-last-version-of-windows/#3dac90fa713a
- https://www.forbes.com/sites/gordonkelly/2015/05/08/microsoft-windows-10-last-windows/
- https://www.theguardian.com/technology/2015/may/11/windows-10-last-version-microsoft
- https://www.theverge.com/2015/5/7/8568473/windows-10-last-version-of-windows