2007年7月29日 星期日

ISBN 13碼新制 2007 年您準備好了嗎?

‧ISBN 13碼新制 2007 年您準備好了嗎? http://lib.ncl.edu.tw/isbn/download/isbn13_report2.pdf

系列報導之二

國家圖書館國際標準書號中心

國際 ISBN 總部,為因應國際間圖書出版量大幅增長及與商品條碼(EAN-13碼)結合,正式宣佈:自 2007 年 1 月起國際標準書號(ISBN)正式全面實施 13碼新制。玆簡單圖例說明「ISBN 13 碼新制」主要變動情形。

ISBN13碼=978+9(位原 ISBN 前 9 碼)+1(位重新計算之檢查碼)

簡單的說,即將現有 ISBN 的第一段前置碼(Prefix)改為「978」,加上「9位原 ISBN 前 9 碼」,以及「1 位重新計算過之檢查碼」。如此就可與圖書之商品條碼(EAN-13 碼)完全相符。也就是說:自 2007 年 1 月以後,印製在圖書封底(橫排本為右下方,直排本為左下方)之條碼上方須印製有連字符號的 13 碼ISBN;條碼下方則印製與圖書商品條碼完全相同的 13 碼數字串,惟此項字串間沒有連字號或空格。(如上圖例說明)

當然,國家圖書館國際標準書號中心,也自 2007(民國 96)年 1 月 1 日起,對於臺灣地區所有出版的新書,只能編配 13 碼的 ISBN。圖書出版業、發行業和圖書館界所印製或建立的新書出版目錄、圖書訂購以及與圖書相關的商業交易系統(如電子資料交換(EDI))等,也將同步採行 13 碼的 ISBN。

國際 ISBN 總部,特別呼籲提醒「圖書出版界」或「出版機構」應該立刻檢視下列相關作業系統,以因應未來的改變。例如:

1.ISBN 編號管理系統;
2.產品資訊系統;
3.編輯管理系統;
4.生產製作系統;
5.電子書供應系統;
6.訂購與倉庫管理系統;
7.會計暨財務系統;
8.版權、契約及權利金管理系統。

對於「圖書發行業」或「銷售單位(如書店、網路書店)」,國際 ISBN 總部進一步建議應該檢視的系統有:

1.訂購系統;
2.庫存管理系統;
3.退貨管理系統;
4.銷售管理系統(POS);
5.會計暨財務系統。

至於「圖書館界」則需立刻檢視的作業系統包括:

1.採購作業系統(包括與書商間之交易訊息);
2.編目及其他書目資料登錄系統;
3.館際互借系統;
4.書目記錄輸入程序;
5.條碼閱讀機;
6.館藏目錄;
7.資訊入口/跨資料庫檢索(metasearch)系統;
8.其他 ISBN 相關功能與系統。

國家圖書館國際標準書號中心為方便圖書出版業界、政府機關及其出版部門和關心人士了解「ISBN 新制」的改變,陸續於「全國新書資訊網」(點選「ISBN 13 碼」)將 13 碼結構及其相關標準資料、「13 碼 ISBN 即將於 2007 年起施行—您準備好了嗎?」(PDF 檔),以及連結至國際 ISBN 總部提供之國際標準書號10 碼轉 13 碼轉換軟體等訊息公佈,歡迎有興趣民眾上網查詢。

專案服務專線,
電話:(02)23619132 轉 701 至 703;
傳真:(02)23115330;
電子信箱:isbn@msg.ncl.edu.tw;
網址:http://lib.ncl.edu.tw/isbn/index.htm

一窺更快速的Power6、Cell晶片

‧一窺更快速的Power6、Cell晶片
http://taiwan.cnet.com/news/hardware/0,2000064553,20113492,00.htm
CNET新聞專區:Stephen Shankland  02/01/2007
根據一場半導體會議的活動表單研判,處理器時脈速度的競賽尚未結束。
國際固態電路會議(ISSCC)訂於2月11日在舊金山登場。會議資料顯示,IBM的Power6處理器在高效能狀態下,時脈速度超過5GHz;由IBM、Sony和東芝共同研發的次世代Cell寬頻引擎(Cell Broadband Engine)處理器,速度更進一步加快到6GHz。
時脈有如電子裝置的心跳,作為處理器運作同步化的基準。晶片製造商為改良處理器的執行效能,一直努力提升時脈速度,但卻遭遇技術瓶頸,因為頻率提高往往會導致耗電量和廢熱擴增。
因此,英特爾與超微公司(AMD)改弦易轍,轉而在單顆矽晶上添加多重的處理核心。這種作法可讓電腦同時執行眾多的任務。不過,若能同時提高時脈速度,意味單項任務的執行速度會加快。
第一代的Cell寬頻引擎處理器最近初試身手,用於Sony新推出的PlayStation 3遊戲主機,執行速度可達4GHz。ISSCC的會議議程表顯示,第二代晶片的執行速度將提高到6GHz。而且,這款新晶片將採用雙電源供應,有助於提高記憶效能--這正是當今電腦設計上的一大瓶頸。
伺服器晶片方面,IBM已預告將在2007年推出Power6處理器,執行速度介於4GHz與5GHz之間。但從ISSCC議程表看來,藍色巨人表示,這款新型伺服器晶片在執行高效能應用程式時,速度可「超越5GHz」,而且「執行具省電意識的應用程式時,耗電量低於100瓦」。這種節能效益大約與AMD主流95瓦的Opteron晶片和80瓦英特爾Xeon晶片旗鼓相當。
Power6內含7億個電晶體,尺寸約341平方毫米。晶片的表面積愈小,可從同一片晶圓上切割出來的晶片數目就愈多,平均每顆晶片的製造成本也就降低,因此能賦予電腦廠商更強的競爭力。Power6和第二代的Cell一樣,也採用65奈米製程。
同時,英特爾也沒閒著。9月間,英特爾展示一款具80個核心的晶片原型,每秒可執行1兆次的數學運算。英特爾將在ISSCC場合進一步詳述這款晶片的技術細節,包括把每秒運算次數提高到1.28兆次。
會議議程表顯示,這顆晶片的尺寸為275平方毫米--比9月時的303平方毫米縮小--執行速度達4GHz。英特爾指出,這款晶片採用「晶片上網路」(network-on-chip;NoC)架構,內含1億個電晶體,並釋出98瓦的廢熱。英特爾把每個核心稱為「tile」,而每個「tile」都具備網路切換功能,用來導引資料封包。
英特爾發言人Erica Fields說:「設計這顆晶片,是把它當作研究工具,用來測試多核心處理器的互連(interconnect )策略。這項研究的目標包括測試新晶片設計方法,以及探討「如何在多重核心之間,以及核心與記憶體之間,快速傳輸數兆位元組計的資料」。她表示,這款原型晶片不能執行支援英特爾晶片的傳統軟體。
這場ISSCC會議的處理器相關討論議題還包括:
* 昇陽(Sun Microsystems)將提供Niagara 2處理器的詳細資料。這款處理器尺寸為342平方毫米,含5億個電晶體,有八個核心,可同時執行64串指令序列(即「執行緒」)。
* IC設計公司P.A. Semi將發表新的雙核晶片,據稱最大耗電量25瓦,執行速度達2GHz,尺寸為115平均毫米。
* AMD將聚焦於預定2007年中問世的四核心Barcelona處理器。
(唐慧文/譯)
※ 相關報導:
* International Solid State Circuits Conference (ISSCC)
http://www.isscc.org/isscc/

比較Ubuntu, Macintosh and Windows XP

‧比較Ubuntu, Macintosh and Windows XP
http://lxer.com/lxer/story/56437/index.html


如果你認為一位 Linux 的提倡者沒有辦法對桌上型作業系統進行客觀 的分析,那麼,你必須讀這篇報導。你可能會發現你自己會對一些殘酷 的坦白感到驚訝,這些省略掉自由軟體的哲學。

這三種桌上型作業系統都有令人讚賞的品質。每一種種都有其弱點。最近參加了一場使用者集會(User Group Fair),我有了另一次機會可以看見它們在工作。自從我使用過這三種平台,並且在上面撰寫程式之後,賦予我一些公正的洞察力。

背景

我有數台麥金塔電腦。我有新世界以及舊世界 bios 的機器,包含數款老式的 6500, 7600 等等,這些都沒有辦法裝 OS X。我也有藍白機,以及一台米黃色的工作群組 server(應指 Power Macintosh G3),數台 Power Mac G4, Cube, iBook 等等。我記得從 OS 9 過度到 OS X。我喜歡它。

我從 DOS 時代開始使用微軟產品,一直到早期的 Windows 2.0, 3.0, 3.11, Windows 95 98 ME, NT3.51 - 4.0, 2000 與 XP。我擁有從 Windows 3.1 以來的所有授權以及媒體。我管理大型的 IBM 網路,桌上型電腦跑 OS/2,server 跑 LAN Server 3。不過我將不會提到我的 NetWare
經歷。

