顯示具有 Intel 標籤的文章。 顯示所有文章
顯示具有 Intel 標籤的文章。 顯示所有文章

2011年2月26日 星期六

Intel 發表正式版 Light Peak–Thunderbolt,目標:統一所有外接介面!?

image

伴隨著新款的 Apple MacBook Pro 的發表,世界第一台搭載 Intel Thunderbolt 技術的電腦終於面市了,也讓外界第一次看到有關於 Thunderbolt 實際的技術規格。

Thunderbolt,終於成形的外接 PCI-Express


image

Thunderbolt 的原始開發目的其實很簡單,就是外接的 PCI-Express 介面,並不是目前所看到的要統一所有的外接周邊這樣廣泛的應用與目的,而且講實在話,在USB 以目前這麼高的佔有率與這麼低廉的價格的競爭下,Thunderbolt 是完全無法與 USB 競爭的。

image

在 Intel 所發表的新聞稿中我們可以看到,一條 Thunderbolt 纜線上同時會傳遞 PCI Express 與 DisplayPort 兩組不同訊號,接頭的部份也是相容於 DisplayPort 的,這部份的設計應該是 Apple 的要求。

對 Apple 來說,Thunderbolt 只不過是 Host-to-Dock 的連接技術


Apple 本身其實一直都在尋求更簡潔的外接方式,降低使用者在連接各種周邊上的困擾, USB, IEEE 1394 也都是在這樣的訴求下率先被  Apple 支援與使用。

而在目前 Apple 的電腦上,存在的外接介面已經相當少了,要在進一步的簡化外接線的數量,勢必就得透過外接一個 Docking Device ,讓相關外接裝置固定的接在 Dock 上,主機只需要透過單一纜線就能直接存取所有的外接裝置,而 Apple 想出的解決方式就是 Thunderbolt 。

基於既有的 mini DisplayPort ,就能夠將螢幕再不變更介面設計的情況下,讓螢幕變成功能更加強大的 Docking Device 。

透過 Thunderbolt 所傳遞 PCI-Express 的訊號,就能讓 Dock 擁有幾乎所有可能的外接裝置,無論是 USB, Ethernet, 還是 eSATA ,都只需要透過 USB-to-PCI-E, Ethernet-to-PCI-E或eSATA-to-PCI-E 這類既有的解決方案就能夠變化出各種不同的外接介面,也就是說只要能接上 PCI-E 的裝置都能夠透過 Thunderbolt 來連接主機,因此未來我們能看到 Thunderbolt 的外接顯示卡也不一定。

但對 Intel 來說,Thunderbolt 就不是這麼簡單的一個產品了。

終極的高速外接介面


外接 PCI-E 是 Intel 當年在推動 PCI-E 就相當積極的在推廣的一個技術,目的是要與 AMD 所使用的 HyperTransport 一別苗頭,成為一個能夠統一系統所有高速連接介面的一個規格,包含 Chip-to-Chip, Board-to-Board, Chassis-to-Chassis ,而最後的一塊拼圖,就將會由 Thunderbolt 補完。

在Apple MacBook Pro 全面搭載 Thunderbolt 後,它將會是最普及的 10Gb 外接介面,遠比既有的企業等級的 10G Ethernet, Fibre Channel, Infiniband 來的更加廣泛的被應用。

如果能以 Thunderbolt 2.0 之後能作為主機與主機之間的連接介面,或者是能延伸 daisy chain 變成 ring 或 double ring,Blade Chassis 中每個 Blade 都能夠直接使用 Thunderbolt 連接,以 Thunderbolt 的價格與普及率,其他的高速外接介面將無力抵抗。

再者,Thunderbolt 也將會使用矽基發光元件搭配塑膠光纖更進一步的降低生產成本與傳輸距離以及提昇傳輸速度,可以想見 Thunderbolt 如果真能夠按照 Intel 所規劃的推廣,高速傳輸介面被 Thunderbolt 是非常有可能的。

Thunderbolt 推廣不易


但 Thunderbolt 的推廣,卻不會是這麼容易的,最大的問題就在於「價格」。

