星期一, 7月 30, 2007

AMD:四核Opteron虛擬化加速


‧ AMD:四核Opteron虛擬化加速
CNET新聞專區:Stephen Shankland  11/10/2006


AMD的四核Opteron處理器(代號巴塞隆納「Barcelona」) 預定2007年中推出,將包含加速虛擬化(virtualization)的功能。
虛擬化讓一台伺服器可同時執行多重的作業系統,有助於提昇執行效率。但問題是,用稱為hypervisor的虛擬機器管理軟體來跑作業系統,執行效率比作業系統單獨執行來得差。
AMD技術設計團隊要角Ben Sander在秋季處理器論壇會上演講時表示,Barcelona具有特定的功能,可解決一部分效能問題。
英特爾與AMD正在x86伺服器市場大搶市占率。英特爾的Xeon晶片率先提供虛擬化的某些硬體支援,但AMD最新型的處理器隨即跟進。
除了虛擬化之外,晶片雙雄也在其他領域較勁,例如多核心處理器。英特爾「Clovertown」版的Xeon把兩顆雙核Xeon 5100 "Woodcrest"處理器封裝在一起,以達到今年11月推出四核處理器的目標。AMD的Barcelona則在單一矽晶上植入四個處理器核心。
這麼一來就形成一種效能問題,因為作業系統習慣處理晶片裡稱為「轉譯旁觀緩衝區」(TLB)的部分,也就是把作業系統對應記憶位址轉化為硬體所用實際位址的部分。但因為實際管理記憶體的是hypervisor,虛擬化使得這項任務的執行又隔了一層。
為解決此問題,hypervisor採用所謂「shadow paging」軟體。Barcelona引進包括「nested page tables」和記憶位址快取等技術,以加速記憶存取的速度。
Sander指出,這很重要,Hypervisor多達75%的時間可能都耗在處理這類記憶問題。
此外,Barcelona也引進新的指令,用來縮短晶片的「world switch time」,即晶片在客座作業系統模式與hypervisor模式之間作切換所用的時間。這種切換過程通常需要大約1,000到2,000個處理器時脈周 期,但用新指令可縮短25%左右。
Sander另外也描述Barcelona的其他功能,例如每個處理核心將搭配64KB第一層快取記憶體,以及512KB的第二層快取。四個核心將共同2MB第三層快取,但容量還可擴充。
他說,Barcelona處理的實體記憶容量比目前的Opterons大。今天的最大處理量是1兆位元組(TB)--低階的AMD伺服器還辦不到--但Barcelona可支援256TB。
英特爾新一代雙處理器伺服器已改用稱一種新的記憶技術,稱為FB-DIMM (全緩衝雙重內崁式記憶體模組),但Sander說,AMD目前暫不採用此技術。Barcelona內建FB-DIMM的功能,但暫不使用,因為FB- DIMM比標準DDR2記憶體的耗電量高,通訊延遲時間也較長。
Sander說,AMD會「在適當時機」轉換到FB-DIMM,但顯然至少要等到第二代(FB-DIMM 2)問世時再議。
他說:「我們認為,不宜在第一代FB-DIMM就轉換,畢竟還必須靠記憶控制器支持。」
他指出,Barcelona搭配雙重的記憶控制器,用來讀寫擷取自記憶體的資料。使用的記憶控制器數量雖與目前的Opteron相同,但Barcelona用的記憶控制器能單獨運作。(唐慧文/譯)

四核時代來臨 拉抬記憶體技術轉進DDR3

‧四核時代來臨 拉抬記憶體技術轉進DDR3

記者曠文溱/洛杉磯報導  13/10/2006

全球最大DRAM廠商金士頓(Kingston)表示,隨著英特爾和AMD兩大處理器巨頭將在今明兩年推出四核心處理器,將帶動DDR3技術的採用。

DDR2方才在今年成為主流,Kingston即開始預言DDR3技術將隨著多核心處理器時代的來臨而開始脫離工程測試階段,在明年正式商品化。原因即在於多核心技術將促使晶片組能夠處理的資料量更大,為彰顯及跟進前者所帶來的效益,需要更快速、也更節電的記憶體技術支援。

「Kingston的DDR3 DRAM已經開始提供工程樣本,預計明年開始量產,在2009年將成為市場主流,取代現有DDR2的位置,」Kingston資深工程經理Richard Kanadjian說。

DDR、DDR2和DDR3都是屬於SDRAM家族的記憶體產品。以DDR為例,正式的稱法應是DDR SDRAM(雙通道同步動態隨機存取記憶體,Double Date Rate Synchronous Dynamic Random Access Memory),即為具有雙倍資料傳輸率之SDRAM,電腦系統同時利用系統匯流排時脈的上升和下降來存取記憶體資料,令記憶體的頻寬增加一倍,優於傳統的SDRAM。

DDR2和DDR3即為更新一代的DDR SDRM產品。DDR2係基於現有DDR記憶體技術,並在關鍵領域效能有所提升。舉例而言,DDR2擁有4bit的數據預先存取能力,在同等核心頻率下, DDR2擁有兩倍的DDR數據傳輸率。