我也使用過 Solaris, AIX 以及從 Slackware 3.x 開始使用 Linux。我甚至在 Sun 的 IPC(老式的)、Sparc 5 與 10 工作站上安裝過 Red Hat。我現在則在日常使用的 server 與工作站當中使用 SUSE SLES 與 Pro, RHEL, Fedora, Debian 與 Ubuntu。

每一種系統都有不同的程式架構,OS X 比 Windows 更靠近 Linux。OS X 在其內部是執行 UNIX 的架構。然而 OS X 的桌上界面一點都不像 Linux 或是或是其他依靠 X(X Window System) 的 UNICES。你可以直接在 Mac 內使用 X。

Windows 與 OS X 及 Linux 相較起來有著截然不同的程式結構。Windows 相當依賴它的使用者界面,這些界面隨著時間逐步發展。程式設計則涉及使用 Windows sell 延伸功能。XP 使用 NT 核心來管理檔案系統、內部而且透過圖形化 shell 來溝通。

OS X 與 Linux 則使用完全不同的方式來使用核心延伸功能,而單獨的程式則在使用者界面 shell 當中執行。UNIX 的 shell 獨立於核心執行,研發者稱為 userland。

UNIX 以及 Linux 程式設計者考慮他們的程式方法比 Windows 的要更好。Windows 的開發者考慮到的是界面延伸功能要更容易使用,並提供了快速應用程式開發(RAD)環境。當你客觀的觀察它們,每一種都有其可取之處。當然,麥金塔的研發者將會表示,自從他們改用 UNIX 的(開發)方式後,他們都有更穩定的經歷。

麥金塔

我接觸的第一部 Mac 被設定成一部桌上出版機器。我記得喜歡它,因為它節省我們樣式設定以及圖形、貼上等成本花費。然後我開始在 DoE(美能源部)實驗室將 Mac 當作製作機器。

就個人使用而言,我使用 Mac 來製作圖形、聲音以及開發網站。OS X 則做了很大的改變,自此我從未在工作當中重新開機過。我也知道在 UNIX 到處遊走的方法,這允許我使用我以前從未用過的網際網路應用程式。

我發現開發者工具箱當有用。我享受這樣的界面。當我購買 "OS X, the Missing Manual" 之後,我發現我自己探索更多系統。這本書也幫助我發現使用 Winodws 與 Linux 的新方法,這些我之前從不知道。

Windows XP

我記得我使用 XP 三個月沒有重新開機過。我不記得之前發生過的事了。我自 Windows 95 到來時開始收集微軟認證。我使用 Excel 5 以及 Access 來開發財務工具。稍後,我成為系統管理員,並且跑一對很大型的 NT 網路。

XP 在我們的防火牆後面顯得很安全。在三個月後我的系統開始遲鈍,並且有被惡意軟體感染的傾向。我持續規律地維護系統,包括重組磁碟,砍殺不需要的檔案,以及檢查登錄檔。

我比較喜歡 XP 更勝於之前的微軟 OS,並且還有一台工作站在我的實驗室當中執行。當第一台 XP 首次到達時我用它來建立一個 plug-in 或是給 Outlook 用的 Exchange Client Extension,這允許它可以在 Linux 的群組軟體 server 上執行。這台 server 與 Exchange 對等(peered),並且使用自由軟體,例如:exim, apache, OpenLDAP, Cyrus IMAP 等等。

比較

我從民調、分析報告以及個人經驗當中結合資訊,來比較每一個系統。我對於自由軟體存有個人的偏見,不過我戴上我經過認證的『分類帽』,盡力保留剩下來的客觀。


Ubuntu

對於程式編寫、管理、取代一台 UNIX 工作站並且適度扮演桌上型電腦,Linux 做的不錯。使用關鍵應用程式例如:Openoffice.org 當作 Office 軟體、Evolution 來收發 e-mail、GAIM 當作即時通、Firefox 當作網頁瀏覽器、GIMP 來處理處理圖案,CUPS 當作列印系統,Samba 來交換檔案,Linux 在這些方面都有適用的地方。它也比其他作業系統用掉更少的資源。

Ubuntu 在比較的目的當中運作良好。Ubuntu 在 Linux 的桌面市場上已經有超過 25% 的佔有率,相較之下,第二名的 SUSE 只有 11.4%。所以我將在報告中使用 Ubuntu 來代表 Linux 的桌面環境。

就像所有的 Linux 桌面環境,Ubuntu 有其限制。它缺乏諸如:Photoshop, Framemaker, Pagemaker, Visio, Access, Quickbooks, 一個 PDF 轉換器,合法的 DVD 播放程式以及最重要的所得稅申報軟體。沒有了這些程式,直接移植到 Linux,Ubuntu 依然是中等的桌面環境。

我每天使用 Ubuntu 超過 12 個小時。所以我並沒有因為缺乏這些軟體而發牢騷。我發現 GIMP 可以滿足並取代 Photoshop,而且我才剛完成最新版 Photoshop 30 日的測試期。

Linux 桌面環境對於開發者而言有許多優勢更勝於劣勢,特別是用來設計網站服務、移植應用軟體以及工程工作。它可以在普通價格的硬體上執行,並且在處理圖形密集的軟體時花費更少的記憶體。我可以用 512MB 的記憶體來表現其他 OS 需要 1GB 記憶體才能辦到的工作。

總的來說,Ubuntu 在取代 UNIX 工作站方面表現相當優異,並且擁有更優秀的桌面。它符合企業中中階桌上型使用者 80 - 90% 的需要。

家庭使用者會發現它是個優良的 OS,特別是它的穩定性、簡單易用而且可以合法的使用 Xine, Mplayer 等軟體。影、音軟體在美國只有 Mac 與 Windows 才能用。

一個修改過的 Ubuntu 能給使用者除了所得稅申報軟體之外所有想要東西。VMware 與 Win4Lin 對於一些想要使用 Windows 應用軟體的人有用。TransGaming Technologies 則為知名的Windows 遊戲提供類似的模擬。


Windows XP

XP 是一個能夠滿足眾多應用軟體需求的 OS。龐大的銷售量引誘獨立軟體供應商,例如:Adobe, AutoDesk, Intuit, Corel, Cyberlink, RIM 以及主要以 Win32 API 開發的公司。微軟自己的應用軟體在 XP 的環境中亦運作良好。

Windows XP 都已經預先安裝在每一個電腦製造商生產的產品當中,除了 Apple 之外。較低的 OEM 售價相對於高價的零售價使得 XP 佔據大部分的電腦。低成本對於 IBM, HP, Dell, Gateway 之類的製造商,以及第二層或是白牌(DIY)製造商而言,允許它們修改它們的軟體與硬體來執行 XP。

自從 Windows XP 首次露面以來,微軟已經透過許多安全修補與 service packs 來改善它。由於已有許多系統部署,Windows XP 對於惡意軟體更容易受傷。XP 仍是 PC 使用者的主流。

Windows XP 與 Linux, 麥金塔或 UNIX 相較之下不見得有利,它不同於一個開發平台。微軟的開發工具嚴格的在 Windows 上工作,並且不允許在不同桌面上跨平台執行(例如:Mac, Linux 或非 Intel 處理器)。不過這對於應用軟體相當充足的 XP 使用者而言這應該不是問題。

Windows installed 基本上表示已經有許多在這系統上受過訓練的人成為終端使用者。這對於他們採用其他系統會造成障礙。現在有眾多 MCES 存在。這些工程師以及產品專家可以快速修復使用者的問題。他們看起來也沒有搬遷到其他平台的需求。

雖然成本解省並沒有成為微軟的優勢,儘管他們嘗試要人們相信他們的 " Get the Facts" 戰役。

Macintosh OS X

麥金塔 OS X 只能在限定數量的硬體裝置上執行,這讓 Apple Computers 能夠提供一個穩定以及高效能的產品。蘋果的入門產品例如 Mac mini 提供一個低成本、高價值得多媒體平台。

蘋果的高階桌上型環境例如:Power Mac G5,雙核心、四核心的 PowerPC 處理器提供圖形以及多媒體使用者卓越的效能。Powerbook 對於開發者與創作者之間佔有相似的位置。有不少人也使用高階產品當作 server 或是開發環境。

蘋果仍是 PC 市場的主要創新者。蘋果製造優越的顯示器以及周邊設備。使用者顯然要為蘋果的產品付出更多的錢,因為它的高效能與創新。

然而,蘋果在之前因為它缺乏軟體供應而比價昂貴還要受到更多的批評。OS X 提供了比一個差強人意的主機還要更多的東西,例如:財務軟體 Intuit、Adobe 的主要供應與微軟的 Office 軟體。蘋果亦從 Linux 使用者慣常見到的,由自由軟體所提供的軟體當中獲得相同利益。蘋果也提供了許多廣泛的原生應用軟體,例如:DVD 播放軟體以及多媒體工具。

蘋果麥金塔並不如同 Linux 那樣適合中階的 PC 使用者。因為無法在常見的硬體上運作,讓蘋果在企業當中成為一種特別的產品。可以買的起蘋果產品的人都對 Mac 與 OS X 都有特別的熱愛。