相對於其他的 10Gb 高速傳輸介面,Thunderbolt 相對起來是非常便宜的,但對比於消費市場的高速傳輸介面王者 USB 3.0 ,價格還是太高了。再者,daisy chain 的連接方式對一般人來說也不是很容易理解的使用方式,最終應用環境會侷限於 Host-to-Dock 這樣的應用,原生支援 Thunderbolt 的外接裝置應該寥寥無幾。

所有的應用都必須透過 PCI-E 的方式橋接控制晶片,也會讓 Dock 的價格上漲不少,畢竟目前消費者端的外接裝置多是 USB 介面,要在 Dock 或螢幕上搭載 Thunderbolt controller,再裝置一個 USB Host Controller ,再透過 USB HUB Controller 接上讀卡機或其他裝置相比,價格會比直接留一個 Type A 的 USB Port 讓使用者接上 USB HUB Controller 相比,價格高太多了,而且在設計難度上一定比較高,廠商採用的意願一定不高。

Intel 本身內建 Thunderbolt 的時程也未定,即使出乎意料的在下一代晶片組中內建 Thunderbolt ,也不一定能夠與同時內建的 USB 3.0 相競爭,畢竟相關的周邊數量實在太少了。

雖然目前看來 Thunderbolt 並沒有太大的優勢在,但在未來, Tablet 會大量的需要 Dock 作為外接裝置的 HUB ,如果 Tablet 中能夠大量的採用 Thunderbolt 作為外接介面連接 Dock ,Thunderbolt 就有相當大的機會普及。

是的,我是在指如果 Apple iPad 採用 Thunderbold 作為視訊輸出與連接 Dock 的介面,那 Thunderbolt 就有可能會借此而變得熱門,也許期待 iPad 3 吧。

2010年3月10日 星期三

MeeGo軟體架構簡介與展望

本篇文章僅為個人心得文章,軟體架構部分,內容參考MeeGo Architecture與Under the Hood with MeeGo。
MeeGo
MeeGo是由兩大巨擎Intel與Nokia所共同推出的一套以Linux為核心的作業系統,合併Intel的Moblin與Nokia的Maemo的開發計畫為一,讓兩者的資源能夠達到更高的利用。
Moblin是Intel為了推廣Netbook所推出的作業系統,但是似乎沒有很顯著的成效有實際且大量的產品在市面上流通;Maemo則是Nokia為了擺脫Symbian的框架,讓軟體開發能夠更迎合網路時代的高效能需求而打造,Nokia N900則是Maemo最新推出產品,評價不惡。
在Android吃下絕大多數Mobile Linux Developer的目光之下,Moblin與Maemo似乎都不太受到注目,未來的發展方向也沒有太多人在乎,也缺少第三方廠商支持,於是乎在MWC 2010上,Nokia與Intel便決定將這兩個計畫合而為一,MeeGo就此誕生。
可以說MeeGo是不得不的存在,也能說MeeGo開創了有別於Android的一個Linux Embedded Sysmte的新局面。除了同樣是採用Linux Kernel之外,MeeGo有太多地方與Android不同,本文將介紹MeeGo在軟體架構的特點。

MeeGo-Arch-FullSize
MeeGo的軟體架構主要分為三層,分別是OS Base, Middleware與UX。

OS BASE

在OS Based中,MeeGo與Android採用相同的作法,利用Hardware Adaption Software將驅動程式抽象化,藉以擺脫Linux原生驅動程式必須Open Source的問題,讓硬體開發商能夠在維護商業機密且不違反Linux License (GPL)的前提下,進行MeeGo Driver的開發。Linux與驅動程式的問題可以參考 針對Linux kernel開發商業應用的Driver 這篇文章中的回應。
MeeGo的Kernel即是Linux Kernel的分支,這部份自然是會針對下層的Hardware Adaption Software做最佳化,驅動程式開發者只需發佈二進位制(Binary)的Driver,並發佈所需MeeGo Kernel Patch,即可完成Driver的發佈。這部份的流程可參考Hardware Enabling Process。

MIDDLEWARE