DDR3則是更新一代的架構。雖然JEDEC(記憶體工業標準組織)尚未確立DDR3的標準,但是大體而言,DDR3 採用 8 bit 預先取設計,較 DDR2 4bit 的預取設計為倍數成長,運算時脈介於 800MHz -1600MHz之間 。此外,DDR3 的規格要求將電壓控制在 1.5V ,較 DDR2 的 1.8V 更為省電。此外, DDR3 採用 ASR(Automatic self-refresh) 的設計,以確保在資料不遺失情況下,儘量減少更新頻率來降低溫度。

拜英特爾和AMD宣佈轉進DDR2技術所賜——英特爾宣佈915到975系統晶片組的平台開始規定使用DDR2記憶體模組,而AMD也表示在 Socket939架構轉換到SocketM2,需要與DDR2搭配使用。致使 DDR2儼然一副取代傳統DDR記憶體的架式,而DRAM價格的持續下滑,也令DDR2取代DDR的腳步加快許多。

根據國內市場研究機構DRAM exchange的產業研究報告,DDR2預計在2006年Q2比例超越50%。

在Kingston宣佈不自外於DDR3技術之前,事實上其他記憶體模組大廠如三星、 Infineon、ELPIDA 等 DRAM 廠業已在今年Computex展上宣佈成功開發出 DDR3 藉此來表明自己實力。對此Kingston表示,DDR3技術研發一直都在進行,但是一直到英特爾確立了桌上型和伺服器四核心處理器(代號分別為 Clovertown和 Kentsfield)將從2007上半年提前到今年第四季推出,AMD也表示明年中推出四核心Opteron之後,Kingston才比較願意發表 DDR3的產品時程。

「否則看不出來DDR3的市場接受原因在哪裡,」Kingston亞太業務行銷總監徐石琦說。

除了四核心技術將拉抬DDR3應用外,英特爾和AMD兩大處理器廠商的動作,也顯示DDR3已納入技術重點。外電報導,轉進DDR2腳步較英特爾緩慢的 AMD,已與另一半導體廠商SimpleTech宣佈合作,計畫在JEDEC(記憶體工業標準組織)會議中,展開訂定基於DDR3的SDRAM記憶體模組的功能規格。

而英特爾在明年第二、三季,將陸續推出多款名為Bearlake晶片组,正式提供對DDR3的支持。

根据英特爾的預計,DDR3甫面市的價格要比DDR2高出60%左右,不過到2008年底就會降低到只有 10%,在2009年DDR3正式成為主流。

Core 2 Duo處理器規格



‧Core 2 Duo處理器兵器譜

「桌上平台」世代交替
原代號Conroe的桌上型Core 2 Duo,將採用「E6x00」的編號命名,最高時脈2.66GHz、FSB 1066MHz、L2 4MB。極致版頂級CPU由Core 2 Extreme X6800接替,時脈為2.93MHz。這個系列的對手,是AMD新款AM2腳位的Athlon 64 x2處理器。
可搭配的系統晶片組包括新款的Intel 975X、965系列,也有部分舊款晶片組可藉韌體升級來提供支援。採用Core 2 Duo的桌上型電腦預定於8月初出貨,剛好趕搭上應用展展期,但目前部份通路已經有產品提早上市了。
桌上平台Core 2 Duo處理器﹙Conroe﹚:
型號
時脈 (GHz)
FSB(MHz)
L2(MB)
千顆定價 (美元)
VT
EM64T
X6800
(Core 2 Extreme)
2.93
1066
4
999
V
V
E6700
2.66
1066
4
530
V
V
E6600
2.4
1066
4
316
V
V
E6400
2.13
1066
2
224
V
V
E6300
1.86
1066
2
183
V
V
「行動平台」接棒上場
原代號Merom的行動平台Core 2 Duo,延伸自原本Yonah設計,將依L2容量分為兩等級,採用「T7x00」(L2=4MB)以及「T5x00」(L2=2MB)的編號命名,最高時 脈2.33GHz,FSB則仍維持667MHz,仍未進一步提升到800MHz。這個系列的對手,是AMD的雙核NB處理器Turion 64 x2。
在明年Santa Rosa平台推出前,Merom將沿用現在的Intel 945系列晶片組,處理器腳位也未作改變,因此現有雙核NB可以直接作升級。 行動平台Core 2 Duo上市時間稍晚於桌上平台,預定將在8月底上市。定價目前尚未釋出,但根據市場上的推測,到時價格會與現在同時脈等級的Core Duo「差不多」。
行動平台Core 2 Duo處理器﹙Merom﹚:
型號
時脈 (GHz)
FSB(MHz)
L2(MB)
千顆定價 (美元)
VT
EM64T
T7600
2.33
667
4
n/a
V
V
T7400
2.16
667
4
n/a
V
V
T7200
2.0
667
4
n/a
V
V
T5600
1.83
667
2
n/a
V
V
T5500
1.66
667
2
n/a
V
V
Core Duo處理器﹙Yonah﹚:
型號
時脈 (GHz)
FSB(MHz)
L2(MB)
千顆定價 (美元)
VT
EM64T
T2700
2.33
667
2
637
V
 
T2600
2.16
667
2
423
V
 
T2500
2.0
667
2
294
V
 
T2400
1.83
667
2
241
V
 
T2300E
1.66
667
2
209
 
 

星期日, 7月 29, 2007

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

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