近一點看

Mac 的 OS X 以及微軟的 Windows XP 在教育的領域有一項優勢超越 Linux ,在那裡存有諸如外國語言的課程需求。這方面的供應缺乏讓 Linux 用於教育的需求退縮。

直到平常的硬體製造商以及獨立軟體供應商能夠推出 for Linux 的產品之前,在桌上型區域當中的人口將會維持固定不變。異議仍會出現在中階桌上型的領域內。相關的分析會繼續把Windows 推薦給企業,直到獨立軟體供應商將它們軟體移植到 Linux,或是能夠滿足所需的替代品出現。

對於軟體體製造者來說,提供產品給 Linux 得冒相當顯著的風險。例如:Linux 設群比較偏好自由軟體,所以獨立軟體供應商不能夠從中回收研發費用。

其次,接連不斷的研發循環對於像 Adobe 與 Intuit 之類的公司是至關緊要的,它的費用可能會因為 Linux 的每一次釋出與升級而增加。Ubuntu 擁有以六個月唯一週期的釋出週期,並且經常更新應用軟體以及函式庫。這會嚇跑獨立軟體供應商。

如果獨立軟體供應商無法解決 Linux 不斷升級的循環,它們依然不知道 Linux 是否能成為微軟之外的桌面環境替代者。也許,Adobe 與 Intuit 產品的利益會讓 Linux 超載(supercharge)。

一些公司已經領悟到 UNIX 桌上環境的風險,並且被激怒(burned badly)。在此期間,Windows 將會是桌上環境的大宗。麥金塔將依然會是行家的選擇,而 Ubuntu 則依然會是中階桌上型環境以及開發者最受歡迎的平台。

Mac OS X 為何能夠跑的更快?

‧Mac OS X 為何能夠跑的更快?
Making An Operating System Faster

http://www.kernelthread.com/mac/apme/optimizations/


Introduction

電腦硬體的效能通常只會隨著時間增加而而強大。即便這個說法也可以用來表示軟體,不過軟體效能增進的比率還是比硬體慢上許多。事實上,有許多人認為,有很多軟體,其效能反而會隨著時間增加而持續不斷的下降。此外,要建立一個客觀的效能評斷標準亦十分困難,更別提複雜程度如同作業系統一般的軟體了:一個 "更快的 OS(作業系統)" 是一個非常主觀,而且
依賴文章脈絡的用詞。

一個 OS 的結構要比普通硬體來的長壽許多。OS 的研究者通常不會提供更新、更快的演算法,如同硬體那樣固定、頻繁的發生更新。然而,那些牽連到 "製造(producing)" OS 的人 -- 包括研究者,設計者,實作者,甚至是行銷者 -- 都負有艱鉅的任務,要確保相關的效能曲線能夠跟上腳步。在 OS 市場的倖存者並不多(有些人可能會爭辯,就修辭學上而言,在這根本只有一個)。然而,它還是一個十分頑固(tough)的市場,而且 OS 供應商必須要不間斷的 "改進" 它們的系統。

現在,要詢問不喜歡在每次 OS 釋出循環當中,都遇到驚天動地的演算法突破的你,如何使你的系統更快?這個問題有多重的解決方案:

* Rather than looking for generalized optimizations pedantically, you could look into making the system faster for one (or more, but a few) "common" usage scenario. (你可以用常見的一種,或數種方式來使系統最佳化)

* You could consider numerous minor and mundane performance improvements, even if they are technically unimpressive/uninteresting, or ugly/kludgy to implement. Together, such improvements could lead to a perceptible performance gain from the users' point of view.
(你可以用許多之微末節的、通俗的效能增進方式,甚至它是醜陋的方法亦無妨,當然以使用者的觀點而言,效能的確是增進了。)

* You could vary the granularity at which you would usually make improvements. For example, in addition to improving typical OS algorithms, you could look into improving more meta operations, such as the entire boot process.
(你可以在你想要修改的地方動手,通常也會使效能增進,例如:整個開機程序)

* The most important kind of performance is the one perceived by the eventual users of a system. Thus, in any usage scenario, a "faster workflow" would be tantamount to "higher performance".

It might be possible to make the workflow faster without making fundamental changes in the design and implementation of the components involved. With apriori knowledge of how the system would be typically used, you could rearrange the order in which things happen (even if the resulting order is unnatural or unclean), if doing so makes the user believe that things are
happening faster.
(效能最重要的增進在於終端使用者對於系統的感覺。因此,在許多情況下, "更快的流程" 通常代表 "更高的效能"。你可以依照系統的先天條件來安排使用順序,可以在不更動原有條件下達到效能增進的目的。如果要這麼做,要讓使用者相信事情變得更快了。)


Example: Mac OS X

這份文件提到 Apple 在增進 Mac OS X 效能方面(在最初的/根本的 OS 設計與實作之外)所作的十件。有些顯然是相當棒的點子,亦是等著被履行的的候選者;有些是給研發者的指導方針或是工具,幫助他們建造更高效能的應用程式,此外,還有些是從戰略性選擇角度來延伸效能的積極性(proactive)嘗試。

以下所考慮的十項優勢並沒有特別的先後順序考慮:

* BootCache
* Kernel Extensions Cache
* Hot File Clustering
* Working Set Detection
* On-the-fly Defragmentation
* Prebinding
* Helping Developers Create Code Faster
* Helping Developers Create Faster Code
* Journaling in HFS Plus
* Instant-on


1. BootCache

Mac OS X uses a boot-time optimization (effectively a smart read-ahead) that monitors the pattern of incoming read requests to a block device (the boot disk), and sorts the pattern into a "playlist", which is used to cluster reads into a private cache. This "boot cache" is then used for satisfying incoming read requests, if possible. The scheme also measures the cache hit rate, and stores the request pattern into a "history list" for being adaptive in future. If the hit rate is too low, the caching is disabled.

The loadable (sorted) read pattern is stored in /var/db/BootCache.playlist. Once this pattern is loaded, the cache comes into effect. The entire process is invisible from users.

This feature is only supported on the root device. Further, it requires at least 128 MB of physical RAM before it is enabled (automatically).

/System/Library/Extensions/BootCache.kext is the location of the kernel extension implementing the cache while Contents/Resources/BootCacheControl within that directory is the user-level control utility (it lets you load the playlist, among other things).