在軟體開發架構上,MeeGo與Android或Windows Phone不同的是MeeGo開發的是Native Application,也就是能夠直接呼叫Linux Library, Linux Kerne Calls的應用程式。
與Android透過Dalvik Virtual Machine或Windows Phone透過.Net Compact Framework不同的地方在於,Native App. 會直接被編譯成為Hardware Associated Assembly Code後,再轉為Machine code執行,效能較高;而透過VM執行的App.則需先轉為中介語言後,再執行期中由VM轉換中介語言為Assembly Code或Machine Code執行,當然這其中有很多不同的作法,例如Android會做預先編譯的動作提高效能等。
整體來說,透過VM執行的App.效能還是比較低一些,但很大的好處在於軟體可攜性很高,只需要complile once,就能夠在各個不同的硬體平台上使用。MeeGo卻必須根據不同的硬體平台做compile,但MeeGo保證了一件事,就是程式開發者只需要維護一個Code Base,不需要針對不同的硬體平台做程式的修改,只需要在程式發佈時針對不同硬體平台做編譯即可,這部份則歸功於MeeGo採用Qt作為UI Library。
Qt是Linux上一個很常見的跨平台的UI Library,除了能夠跨多個平台如Windows, Linux, MacOS, Symbian S60等,最大的特色就是他是Native UI,使用Qt開發的GUI與使用該平台原生的UI Library相同,不會像使用Java UI或GTK一樣,能夠非常明顯的看出這是一個由不同平台轉移過來的程式。延展性(Scalability)很好可以由使用Qt為UI Lib的KDE看出這點,著名軟體開發者Jserv也有一篇文章 KDE 的 MS-Windows 平台移植 介紹KDE Windows,文中Jserv說使用Qt的KDE on Windows效能相當好,與在Linux平台上上感覺無異。

UX

MeeGo使用Qt作為UI Library,並且搭配各種內建的Services與API與特製版本的Linux Library,讓各種Linux Native App.能夠很輕易的port到MeeGo上,我們可以從Firefox for Maemo是Firefox在各個行動平台上最早推出的這點看出。同樣的Adobe也將在MeeGo上推出完整版的Flash應用,由此,傳統的Linux App.應該也會相繼的被port到MeeGo上才是。原先Symbian S60 v5上使用Qt進行開發的軟體,也能夠在小幅度改款的模式下轉移到MeeGo下使用。
在UX層中,我們可以發現MeeGo將會有Handheld與Netbook兩個UX,其中也包含著對應的UI,  Apps與UI Framework,當然UX客製化也是可行的,廠商可針對自己的需求進行修改,從建立完整的UX或者是透過UI Framework修改UI均可。
會有兩個不同應用的UX是可想而知的,畢竟MeeGo是由Moblin這個原先要設計給Netbook的OS與Maemo這個原先要設計給Handheld device的OS合併而來,未來的開發目標也從未捨棄這兩個平台,甚至希望能夠包含車用電子、STB等用途,也希望未來能有各種廠商採用MeeGo作為OS開發產品。
在軟體開發上,不僅僅能使用傳統的C, Java開發程式,MeeGo也提供開發者利用HTML+JavaScript+CSS開發應用程式,MeeGo所使用的瀏覽器引擎是WebKit,與iPhone, Android, BlackBerry相同,並且將WebKit與Qt做整合推出QtWebKit,讓MeeGo的軟體開發更具可攜性,也讓軟體開發商在其他平台所撰寫的HTML+JavaScript+CSS能輕易的port到MeeGo之上。

MeeGo與Android的比較

Android是目前Mobile Linux Device的霸主,幾乎吸引了所有人的目光,各種不同的應用均在Android上開發著,相較於MeeGo,注目度似乎低很多.... 但這不代表MeeGo不好,只是Android吸引了太多目光。
MeeGo與Android相比,最大的特色就是夠開放,目前也與Linux Kernel Development Team保持著良好的關係,Intel本身在Linux的開發上也貢獻不少,在 2009 Linux kernel Source Contributions 的比較中,甚至是貢獻度第二名的公司,僅次於Red Hat而勝過IBM, Novell, Sun等著名的公司,當然這與Intel本身有自己的硬體平台,希望讓Linux能夠在Intel Architecture平台上更快更穩定而貢獻了不少的硬體相關原始碼有關,不可否認的,Intel對Linux Kernel有很顯著的貢獻。
而Google呢?    最近Android被Linux Kernel踢出Branch Tree的消息不斷的被提到 (Is Android Forking from Linux?),也有許多Open Source的開發者提到Android其實沒有想像中的開放 (Android 還是開放源碼計劃嗎?),Android Kernel在2.0之後甚至連Google之外的的patch都很少被接受,讓人覺得Google違背了許多Open Source Dever.的期望。  但Google有做「錯」什麼嘛?   其實也沒有…   他的所作所為並沒有違反Andoird所採用的Apache License (Google Android 採用 Apache License: 為什麼不是 GPL?),沒有把Android所修改的Linux Kernel Patch merge回Linux Kernel也沒有法律的責任,但對Open Source的dever.來說,這已經違反了他們心中所希望能夠讓整個軟體世界更好的心願,不少抨擊由此而來。
Android除了ARM有Google官方做維護之外,其他硬體架構平台均由Community進行開發,與MeeGo至少能夠完整支援ARM與x86相比,自由度也差了許多。MeeGo官方也接受各家廠商的Driver Patch並放入官方Image之中,Android大多需要開發者自行進行修改與編譯。以各種不同平台的自由度來說,MeeGo是勝過Android不少的。

MeeGo未來可能的發展方向

對Linux embedded硬體產品的開發廠商來說,MeeGo也許是可行的選擇,一是能夠使用x86作為硬體平台,量大且便宜,也可選擇ARM平台,順應各種不同的效能需求推出不同等級的產品。二來是MeeGo的硬體需求也比Android來的低,Native App不需要額外的VM做中介,耗損效能。再來是開發人員不需要另外訓練他們寫Android平台的專屬程式,只要熟悉Qt就能就進行程式開發,甚至是客製化UI的開發,也因為MeeGo是使用Native App.,Linux上既有的App.能夠很快的被port到MeeGo之上,廠商進行產品開發的時程就會比較快。
若以Handheld device來說,目前Android受到比較多廠商的支持,App.的數量也蓬勃的增長中,MeeGo似乎很難在短時間內趕上,但至少可以推論的是Nokia未來的高階產品一定會使用MeeGo作為作業系統,中階產品也可能會以類似Nokia 5800XM推廣Symbian S60 v5的方式以$300 USD~$2000左右的價位進行強打,屆時整合Nokia既有的Ovi Store與Symbian S650 v5的App.,也能夠在行動市場取得一席之地。
而Netbook or Tablet也將會是另外一塊MeeGo目標的市場,以既有的Atom Netbook硬體直接安裝MeeGo與Windows作業系統或者是Smartbook的方式推出純MeeGo產品也是可行的方案,如同iPhone + iPad一般相輔相成。
很明顯的,除了Nokia之外不會有太多廠商推出MeeGo SmartPhone,畢竟Nokia本身的品牌魅力很高,市佔率也很高,第三方廠商很難有機會插入Nokia的市場中,如同Symbian S60 v5幾乎是Nokia獨佔而SonyEricsson只有少數產品亮相一樣。但採用MeeGo的MID, Tablet, Netbook倒是有可能出線。
Android不是不好,只是人們太過推崇它與莫名的Google崇拜讓我覺得不舒服,所以想寫些其他面相的文章來平衡一下視聽,以目前的狀況看來Android會很受歡迎,會成為除了iPhone之外第二大的Smartphone平台,但他真的適合在所有地方使用嘛? 好像也不一定。
MeeGo也是一個設計精良的作業系統,也很有可能成為人們心中真正受歡迎的Open Source Mobile Platform,期待MeeGo能有更好的發展,希望Nokia能推出更多採用MeeGo的產品,更重要的是,要記得在台灣上市阿!!!
(寫完MeeGo之後,似乎也該寫一篇Windows Mobile 7來踹踹Android XD)