The effectiveness of BootCache can be gauged from the following: in a particular update to "Panther", a reference to BootCacheControl was broken. BootCache is started (via BootCacheControl, the control utility) in /etc/rc, and a prefetch tag is inserted (unless the system is booting in safe mode). /etc/rc looks for BootCacheControl in the Resources directory of the BootCache.kext bundle, as well as in /usr/sbin, and finds it in the former (it doesn't exist in the latter). However, another program (loginwindow.app) accesses /usr/sbin/BootCacheControl directly, and does not find it. For what it's worth, making BootCacheControl available in /usr/sbin, say via a symbolic link, reduces the boot time (measured from clicking on the "Restart" confirmation button to the point where absolutely everything has shown up on the system menu) from 135 seconds to 60 seconds on one of my machines.

2. Kernel Extensions Cache

There may be close to a hundred kernel extensions that are loaded on a typical Mac OS X system, and perhaps twice as many residing in the system's "Extensions" folder(s). Kernel extensions may have dependencies on other extensions. Rather than scan all these every time the system boots (or worse, every time an extension is to be loaded), Mac OS X uses caching for kernel extensions, and the kernel itself.

There are three types of kernel/kext caches used in this context:

  • The kernel cache contains the kernel code, linked kernel extensions, and info dictionaries of any number of kernel extensions. The default cache directory for this type of cache is /System/Library/Caches/com.apple.kernelcaches. The cache files in this directory are named kernelcache.XXXXXXXX, where the suffix is a 32-bit adler checksum (the same algorithm as used by Gzip).
  • The multi-extension, or mkext cache, contains multiple kernel extensions and their info directories. Such caches are used during early system startup. BootX, the bootloader, tries to load a previously cached list of device drivers (created/updated by /usr/sbin/kextcache). If the mkext cache is corrupt or missing, BootX would look in /System/Library/Extensions for extensions that are needed in the current scenario (as determined by the value of the OSBundleRequired property in the Info.plist file of the extension's bundle. The mkext cache exists by default as /System/Library/Extensions.mkext. You can use /usr/sbin/mkextunpack to extract the contents of a mkext archive.
  • The kext repository cache contains the info dictionaries for all kernel extensions in a single repository directory, including their plugins. This cache exists by default as /System/Library/Extensions.kextcache. Note that this file is simply a large property list (XML) file that is Gzip compressed.
3. Hot File Clustering

Hot File Clustering (HFC) aims to improve the performance of small, frequently accessed files on HFS Plus volumes. This optimization is currently used only on boot volumes. HFC is a multi-staged clustering scheme that records "hot" files (except journal files, and ideally quota files) on a volume, and moves them to the "hot space" on the volume (0.5% of the total filesystem size located at the end of the default metadata zone, which itself is at the start of the volume). The files are also defragmented. The various stages in this scheme are DISABLED, IDLE, BUSY, RECORDING, EVALUATION, EVICTION, and ADOPTION. At most 5000 files, and only files less than 10 MB in size are "adopted" under this scheme.

The "metadata zone" referred to in the above description is an area on disk that may be used by HFS Plus for storing volume metadata: the Allocation Bitmap File, the Extents Overflow File, the Journal File, the Catalog File, Quota Files, and Hot Files. Mac OS X 10.3.x places the metadata zone near the beginning of the volume, immediately after the volume header.

HFC (and the metadata zone policy) are used only on journaled HFS Plus volumes that are at least 10 GB in size.

Note that what constitutes the set of hot files on your system will depend on your usage pattern over a few days. If you are doing extensive C programming for a few days, say, then it is likely that many of your hot files will be C headers. You can use hfsdebug to explore the working of Hot File Clustering.

% sudo hfsdebug -H -t 10 # Top 10 Hottest Files on the Volume rank temperature cnid path 1 537 7453 Macintosh HD:/usr/share/zoneinfo/US/Pacific 2 291 7485 Macintosh HD:/private/var/db/netinfo/local.nidb/Store.128 3 264 7486 Macintosh HD:/private/var/db/netinfo/local.nidb/Store.160 4 204 7495 Macintosh HD:/private/var/db/netinfo/local.nidb/Store.96 5 204 2299247 Macintosh HD:/Library/Receipts/iTunes4.pkg/Contents\ /Resources/package_version 6 192 102106 Macintosh HD:/usr/include/mach/boolean.h 7 192 102156 Macintosh HD:/usr/include/mach/machine/boolean.h 8 192 102179 Macintosh HD:/usr/include/mach/ppc/boolean.h 9 188 98711 Macintosh HD:/usr/include/string.h 10 178 28725 Macintosh HD:/HFS+ Private Data/iNode1038632980 3365 active Hot Files.

4. Working Set Detection

The Mach kernel uses physical memory as a cache for virtual memory. When new pages are to be brought in as a result of page faults, the kernel would need to decide which pages to reclaim from amongst those that are currently in memory. For an application, the kernel should ideally keep those pages in memory that would be needed very soon.

In the Utopian OS, one would know ahead of time the pages an application references as it runs. There have been several algorithms that approximate such optimal page replacement. Another approach is to make use of the locality of reference of processes. According to the Principle of Locality, a process refers to a small, slowly changing subset of its set of pages. This subset is the Working Set. Studies have shown that the working set of a process needs to be resident (in-memory) in order for it to run with acceptable performance (that is, without causing an unacceptable number of page faults).

The Mac OS X kernel incorporates a subsystem (let us call it TWS, for Task Working Set) for detecting and maintaining the working sets of tasks. This subsystem is integrated with the kernel's page fault handling mechanism. TWS builds and maintains a profile of each task's fault behavior. The profiles are per-user, and are stored on-disk, under /var/vm/app_profile/. This information is then used during fault handling to determine which nearby pages should be brought in.

Several aspects of this scheme contribute to performance:

  • Bringing a number of pages in (that would hopefully be needed in the near future) results in a single large request to the pager.
  • TWS captures, and stores on disk, an application's (initial) working set the first time it is started (by a particular user). This file is used for seeding (sometimes called pre-heating) the application's working set, as its profile is built over time.
  • The locality of reference of memory is usually captured on disk (because files on disk usually have good locality on HFS Plus volumes). Thus, there should not be too much seeking involved in reading the working set from disk.

For a user with uid U, the application profiles are stored as two page cache files: #U_names and #U_data under /var/vm/app_profile/ (#U is the hexadecimal representation of U).

The "names" file, essentially a simple database, contains a header followed by profile elements:

typedef unsigned int natural_t; typedef natural_t vm_size_t; struct profile_names_header { unsigned int number_of_profiles; unsigned int user_id; unsigned int version; off_t element_array; unsigned int spare1; unsigned int spare2; unsigned int spare3; }; struct profile_element { off_t addr; vm_size_t size; unsigned int mod_date; unsigned int inode; char name[12]; };

The "data" file contains the actual working sets.

5. On-the-fly Defragmentation

When a file is opened on an HFS Plus volume, the following conditions are tested:

  • If the file is less than 20 MB in size
  • If the file is not already busy
  • If the file is not read-only
  • If the file has more than eight extents
  • If the system has been up for at least three minutes

If all of the above conditions are satisfied, the file is relocated -- it is defragmented on-the-fly.

File contiguity (regardless of file size) is promoted in general as a consequence of the extent-based allocation policy in HFS Plus, which also delays actual allocation. Refer to Fragmentation In HFS Plus Volumes for more details.

6. Prebinding

Mac OS X uses a concept called "prebinding" to optimize Mach-O (the default executable format) applications to launch faster (by reducing the work of the runtime linker).

The dynamic link editor resolves undefined symbols in an executable (and dynamic libraries) at run time. This activity involves mapping the dynamic code to free address ranges and computing the resultant symbol addresses. If a dynamic library is compiled with prebinding support, it can be predefined at a given (preferred) address range. This way, dyld can use predefined addresses to reference symbols in such a library. For this to work, libraries cannot have preferred addresses that overlap. Apple marks several address ranges as either "reserved" or "preferred" for its own software, and specifies allowable ranges for 3rd party (including the end users') libraries to use to support prebinding.

update_prebinding is run to (attempt to) synchronize prebinding information when new files are added to a system. This can be a time consuming process even if you add or change a single file, say, because all libraries and executables that might dynamically load the new file must be found (package information is used to help in this, and the process is further optimized by building a dependency graph), and eventually redo_prebinding is run to prebind files appropriately.

Prebinding is the reason you see the "Optimizing ..." message when you update the system, or install certain software.

/usr/bin/otool can be used to determine if a binary is prebound:


# otool -hv /usr/lib/libc.dylib
/usr/lib/libc.dylib:
Mach header
magic cputype cpusubtype filetype ncmds sizeofcmds flags
MH_MAGIC PPC ALL DYLIB 10 1940 \
NOUNDEFS DYLDLINK PREBOUND SPLIT_SEGS TWOLEVEL


7. Helping Developers Create Code Faster

Mac OS X includes a few optimizations that benefit developers by making development workflow -- the edit-compile-debug cycle -- faster. Some of these were introduced with Mac OS X Panther.

  • Precompiled Headers: Xcode (gcc, specifically) supports precompiled headers. Xcode uses this functionality to precompile prefix headers.



% cat foo.h
#define FOO 10
% cat foo.c
#include "foo.h"
#include <stdio.h>

int
main()
{
printf("%d\n", FOO);
}
% ls foo.*
foo.c foo.h
% gcc -x c-header -c foo.h
% ls foo.*
foo.c foo.h foo.gch
% gcc -o foo foo.c
% ./foo
10
% rm foo.h
% gcc -o foo foo.c
% ./foo
10


  • Distributed Builds: Xcode (through distcc) supports distributed builds, wherein it is possible to distribute builds across several machines on the network.
  • Predictive compilation runs the compiler in the background (as soon as it can, even as you edit the source). Once you are ready to build, the hope is that much of the building would have been done already.
  • Zero Link, a feature useful for development builds, links at runtime instead of compile time, whereby only code needed to run the application is linked in and loaded (that is, as an application runs within Xcode, each object file is linked as needed). A related feature is "Fix and Continue", courtesy which you can (with caveats) make a change to your code and have the code compiled and inserted into a running program.
8. Helping Developers Create Faster Code

Apple provides a variety of performance measurement/debugging tools for Mac OS X. Some of these are part of Mac OS X, while many others are available if you install the Apple Developer Tools. Quite expectedly, Apple encourages its own developers, as well as 3rd party developers, to create code in conformance with performance guidelines.

As mentioned earlier, perceived performance is quite important. For example, it is desirable for an application to display its menu bar and to start accepting user input as soon as possible. Reducing this initial response time might involve deferring certain initializations or reordering the "natural" sequence of events, etc.

Mac OS X Tools

Mac OS X includes several common GNU/Unix profiling/monitoring/dissecting tools, such as gprof, lsof, nm, top, vm_stat, and many more, such as:

Refer to Apple's documentation for these tools for more details.

  • fs_usage Report system calls and page faults related to filesystem activity.
  • heap List all malloc-allocated buffers in a process's heap.
  • ktrace/kdump Enable/view (from a trace) kernel process tracing.
  • leaks Search a process's for unreferenced malloc buffers.
  • malloc_history Show a process's malloc allocations.
  • otool Display various parts of an object file.
  • pagestuff Display information on specified pages of a Mach-O file.
  • sample Profile a process during a time interval.
  • sc_usage Show system call usage statistics.
  • vmmap Display virtual memory regions allocated in a process.

Performance Measurement Tools

  • MallocDebug Tracks and analyzes allocated memory.
  • ObjectAlloc Tracks Objective-C and Core Foundation object allocations and deallocations.
  • OpenGL Profiler Tool for profiling OpenGL applications.
  • PEFViewer Viewer for the contents of a PEF binary.
  • QuartzDebug Visualizer for an application's screen drawing behavior -- the areas being redrawn are flashed briefly.
  • Sampler Viewer for execution behavior of a program.
  • Spin Control Samples applications that cause the spinning cursor to appear.
  • Thread Viewer Viewer for threads and their activity.

CHUD Tools

The Computer Hardware Understanding Development (CHUD) Tools package, an optional installation, provides tools such as the following:

  • BigTop A graphical equivalent to top, vm_stat, etc. Displays system statistics.
  • CacheBasher Measures cache performance.
  • MONster Tool for collecting and visualizing hardware level performance data.
  • PMC Index Tool for searching Performance Monitoring Counter (PMC) events.
  • Reggie SE A viewer (and editor) for CPU and PCI configuration registers.
  • Saturn Tool for profiling applications at the function-call level, and visualizing the profile data.
  • Shark Performs system-wide sampling/profiling to create a profile of the execution behavior of a program, so as to help you understand where time is being spent as your code runs.
  • Skidmarks GT Processor performance benchmark (integer, floating-point, and vector benchmarks).
  • SpindownHD Utility for displaying the sleep/active status of attached drives.
  • acid Analyzes traces generated by amber (only the TT6E format).
  • amber Traces all threads of execution in a process, recording every instruction and data access to a trace file.
  • simg4 A cycle-accurate core simulator of the Motorola PowerPC G4 processor.
  • simg5 A cycle-accurate core simulator of the IBM PowerPC 970 (G5) processor.
9. Journaling in HFS Plus

While modern filesystems are often journaled by design, journaling came to HFS Plus rather late. Apple retrofitted journaling into HFS Plus as a supplementary mechanism to the erstwhile working of the filesystem, with Panther being the first version to have journaling turned on by default.

On a journaled HFS Plus volume, file object metadata and volume structures are journaled, but not file object data (fork contents, that is). The primary purpose of the journal is to make recovery faster and more reliable, in case a volume is unmounted uncleanly, but it may improve the performance of metadata operations.

10. Instant-on

Apple computers do not hibernate. Rather, when they "sleep", enough devices (in particular, the dynamic RAM) are kept alive (at the cost of some battery life, if the computer is running on battery power). Consequently, upon wakeup, the user perceives instant-on behavior: a very desirable effect.

Similarly, by default the system tries to keep network connections alive even if the machine sleeps. For example, if you login (via SSH, say) from one PowerBook to another, and both of them go to sleep, your login should stay alive within the constraints of the protocols.

Epilogue

Using Mac OS X as an example, we looked at a few kinds of optimizations that "OS people" (particularly those involved in creating an end-user system) adopt to improve performance. The integration of all such optimizations is perhaps even more important than the optimizations themselves. The end result should be a perceptible improvement in performance. A desirable manifestation of such improvement would be a faster workflow for the end-user.

來自地獄的 OS:Inferno

‧來自地獄的 OS:Inferno
http://www.vitanuova.com/inferno/index.html

這套號稱超越 Plan 9 的 OS(開發者是研發出 Plan 9 以及早期 UNIX 甚至是 C 語言的那票人)經過四版改進後,終於公開推出,有 Free 的,也有要錢的版本,另外他有自己專屬的授權: Vita Nuova Liberal Source Licence (http://www.vitanuova.com/inferno/licence.html)

Inferno 可以像一般 OS 那樣獨立執行,或是以應用程式的方式 "附身" 在其他 OS 之上跑,就如同普通的應用程式一樣。每個 Inferno 系統都是獨立執行的環境,不管在什麼硬體架構下,應用程式跑起來的感覺都一樣。它
甚至能成為 IE plug-in,在 IE 裡面跑其他屬於 Inferno 的軟體!

另外 Inferno 具有類似 Plan 9 的 Namespaces 架構,所有的資源都可以成為檔案,並且使用相同的協定來溝通。

程式開發軟體當然也少不了,他具備與 C 語言類似但更具威力的程式語言 Limbo 用來開發Inferno 的應用軟體,它容易了解,而且比 C++、Java 更容易除錯,另外它會把程式編譯成位元碼,因此可以像 Java一樣在橫跨各個 CPU 平台的 Inferno 系統上執行。另外,它還有類似UNIX 的指令,讓你更容易上手。

另一個有趣的地方是系統中相關的元件都是使用與西方地獄相關的名稱來命名的... 例如:冥河、渡船人、地獄邊境等等,果然是一套來自地獄的作業系統。

現在 Inferno 的 Acme IDE(包含:editor, shell, 以及 UI)推出了一個 for Windows 的計畫 Acme SAC,它是把 Acme IDE 跟 Inferno 系統一起封裝,讓它變成一個可以獨立在 Windows 下執行的應用軟體。有興趣的人可以到這裡參觀:http://www.caerwyn.com/acme/

MenuetOS - 純組合語言打造的 OS

‧MenuetOS - 純組合語言打造的 OS
http://www.menuetos.net/index.htm

MenuetOS 是 GEOS(http://www.osnews.com/story.php/15223/)這套作業系統的『現代版』完全以 32/64bit 的組合語言打造!!它與其他作業系統(如 UNIX)不同,也沒有遵循其他 posix 標準。它的設計目標是省略了層層相疊錯綜複雜的架構,因為那會使程式寫作更加複雜化,並且製造臭蟲。不過,Menuet 的應用程式架構不只是專為組合語言而寫,它的標頭(header)可以與其他任何程式語言並行。不過,這整個環境還是為 64/32 bits 的組語程式設計環境打造的。Menuets 敏捷的 GUI 很容易用組合語言掌控。


特色

- Pre-emptive multitasking 先佔式多工

- Responsive GUI with resolutions up to 1280x1024, 16 million colours 反應快速的 GUI,解析度可達 1280x1024 全彩。

- IDE: Editor/Macro Assembler for applications 應用程式的組合語言 開發環境。

- TCP/IP stack with Loopback & Ethernet drivers 具有 Loopback 與乙 太網路的 TCP/IP 堆疊

- Network applications include ftp/http/mp3 servers 網路相關應用包括 ftp/http/mp3 servers

- Free-form application windows 應用軟體視窗外觀沒有任何限制

- Hard real-time data fetch 夠猛的 real-time 資料取得

- Fits on a single floppy 一張磁片就能裝下

MIT 示範無線電力傳輸

‧MIT 示範無線電力傳輸
Goodbye wires... MIT experimentally demonstrates wireless power transfer

http://www.physorg.com/news100445957.html

想像這麼一種未來,在其中無線電力傳輸確實可行:手機、家事機器人、mp3 player、筆電以及其他可攜式裝置都能夠自行充電,而不在需要插入插座,讓我們從不可更改的、到處存在的電線當中解放。某些裝置當中,或許不在需要厚重的電池來運作。

MIT 物理系、電子工程系與電腦科學系與 ISN(軍事奈米科技研究所)所組成的一個團隊,已經實驗性的示範了達到這種未來願景相當重要的一步。該團隊由 Marin Soljacic 教授領軍,由於從最近的理論性質預言獲得領悟,他們能夠從離電源 2 公尺之外的地點點亮一顆 60W 的燈泡,兩者之間並沒有物理性連接。MIT 將其概念稱為 WiTricity(wireless electricity 的簡稱)。這項研究將會在 6/7 該期的 Science Express 上報導,亦即 Science 的線上優先發表版。

故事開始於幾年年的一個夜晚,Soljacic(發音:蘇業齊)穿著他的睡衣,凝視放在廚房角落的手機。"那個月我被手機的嗶聲提醒約六次,讓我知道我又忘了充電了。如果它能夠自行充電那對我而言真的很棒。" 為了讓這件事能夠成功,必須要找到一種方式以無線方式傳輸電力,所以 Soljacic 開始考慮關於哪種物理現象能夠讓此事成真。

幾世紀以來我們已知數種無線傳輸電力的方式。或許最為人所知的例子是電磁輻射,例如無線電波。雖然這種輻射對於資訊的無線傳輸十分理想,不過對於電力傳輸則否。因為輻射會朝各個方向四散,所以在自由空間中,電力必定會大量消耗。你或許會想到可以使用指向性電磁波輻射,例如雷射,不過那並不太實用,而且甚至會有危險。它需要傳送與接收端之間,不被攔截的 "視直線(line-of-sight)",且當裝置會移動時,更需要老練的尋跡機制(tracking mechanism)。

相較之下,WiTricity 使用耦合共振物體(coupled resonant objects)。具有相同頻率的二個共振物體,能有效的交換能量,而且與外來非共振物體的互動微弱。擺動(swing)是共振機制的其中一種,所以當小女孩以自然的頻率使擺動動她的腳,她能夠傳送真實的能量。

另一個例子是聲學共振:想像一間有 100 個獨立酒杯的房間,每一個裝了不同程度的酒,所以它們有不同的共振頻率。如果一位歌劇演唱者在此房間當中發出夠大的單音,頻率相符的酒杯將會累積足夠的能量,甚至爆裂,而這不會影響其他玻璃杯。在任何耦合共振的系統中,它們之間通常存有一種稱為 "強烈耦合(strongly coupled)" 的運作區(regime of operation)。如果能在一個系統當中確保在此區域內運作,能量傳遞將十分有效率。

由於這些情況對於各種種類的共振一體適用,MIT 的團隊聚焦在特定的類型上:帶磁性耦合共振器(magnetically coupled resonators)。該團隊探索一個具有二個電磁共振器的系統,大部分都是透過其磁場耦合在一起;它們能確認出該系統之中的強烈耦合區,即便二個共振物體的距離比其尺寸要大上好幾倍。透過此法,能有效傳輸電力。磁性耦合特別適合日常運用,因為大部分常見物質與磁場的互動十分微弱,故與環境外部物體的互動甚至會更加被壓抑。"磁場互動如此微弱的這項事實,對於有機生物的安全考量來說來說十分重要," Kurs,物理系的畢業生指出這點。

研究用設計由二個銅線圈構成,每一個都是自我共振系統。一個線圈接上電源,成為發送端。它並非在環境中佈滿電磁波,相反的,它以非輻射磁場,在百萬 Hz 的頻率震動。這種非輻射場會與另一個線圈(接收端)交換能量,它特別設計成會與這個場共振。

共振的天性可確保發送與接收端的互動強健,同時與其他環境的互動微弱。Moffatt,MIT 的物理系學生解釋:"使用非輻射場的關鍵優勢在於大部分未被接收線圈拾取的能量都仍束縛在傳送端,而不會輻射到環境當中而喪失。" 透過這種設計,電力傳輸有其範圍限制,而且尺寸較小的的接收者,其距離會比較短。然而,對於筆電大小的線圈,其電力等級,在房間般大小的距離下,綽綽有餘,且沒有方向限制,即便二方線圈在非視直線範圍內亦可。Fisher 指出:"As long as the laptop is in a room equipped with a source of such wireless power, it would charge automatically, without having to be plugged in. In fact, it would not even need a battery to operate inside of such a room." 最後,這可以減少我們對於高價、沈重電池的依賴。如同電子電機系畢業生 Karalis 所提到的,磁性耦合共振的效率要比一般共振磁力的引介要有效 100 萬倍。

WiTricity 是以眾所皆知的物理定律來運作,為何之前都沒有人想到呢?Joannopoulos 指出是因為大家過去對此模式的系統需求並不強烈,因此也沒有動機去探究的緣故。並提到過去數年來因為可攜式裝置大量增加,導致需要充電的需求也大增。

至於 Soljacic 該研究的希望是... "Hopefully, we will be getting rid of some more wires, and also batteries, soon."

※ 不過應當規範出一個標準,才不會製造出具有相同共振能力的產品,特 別是醫療用途的產品。另外敵軍也可能利用這種原理來破壞具有相同共振能力的設備。

* Wireless Power Transfer via Strongly Coupled Magnetic Resonances
http://www.sciencemag.org/cgi/content/abstract/1143254
Andre Kurs, Aristeidis Karalis, Robert Moffatt, J. D.
Joannopoulos, Peter Fisher, Marin Soljacic
Science Express Published Online June 7, 2007
DOI: 10.1126/science.1143254

可無線傳遞電力的塑膠薄片

研究者發現嵌入式裝置攻擊方法

‧研究者發現嵌入式裝置攻擊方法
Researcher has new attack for embedded devices

http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9015618

Arm 與 XScale 微處理器有弱點

Robert McMillan

April 04, 2007 (IDG News Service) -- Juniper Networks Inc. 的一位安全研究者表示,他計畫展示一種新的攻擊方式,那可使路由器或行動電話之類的電子裝置乖乖就範。

這個弱點就位在 Arm 與 XScale 微處理器當中,這兩款晶片廣泛地在所謂的 "嵌入式" 裝置當中使用。"ARM 與 XScale 架構令人關注的突然轉變,讓攻擊者十分容易得逞," Juniper 的 Barnaby Jack 表示。他所開發的技術 "100% 的可靠,而且可以導致程式碼在這類裝置當中被執行," 他說。

攻擊者可以發動這類型的攻擊,在一個連接到網路上的裝置,運行未經授權的軟體。在理論中,犯罪者可使用這種攻擊,自手機中竊取敏感資訊或是改變 Internet 封包在路由器上的流向,例如:從使用者線上銀行帳戶到駭客所設立,用來竊取帳號與密碼資訊的網蘸上。

這是例如:緩衝溢位(buffer overflow)攻擊這類駭客技術的另一種選擇,那可以欺騙處理器執行偷偷塞入電腦記憶體當中的程式碼。

Jack 計畫要在 CanSecWest 資安研討會中公開這種攻擊的細節 -- 讓裝置製造商能夠避免它 -- 該研討會將在本月稍後於溫哥華舉辦。

他說他花了數個月的時間拆解並將測試裝置焊接到各類嵌入式裝置之後,他想出了這樣的技術。利用標準 IC 電路測試界面,稱為 JTAG (Joint Test Action Group) Jack 得以一窺系統的處理器,並進一步了解它們如何運作。"對於每種硬體裝置來說,一定有讓開發者替程式碼除錯的方式,我所作的不過是利用這些東西," 他說。"當我愈向此架構深入挖掘,我就看見幾個微妙之處,可以讓某些有趣的事情發生。"

JTAG 使用的相當廣泛,因為它能讓工程師針對嵌入式系統當中的軟體進行除錯,不過它也可能是一種安全風險,Peter Glaskowsky 表示。他是 Envisioneering Group 的分析師。

雖然某些公司能夠切割在他們產品上的 JTAG 界面,不過 Jack 表示,在 90% 他所檢視的產品中,這項功能都是開啟的。

"這很明顯的是個議題," Glaskowsky 表示。"某些晶片不會被關閉的原因是,如果之後有問題需要進行診斷時,他們可以用得到。"

通常,要讓硬體製造商關閉 JTAG 的存取太昂貴了,Joe Grand 表示,他是一位硬體駭客,他是 Grand Idea Studio Inc., 一家電子設計公司的總裁。

雖然對於這類轉交式(hands on)hacking 技術來說,目前尚未有大規模的研究,只有像 Jack 與 Grand 這樣的先鋒,但很顯然地情勢將有所轉變。

要駭入嵌入式系統的工具與裝置愈來愈便宜,此外硬體 hacking 可以在資安研究社群當中產生認同,Grand 表示。他將在今年的 Black Hat USA 研討會中提供硬體 hacking 工坊。

"對 hacking 社群來說這讓人相當興奮,我對軟體有點感冒。讓我們好好關照硬體吧," 他說。

Barnaby Jack 沒計畫要停下他的研究:"我現在正在看我的微波爐,不過我認為在上面沒有很多搞頭," 他說。



* Firmware flaw threatens routers, phones http://www.securityfocus.com/brief/486

WiFi 指紋能終結 MAC 位址欺騙

‧WiFi 指紋能終結 MAC 位址欺騙
WiFi fingerprints could end MAC spoofing

http://www.techworld.com/mobility/news/index.cfm?newsID=6787&pagtype=samechan

Positive IDs for all the world's wireless kit?

Peter Judge, Techworld / 05 September 2006

一種新的安全技術承諾可以獨一無二的鑑別出世界上任何一種 Wi-Fi 裝置,所以駭客們無法躲藏在一個假的 MAC 位址之後了。

根據渥太華 Carleton 大學的 Jeyanthi Hall 博士表示,每一種無線裝置都有唯一的訊號 "指紋",是因為矽元件在製程當中的產出差異所造成的。

在博士生的時候,Hall 博士分析來自於 6 個製造商 15 種裝置的 RF(射頻)訊號,並且發現可以清楚的識別出來,包括由同一個製造商所製造的裝置。

根據提交給不同研討會(包括 IEEE 無線網路與安全的事件)的論文顯示,使用 "transceiverprints(指無線電收發器的 fingerprint)," Hall 博士得到 95% 的偵測率,而誤測率則是 0。

她在她的論文當中表示,她在 "辨識" 先前錄下的一組 transceiverprint 的工作當中達到這種可靠度。這項工作如果內建到無線網路的 IDS 將會很有用。此外,事情可以讓人更加振奮:"使用相同的一組 transceiverprint 更可以鑑別出正確的收發器(來自於所有已 profile 的收發器)," 她繼續提到。

Hall 使用一種或然性的神經網路來產生 transceiverprint,並且與先前做過的比較。

根據 EETimes 的報導,雖然訊號處理設備以及分析軟體在目前已經專門化了(詳見 Mathworks 軟體供應商的說明),它最終將可以用在一般用途的訊號處理系統上,Hall 博士如此希望。

使用 MAC 位址限制某一特定裝置的網路存取已經是一種可能的資安技術。而且已經包含在許多 WiFi 系統中。

然而,這對安全專家來說沒什麼,因為要修改一個裝置的 MAC 位址很容易。如果能將 MAC 與預先錄好的 transceiverprint 一起比較,可以讓基於 ACL 的裝置更加合用。

※ 相關報導:

* Enhancing Intrusion Detection in Wireless Networks using Radio
Frequency Fingerprinting
http://www.actapress.com/PaperInfo.aspx?PaperID=17393

彩色印表機內藏暗碼 讓政府追蹤你
指紋辨識很容易矇混過關?
觸碰式螢幕 可辨識誰在摸來摸去!
可以偵測情緒的裝置
你的想法 就是 你的密碼
竊聽你的鍵盤打字音
隱藏在微晶片上的藝術
研究發現安全漏洞可讓人逃避竊聽

FCC 在 SDR 中怠慢開放原碼軟體

‧FCC 在 SDR 中怠慢開放原碼軟體
Feds snub open source for 'smart' radios

http://news.com.com/2100-1041_3-6195102.html

By Anne Broache / Jul 06 2007

行動裝置的製造者開始使用「軟體無線電(software-defined radio)」,這是一種新技術,可使單一裝置接收來自於多重來源的訊號,包括電視台與行動電話網路。

不過一種新的聯邦規章(http://preview.tinyurl.com/ywhp2t),在本週五生效,意指那些建構在「開放原碼元件」上的無線電在上市時,會遭遇一條更加緩慢的(sluggish)途徑 -- 或著,在最糟糕的情況下,將被全然排除在外。美國管理者,似乎,相信開放原碼與生俱來的公眾本性,會讓它更容易受到駭客傷害,留下「一個很沈重的負擔,得證明它足夠安全」這段話。

如果這個決定仍有效,消費者將得花更久的時間才能讓這些全功能的裝置入手。這個剛形成的產業,不願帶著安全尚未經過徹底檢查的產品衝向市場,而且它擔憂 FCC 讓程式碼保持私密的偏好,可能讓那些瑕疵不會曝光,可能會將它們產品中的自信給謀殺了。

透過實際支持密碼學圈子裡所謂的「掩人耳目的安全(security through obscurity)」,「讓安全手段保持祕密,會讓它們更加難以被理解」的爭議構想,FCC 已經招惹來自於軟體無線電一伙人的抗議,以及某些安全專家的側目。

"為何管理者要勸阻開放原碼的方法實在沒道理,它最終會更加安全、便宜、更有互通性、容易標準化以及容易掛保證呀," Bernard Eydt ,一個全球產業協會,稱為 SDR (software-defined radio) 論壇的安全委員會主席,在本週的電子郵件訪談中表示。

這個論壇,代表研究單位以及像 Motorola、AT&T Labs、Northrup Grumman 與 Virginia Tech 這樣的公司,本週在一份正式的請願書(PDF, http://preview.tinyurl.com/2uty2a)當中力促 FCC 從攻擊姿勢退回原點。

這些擔憂受到 Software Freedom Law Center 的背書,它為自由與開放原碼軟體社群提供法律服務,專職律師 Matt Norwood 在本週的訪談中表示。

然而,在一份週五發表的白皮書(http://preview.tinyurl.com/2t3ma8)中,該團體表示,在 FCC 規章裡,對於其開發者也有好消息:因為它狹隘的聚焦在與安全相關的軟體上,很顯然程式設計師將不會被限制與硬體製造商就許多其他開放原碼無線應用進行合作。(許多在 FCC 掌控之下的 802.11 無線路由器,都依賴開放原碼系統進行網路管理。)

軟體無線電 -- 又稱為「smart」或認知無線電(cognitive radios,感知無線電)-- 被某些人視為下一代行動技術的基石。傳統無線電使用電子硬體來處理訊號 -- 例如,將某種特定類型的無線電波轉換成廣播電台的音樂廣播或將干擾過濾掉。


擴展無線電的視野

但是軟體無線電將運作的大腦改成軟體,那可以管理要經由無線電硬體傳送或接收的訊號。有了這種方法,下載新軟體,而非更昂貴的硬體替換,就可以讓無線電做比以前更多的事。

想像一下,例如,一種可以傳遞電視節目、地面廣播電台、接聽行動電話與寬頻上網的單一裝置,端賴它的程式如何編寫;或著,一隻配備某種智能的手機,能夠偵測特定區域中的最強訊號,然後改變手機的設定以訂購它們,而不用理會它們是屬於 GSM、CDMA 或其他類型的網路。

雖然軟體無線電產業到目前為止都受到 FCC 的禮遇,但某些安全專家表示,該委員會最近拿開放原碼開刀實在難以理解。

"當駭客無法測試他們的攻擊時,掩人耳目才最有效," Peter Swire 說,Ohio 州立大學的法律教授,他有關於電腦安全在封閉與開放方法之間緊張局勢那方面的著作。"對於像用在分散式裝置這樣的軟體來說,開放原碼應當不會有額外負擔。"

這裡也有不明確的證據(http://news.com.com/2100-1012_3-1022469.html),開放原碼軟體中的弱點數量與專有軟體相比差異極大,Alan Paller 說,SANS Institute 的研究主任,那提供電腦安全訓練。(某些早期研究,http://news.com.com/2100-1001_3-985221.html,發現開放原碼程式碼更密集的仔細檢查,可以讓其品質更高,傷害更低。)

"他們應當將其定義程,有可靠維護的軟體或沒有可靠維護的軟體 -- 這是安全議題的基礎," Paller 在電話訪問中表示。"如果我在我的軟體當中發現弱點,卻無沒有人可以幫我,那我就死定了。"


軍方早已使用

雖然軟體無線電(SDR)目前仍尚未為大眾所知,不過這項技術已經攫取軍方與公共安全階層的目光。或許最具特色的例子是五角大廈的聯合戰術無線電系統計畫(Joint Tactical Radio System project,http://preview.tinyurl.com/3xa8wl),它被設計成讓戰場上的軍人能夠經由多重網路交換語音、資料與影像。

但商業上的產品仍在早期階段。約在三年前,FCC 發出它第一張專門的 SDR 執照給一家叫做 Vanu 的小公司。這家公司要製造出第一個可商業取得的基地台,它以單一件硬體,就能支援多重無線標準 -- GSM、CDMA、iDEN 和其他,這讓它的市場更具成本效益,時間效益。根據 FCC 某些 CDMA 行動電話網路與 WLAN 裝置也在某種形式下使用這種技術。

FCC 的新規章,部份是 Cisco Systems 於去年六月的請願之下,建立在 2001 與 2005 確立的 SDR 基本規章之上。

FCC 老是擔憂該技術的彈性本質能讓駭客存取頻譜中不恰當的部份,例如那些用於公眾安全的波段。故,規章要求製造者遞交機密(confidential)描述,證實它們的產品,在外部改裝下仍然安全。改裝會抵觸政府的法律。 Cisco 的請願要求管理者明確定義如何使開放原碼軟體,其程式碼很明顯是公開的,符合機密的指令。

為了回應,FCC 裁定,開放原碼安全軟體也不能公開,若這麼做可能會產生規避 FCC 規章的風險。接著這個委員會加了這麼一段:"倘若一個系統全然倚賴開放原碼元件,在它安全到能獲得批准認可成為 SDR 之前,在證明上將有沈重的責任。"

在本週提出時,SDR 論壇要求 FCC 讓無線電製造商公開討論其程式碼,只要它們沒打算鼓勵破壞規則的話。該團體也敦促在開放原碼軟體上保持中立的態度,指出 "學術性的詢問與產業討論再加上市場測試," 都非管理者應當決定。

Cisco 向該委員會請願改變規則的代表未能在本週進行訪談。Robert Pepper 該公司資深技術政策主管,表示他相信 Cisco 對此新規章會很滿意。 一位 FCC 發言人表示該委員會已經收到,並且將會審視 SDR 論壇的申請,不過他不清楚何時會有回應。

FCC 最新的舉動並不是第一次讓開放原碼端的軟體無線電面臨潛在限制。

在數年前,該委員會發佈規定,(http://news.com.com/2100-1028_3-5103305.html
那將使得製造出不支援傳統 "broadcast flag" 的 TV 協調器與 PC 變成不合法。broadcast flag 是娛樂界所支持的反拷貝統治方式。

一場聯邦申訴法庭將這個規定拋棄( http://news.com.com/2100-1030_3-5697719.html)但如果留在適當的地方,或是經由國會復活(http://news.com.com/2100-1028_3-6045225.html
,將威脅消費者自行建立不受限制的無線電訊號接收器(利用像 GNU Radio,http://www.gnu.org/software/gnuradio/,那樣的自由軟體無線電套件)的能力。

Software Freedom Law Center 的一位律師,表示管理者在他們最新的規定中做的更糟:FCC 承認開放原碼平台可能具有「優勢」,例如:低成本與較少的研發時間,而且並沒有全部禁止開放原碼應用。

"我很高興只少看見他們已不再提到... 數年之前的措詞,全都關於 GPL 是種病毒而自由軟體不是美國人," Software Freedom Law Center 的 Norwood 說。

來自於製造商這端,揮之不去的顧慮是,只要 FCC 一阻撓安全手段的開放式討論,消費者將會遇到產品拖延上市,或是沒有多少產品可選擇的窘境 -- 或是擁有臭蟲的產品,那些臭蟲只要透過大家更多合作就能揪出來。

SDR 論壇已經採用 SSL,一種廣泛用以使電子商務交易安全的技術,與 NIST 的公開雜湊演算法(news.com.com/2100-1029_3-5924982.html)作為證明,指稱開放的程序通常能產生高度成功的安全技術。

軟體無線電製造者若沒有相似的自由度,"there may be some people that will shy away or may delay some (software radio) pieces that go out there because they have this extra burden they have to go through," Bruce Oberlies 說,SDR 論壇控制委員會的主席。

※ 相關報導:

T-Mobile:免費讓你用Wi-Fi講電話
美軍研究可以自行設定的安全無線網路
WiFi 指紋能終結 MAC 位址欺騙
美國發展無 GPS 導航概念
美軍計畫將路由器放在太空
取代 SHA-1 的公開選拔賽
iPhone shell 駭到手了!
有線電視 六年後全台數位化

再見電線... MIT 示範無線電力傳輸
科學家立下高頻次毫米波的世界紀錄
台科學家將光波修改成想要的頻率
地球比想像中來的小

FCC 說:手機不得在飛機上使用
美國新法案:社交網路網站可能要被掃地出門
FCC 主席:AT&T 可以限制網路頻寬
858億美元 AT&T買下南方貝爾
當企業悄悄接管了國家
外國企業自美下市 掀風潮

清單 - 桌機、伺服器、電子產品消息

編輯


◆ 政府公佈事項

 ‧2011/12 政府網路2015年全面升級IPv6 (連結)



◆ 桌機相關 - 非常重要新聞

 ‧2012/02 Ubuntu for Android讓手機變成PC (iThome, T客邦)
 ‧2010/07 Win7 降級至XP期限到2011/10/12。XP SP3支援終止於2014/04



◆ 桌機相關 - 須注意新聞

 ‧2012/02/23 Adobe不再支援Linux Firefox Flash Player,但有支援chrome




◆ 桌機相關 - 技術新聞

 ‧2013/02/05 WebRTC技術:chrome, firefox 即時視訊 (連結)




◆ 桌機相關 - 一般新聞

 ‧2013/06/02 Computex Taipei 2013:看CPU, APU發展狀況 (連結)
 ‧2013/05/31 AMD推出 Opteron X 與英特爾Atom競逐微型伺服器市場 (連結)
 ‧2012/05/29 從台北國際電腦展看2001-2011年的重要資訊科技應用 (連結)
 ‧2012/05/28 什麼介面都吃的Thunderbolt 與 USB 3.0 時代來臨 (連結)
 ‧2012/05/09 12項改變軟體產業的重大事件 (連結)
 ‧2012/04/26 AMD 推土機降 30 美元,迎戰 Intel 的 Ivy Bridge (連結)
 ‧2012/03/07 記憶體最佳化調校? 有它一鍵搞定!! (連結)
 ‧2011/12/26 IE瀏覽器明年改採自動升級 (連結)
 ‧2011/10/11 特別報導:IT十年及大事紀  (連結)
 ‧2011/04/19 5大瀏覽器,效能及相容度測試,發展沿革 (連結)
 ‧2011/04/01 HP宣佈支援Google雲端列印
 ‧2010/09/20 NoSQL解決資料庫暴量的新方法 (連結)
 ‧2010/08/20 英特爾收購McAfee 一腳跨入資安市場(連結)
 ‧2010/07/02 這不是手機是電腦,Nokia N900深入測試
 ‧2010/06/28 用PC幫iPad充電,華碩技嘉主機板比一比
 ‧2010/06/21 平板電腦也能變身小筆電、桌上型電腦 (連結)
 ‧2010/06/12 雲端運算的分類
 ‧2010/06/11 英特爾冷處理USB3.0、力推Light Peak
 ‧2010/06/11 新款小筆電開始支援DDR3記憶體
 ‧2010/06/02 什麼是雲端運算?
 ‧2010/06/02 英特爾攻超級電腦晶片
 ‧2010/06/01 Computex 台廠展示MeeGo平板、小筆電
 ‧2010/06/00 Windows 7 各版本功能 (3)
 ‧2010/06/00 Windows 7 各版本功能 (2)
 ‧2010/06/00 Windows 7 各版本功能 (1)
 ‧2010/05/03 雲的另一端,真實的世界?
 ‧2010/11/00 硬碟價格比較 (2 TB,約1.75元/每G)
 ‧2010/08/00 買SAS比SSD划算
 ‧2010/07/00 Seagate混合式硬碟減少開支,加快處理速度
 ‧2010/06/00 微星主機板P55A-GD65,支援USB3.0,SATA3
 ‧2010/01/11 Light Touch 互動式投影器
 ‧2007/05/21 英特爾 C2D E2000系列將登場
 ‧2007/01/30 Intel 帶頭推802.11n Draft,Wireless-N晶片飆速登場
 ‧2006/06/15 Google與微軟網路伺服器數量



◆ 伺服器相關新聞

 ‧2012/05/30 雲端時代企業必須知道的關鍵技術 (連結)
 ‧2010/09/22 臺灣x86伺服器出貨量比去年同期成長12.8% (連結)



◆ 電子產品新聞

 ‧2011/07/22 2011台北電腦應用展,13類重點產品採購心法 (連結)


.

Google與微軟網路伺服器數量

‧穩坐網路霸主 Google蓋兩大電腦中心

楊明暐/紐約時報十四日報導 2006.06.15  中國時報

網路搜尋巨擘Google正在美國奧立岡州靠近華盛頓州邊界的哥倫比亞河畔,興建兩座超大電算資料中心。這是Google用來主宰新一代網路事業的秘密武器。兩座中心的面積皆有一個足球場大,且各自有兩棟四層樓高的冷卻廠。這麼顯眼的設施要予以保密,還真得很難。

Google每天要處理數以億計用戶資料查詢,並提供其他各式各樣網路服務。而位在奧立岡州達勒斯市(The Dalles)的這兩座資料中心將在今年內落成啟用,屆時將大幅擴充Google操作網路龐大資料的能力。


今年啟用 迎戰微軟雅虎

即使在兩座中心尚未運作的今天,Google早已集結了一支環球電腦網路大軍,網路業界稱之為Googleplex(Google綜合體)。知名電腦專家丹尼.希利斯指出,Google建造了全世界最大的一部電腦,就是Googleplex。

Google之所以要建造新的資料中心,是因為軟體巨人微軟公司和老牌網路搜尋公司雅虎正來勢洶洶,準備挑戰它的霸業。微軟和雅虎皆已砸下數十億美元資金興建資料中心。而兩家公司的資料中心分別位在哥倫比亞河上游的韋納奇和昆西。

三家公司的資料中心都座落在哥倫比亞河流域,是因為這裡電價便宜,又有完善的網路設施。


處理器磁碟機 數以萬計

Google對於正在興建中的兩座資料中心一直諱莫如深。外界預測,這兩棟建築裡可能安置有數以萬計個處理器和磁碟機,而一旁的冷卻廠非常重要,因為這些設備在運轉時會產生高熱。

儘管達勒斯的媒體曾報導過Google正在興建的這兩座資料中心,但當地官員已和Google簽署保密協議,對Google的計畫皆守口如瓶。

為何如此神秘?Google未多作解釋。Google資深副總裁賀爾佐表示,一般企業對自己的基礎設施一向就很敏感。不過,Google這種保密到家的態度,正說明各大搜尋網站之間的戰爭已非常激烈。

Google、微軟和雅虎都在花大錢擴充電腦運算能力,以便擴大經營搜尋引擎和電子郵件,網路影音下載等各類網路服務。微軟於今年第一季宣布明年將投下廿億美元搶攻Google的業務,Google則表示其投資至少達十五億美元。


財力雄厚微軟 足以匹敵

Google雖以網路搜尋引擎起家,但該公司對於使用最新技術興建超級電腦網路相當積極,這可以讓它以更快速,更便宜的方式處理更多資料,從而超越競爭對手。

據統計,二○○一年三月Google使用八千部電腦,每天提供用戶的資料量為七千萬個網頁。二○○三年Google使用的電腦為十萬部。外界估計,2006年Google使用四十五萬部伺服器,遍佈在全球至少廿五個地點,幾個主要中心則以高速光纖網路連接起來。

前Google主管布利安.李德表示,Google是要提高門檻,競爭者想跨入這一行,光是基礎建設方面的投資,就非常昂貴。

微軟的網路服務2006年使用廿萬部伺服器,該公司計畫到二○一一年將伺服器數量擴充到八十萬部。這個數據正說明,也只有微軟這種財力雄厚的公司,才足以挑戰Google的地位。



※ Googleplex 亦指 Google 在加州山景城的總部。
會建在 Columbia 河畔建造超級電腦的原因是有河水可以用來散熱,再 加上附近電力便宜,網路品質也很棒,所以微軟跟雅虎都有在附近進駐 。