標籤

顯示具有 Chromium OS 標籤的文章。 顯示所有文章
顯示具有 Chromium OS 標籤的文章。 顯示所有文章

2010年11月9日 星期二

要如何 Build Google雲端SaaS的作業系統 Chromium OS

要自己build Google的Chromium OS不是一個太大的難事,如果你按照著Google他所提供的步驟來做build的起來的話我頭可以給你,因為你會遇到一些眉眉角角要處理的小問題。

Google Chromium OS的網頁提供了許多的資訊可以參考,要自己build Chromium OS的話就要到這裡看一下資料。 根據上面的資料你必須準備build之前所需要的東西, Ubuntu 64 bits 8.04以上的版本,以及一些所需要的software。 看這個內容真的是很模糊,頗有Alpha的水準,以下就分享一下我build的步驟。

A. 準備動作
1. Ubuntu 64 bits Desktop 的作業系統,你一定要用64 bits的版本,32 bit的Ubuntu build不起來,相信我所說的因為我試過了。
2. 如果你沒有額外的機器,你可以在VMware上安裝Ubuntu來build,不過真的很慢,我在我的Mac上跑VM來build花了我整整一天的時間。

B. 下載所需要的Tools
1. 安裝好Ubuntu 後請開啟console mode 的 Terminal 
2. 這時你會在home的 目錄下,請 建立一個 trunk 的目錄 (輸入 mkdir trunk)
3. 現在安裝git的核心軟體curl(輸入 sudo apt-get install git-core subversion curl)
4. 現在取得Google的depot tool 
(輸入 svn co http://src.chromium.org/svn/trunk/tools/depot_tools)
5. 接下來在 建立 etc的目錄 (輸入 mkdir etc) 然後進入到 etc的目錄下 (輸入 cd etc)
6. 取得bash_completion (輸入 curl "http://www.chromium.org/chromium-os/building-chromium-os/using-cros_workon/bash_completion?attredirects=0&d=1" -o bash_completion -L )
7. 現在回到home的目錄(輸入 cd ~)
8. 建立 工具的path (輸入 Add to ~/.profile
export PATH=~/trunk/depot_tools:"$PATH"
[ -f "$HOME/etc/bash_completion" ] && . "$HOME/etc/bash_completion"
export PS1='\h:\W$(__git_ps1 "(%10s)") \u\$ ')

C. 取得Chromium OS的source code
1. 進入 trunk 的目錄 (輸入 cd trunk)
2. 取得minilayout.xml (輸入 repo init -u http://git.chromium.org/git/manifest -m minilayout.xml)
3. 在取得  minilayout.xml 後開始來下載最新的Chromium OS 的source code (輸入 repo sync)
4. 接下來就慢慢的等吧..
5. 等到全部下載完成後 請到scripts的目錄下來建立 chroot的作業環境
(輸入 cd ./src/scripts)
(輸入 ./make_chroot)
6. 接下來就慢慢等吧

D. 進入 chroot的環境來build image
1. 等到 chroot的環境建立好之後請進入 chroot (輸入  ./enter_chroot.sh)
2. 進入chroot的環境後請先建立一個 share user所需的密碼 
(輸入 ./set_shared_user_password.sh)
shared user 的預設帳號名是 chronos,只後你可以用這個預設帳號與密碼進入你的 Chromium OS
3. 設定build目標的硬體設備 (輸入 ./setup_board --board=x86-generic --default)
4. 接下來就開始build package吧 (輸入 ./build_packages)
5. ok現在先去睡個覺慢慢等吧
6. 現在來開始 build image (輸入 ./build_image.sh)
7. ok 再去睡個覺吧
8. build好的image 會存在 /build/images/x86-generic/latest/ 的目錄下

E. 製作VMware image 
1. 確認一下qemu-img 是否存在 (輸入 which qemu-img)
2. 如果沒有的話就需要merge qemu-kvm (輸入 udo emerge -sq qemu)
3. 完成後可以下次確認 (輸入 which qemu-img)
4. 接下來開始 build VMware的image吧 (輸入 /image_to_vm.sh --from=../build/images/x86-generic/latest/ --board=x86-generic --make_vmx --format vmware --vmdk  chromiumos_vmware.vmdk --vmx chromiumos_vmware.vmx)
5. build 好VMware image後可以load vmx的設定檔來載入vmdk的image,在這之前你比需修改一下 vmx的內容要不然image load起來後會無法選擇網路,請在vmx檔內加入這一個網路介面 (ethernet0.virtualDev = "e1000" )

F. 製作USB boot up image
1. 你可以 輸入 sudo fdisk -l 的指令來確定你USB所在的位置
2. 輸入 ./image_to_usb.sh --to /dev/sdb 來安裝USB boot up image (/dev/sdb 是我usb device所在的位置)

我的USB boot up image製作並不成功,Boot up 的結果是螢幕一片黑,目前我還在想辦法解決中。 



乘載Google雲端Saas的作業系統 Chromium OS - Part2

Hexxeh所build的Flow版本是比較舊的版本,他在今年8月有提供另一個新的版本Vanilla但是這個版本還有許多問題所以他並未開放。  最近這個17歲的小子他的創舉則是把Chromium 放到iPad去了。  有關Hexxeh最新的動態可以到他的Blog看看

(b) 下載使用Hexxeh的Chromium OS Flow image
要下載Hexxeh的build請到http://chromeos.hexxeh.net/ 他提供了兩個版本,VMware image跟USB boot up image。 Hexxeh所build的版本採用的source code比較舊而且他也更改了一些UI,例如登入的背景的圖片等等。 要將這些圖片改成你自己的並不困難,只要到console model下找到 /usr/share/chromeos-assests/images/ 下更改login_background.png, login_panel.png 和 login_splash.png 這三個檔案就可以了。


1. 請到http://chromeos.hexxeh.net/ 下載


2. 選擇你要的image下載

3. 下載完畢後請解壓縮至你所指定的目錄下,然後開啟 VMware


4. 新增VM (圖片所使用的是Mac的版本)

5. 選擇使用已存在的image (Use an existing virtual disk:)來安裝

6. 選擇所下載的image解壓縮後的目錄選擇 ChromeOS.vmdk檔

7. 此時會詢問是否要將這個由舊版VMware的image轉換成新版的,我是選擇不轉換,因為轉換也會花一些時間


8. 之後按Continue鍵來繼續

9. 作業系統請選擇 Linux, 版本請選擇 Other Linux 2.6.x kernel

10. 之後請選擇Customize Settings來做網路設定,請將網路設定成bridge 模式

11. 啟動image後就可以看到登入畫面,如果你已經連上網路你可以用你的Google 帳號來登入如果未連上網路的話,你可以用Hexxeh所預設的帳號登入
帳號 facepunch
密碼 facepunch

12. 如果你之前未將網路設定成Bridge 模式,你可以在VMware的右下角方來做設定

13. 登入完成後你可以看到這個畫面,現在將滑鼠移到左上方 Chrome 的icon上再按左鍵

14. 之後你可以看到有許多雲端服務可以讓你使用,基本上這些icon就是連結,一旦點進去就進入所選擇的服務網站內。  根據Google的定義,裡面的各個icon就是所謂的Chrome App,開發這可以將根據Chrome Web Store的準則來upload你的html以及icon檔案。

15. 在E-mail tab裡有提供了 AOL mail, Gmail, Hotmail, MobileMe 以及Yahoo Mail

16. 在 Games tab裡有一些網路小遊戲可以玩

17. 隨便點一下接龍遊戲來玩看看

18. IM tab也提供了Google 自家的 Google Talk

19. Media Tab 則是提供了一些媒體網頁的links

20. 在Productivity tab提供了一些與工作相關link的服務,裡面有我愛用的DropBox跟Evernote,我對280 Slides有一點好奇於是點選進去看看。

21. 一點進去不得了,竟然是讓你製作Slide的網路服務。

22. 不但可以製做成ppt檔連pptx也support. 製作好的文件也是存在雲端上。

23. 在Shop的tab內提供了一些線上交易相關的links

24. 在Social tab內目前檯面上的服務都列在其中

25. 測試一下影音內容看看

26. 看YouTube也可以,不過System hang的機率很大

27. Google出品在多國語言的支援上當然不成問題

28. 在Option的設定上可以看到 Touch Pad的設定,難道Chromium OS當初是以觸控介面當主軸? 後來我自己build的版本內並未看到這個選項,產品方向改變?

29. 在網路設定上有Ethernet, Wifi 以及Cellular,嗯..這個給我的感覺舊版的Chromium OS可能本來要做成 Touch Pad的廠商用的,可能iPad的推出會讓Chromium OS的功能顯得太陽春,會不會用Android來做Touch Pad會好一點,這樣一來Chromium OS的定位就尷尬了。

30.在Basic設定內竟然容許Bing跟Yahoo search engine的選項出現

31. 至於要如何將所常用的App加到 My Apps內呢? 只要在所選的Icon上的右上角按 + 就可以了


32. 回到My Apps tab內可以看到我所要加的AOL Mail 已經加入進去了

33. 輸入 file:/// 就可以看到file list了

35. 要叫出Touch Pad上的keyboard請按 F8鍵


36. 按下 Ctrl鍵可以看到一些功能鍵

37.按下Crtl + Shift 也是

38. 按下Ctrl + Alt 鍵也是




乘載Google雲端Saas的作業系統 Chromium OS - Part1

一般來說要在雲端獲利的方式有三種(a) SaaS (Software as a Service) (b)Pass (Platform as a Service) (c)IasS (Infrastructure as a Service). 這三種方式的獲利最高應該會屬於SaaS這一類的,但是要做一個成功獲利的SaaS談何容易? 除了所提供的是無間斷的跨國界服務之外,90年代日本所提倡的"集客力"也是一個決勝的原因之一。  在創業的這幾年當中學到最深的一句話就是"Why me?",如果自己能夠回答出來為何客戶為何會買/不買你的產品,為何會採用/不採用你的解決方案的話幾本上就成功一半了。 但是如果你回答不出這個問題但是客戶卻買你的產品或解決方案的話,這代表其實你的東西給別人做的話會更成功。

使用者在選擇使用服務時會有幾個不同的特性,(a)群體力 (b)習慣惰性 (c) 貪婪性
 
(a)群聚力, 嚴格來說應該是群體給與的壓力,這壓力可能來自於朋友或是媒體,當你的朋友同時使用某一個服務時這個壓力就來了。 在實體的例子上以電信業者最為明顯,各個業者無非不是希望利用這個群體壓力來讓使用者不要脫離他所提供的服務以維持其獲利。 另一個例子是我以前所接觸過的案子,大部分的IM使用者大都選擇MSN 或是 Skype,當我接觸到有人使用Yahoo Messager時我問他為何使用Yahoo Message時,他說因為他的同學都用Yahoo Message,在Yahoo Messager還不能跟MSN互通時,他還必須安裝了MSN來跟另一個group的人來聯絡。  

另一個IM的例子也很明顯,不少人會同時安裝MSN 與 Skype,有趣的是使用MSN是用來與朋友聊天打屁,使用Skype大多是用來談工作的較多,或者是完全相反的使用,因為所接觸的group的使用習慣所導致這樣的使用模式。

Facebook的崛起除了群聚力奏效之外,群聚力所帶起的媒體效應也工不可沒,一般來說媒體所扮演的商業效力就是臨門一腳的效果,如果運用的好的話所帶起的龍捲風效益可是會讓人享用好幾年的光景。 

群聚力出現不只在使用者上,他同時也出現在服務業者上,單打獨鬥的時代過去了,現在流行打群架了。 在實體的例子上最明顯的就是Apple 的MAC OS可以在x86的機器上安裝並且銷售,以往競爭的死對頭其實也可以一起把餅做的更大。  當Yahoo Messager與MSN可以互通時這就更明顯了,現在你所閱覽的文章你可以同時藉由Facebook, Twitter 或其他的服務來分享,真的..打群架的時代來了,我甚至認為以後的病毒碼搞不好會不同的防毒業者會一起共用。

服務業者要發揮群聚力就必須提供API,何且必須提供多樣的開發平台,在之前的案子我研究了Facebook所提供的API,他提供了不同的介面給使用者去兜服務,你可以使用.net, java, PHP來寫,同時也提供了不同的sample code,你可以選擇 c++, Java, VB.net, C# 來做Winform, Sliverlight, Web or WPF的軟體。  不過因為所提供的廣度大,所以bugs很多,這個問題我相信會越來越嚴重,畢竟RD所需要的時間比不上使用者擴張的速度。

(b)習慣惰性
以服務提供者的角度來說,這個是優勢。 大部分的使用者一旦使用所選擇的服務後就比較難去更換,因為"改變"往往會讓使用者不知所措,在面臨"改變"的議題時,群聚力又會出現了。 當你要換車,換手機,或是換女朋友時,你通常會詢問一下其他人的意見或是看看其他社群的人說法。 要如何讓使用者不要隨意改變呢?基本上只要把改變的困難度提高就會讓人不想改變,一想到我要把我Google mail內的聯絡人與之前的mail搬到 Yahoo mail去就會放棄這個念頭了。

(c)貪婪性
我相信大部分的使用者之所以會選擇某樣服務跟人類的貪婪性有關,免費好用的服務一定是提高群聚力的一個利器之一。 試想Amazon的 EC2服務如果不是這樣的便宜又具有彈性的話要如何說服企業使用他們的服務。

之所以會談到SaaS這個東西是最近在研究雲端相關的資料與技術問題,進而研究到Google的Android與 Chromium 的作業系統,嚴格來說,我個人認為要綁死SaaS的獲利的關鍵點是在"Users",使用者為什麼要使用你的服務? 要回答這個問題有千百種,有可能是使用者的朋友多在用這個服務,或者是這個服務的商業操作很成功,更或者是使用者的惰性不想換其他的服務。  在想破這些答案前何不如提供一個裝置給使用者來綁死所提供的服務來增加獲利呢? 我相信Apple 的iPhone, iPad, iPod. Amazon的Kindle. Microsoft的Windows Phone 7 以及Google的Android 與 Chromium 的模式基本上就是要綁死自己的服務。

在看了幾份資料後我決定玩一下Google Chromium OS看看,因為這個OS是完全要仰賴Google的SaaS來工作,可說是百分百使用雲端服務的作業系統,要安裝新的軟體也要到Chrome Web Store來安裝,而你也可以將自己的App上傳到Web Store來。 基本上就功能面而言我覺得Android比Chromium OS強太多了,然而Google對這兩個作業系統的區分是以手機與小筆電來做區分,可是在我看來Chromium OS的使用很有能會被Android所取代,況且Chromium目前的穩定度還不太好,在市面上還看不到量產的產品,所以Chromium OS未來的走向會如何我也不知道,不過我是很期待他能夠茁壯,搞不好以後的家電用品內可以內建他的作業系統。

要玩Chromium OS的方式有兩種; 一是下載Chromium OS的source code自己來compile做成image在VMware或是Virtual Box上來玩,另外一種方式是去下載別人已經做好的image來玩。  這兩方式我都試過了,目前我所下載的Chromium OS的source code版本是65334版的,我再Ubuntu 10的64 bits desktop上所compile而成的,這個版本的介面跟之前的版本不同,不過可以玩玩看。 至於其他的image目前最有名的應該是Hexxeh所compile 的Flow版本,他除了提供VMware的image外也提供USB boot up的image。 順帶一提,我所build的版本目前我還搞不定USB boot up image不過我想信我可以慢慢解決。

接下來我就分別介紹一下這兩種Chromium OS

(A) Source Code版本65334 Compile 的Chromium OS image
如果有興趣在Vmware試一下這個image的話你可以到我的DropBox(http://dl.dropbox.com/u/14102517/chromiumos_vmware_11_06_10.zip)來下載,大小約200多MB。 有空的話我會寫一下如何自己來build Chromium OS的步驟。

1. 下載解開zip檔案後用Vmware把image load幾來後會看到這個初始畫面,你可以選擇語言與網路介面。(之前我花了一天的時間把網路介面搞定,compile好的image轉成Vmware後網路介面一直出不來,看了image_to_vm.sh的script也沒發現異狀,後來改用workaround的方式才成功)

2.輸入帳號,我把這個VMware image的網路設定成bridge的模式來確保能夠上網,如果網路是ok的話你可以輸入你的Google mail account來登入,例如我的goole mail account是 stevenhsu.tw@gmail.com 我就輸入stevenhsu.tw 就可以了。


3. 如果你無法上網的話你可以輸入我在compile所設定的帳號;
帳號 chronos
密碼 tcloud
這組帳號也可以用在console mode上,要切到console mode 的方式有兩種 (ctrl+alt+t) 或是用(ctrl+alt+F2)。 要離開console mode 輸入exit或是按 (ctrl+alt+F1)


4. 一旦登入成功就會到這個畫面,由於我未話掛上camera的driver所以按Skip鍵離開吧。 基本上這個動作就是幫你的帳號照張大頭照就像Mac OS要登入的方式一樣。


5.之後所開啟的就是 Chrome 的browser,基本上Chromium OS的所有操作就是使用Chrome 瀏覽器來運作,他支援Flash跟Java Script所以大部分的網頁顯示都沒啥問題,如果我手上資料沒錯的話,他還同時支援HTML 5的格式。 由於這是測試帳號所以也沒顯示Google所提供的服務項目。


6. 按右邊的網路icon來看一下網路設定
7. 你可以看到有許多不同的設定可更改


8. 我在Basic Setting把 Show Home button enable起來

9. 在Lab的設定內你可以把Media Player, Talk 或是管理Advanced filesystem enable起來,不過導致system hang的機會很大。

10. 在default 頁面上有一個連結可以到這個page讓你了解更多有關Google Chrome的相關資料,可以看到的是Google 慢慢的把一些多媒體相關的資料放在Introduction內了。

11.接下來我登出chronos 的帳號並且按下 + 的button來新增我自己的Google 帳號。


12. 輸入自己的Google account來登入


13.登入後就可以看到已經存在的Apps,像是gmail, Docs等等。

14.  按下Web Store後會來到這個頁面,基本上要安裝新軟體必須要到這裡安裝,開發這也可以上傳自己的App到這裡,不過目前還是屬於實驗階段。

15. 除了開發App之外,也可以開發給Chrome Browser用的extension (插件)


15.如果想要瀏覽檔案的話你可以輸入 file:/// 來瀏覽

16. 按 ctrl+alt+t 鍵可以到所提供的shell mode,不過所提供的command很少。 (輸入exit可以離開 shell mode)

17. 建議是按ctrl+alt+F2 直接到console mode (如果使用VMware要注意一下,因為ctrl+alt在VMware是離開VM到Host端,所以一旦不小心離開VM後只要再按著ctrl+alt然後用mouse點入VM內再按t就可以進入console mode)
帳號 chronos
密碼 tcloud

18.在console mode有許多的指令都可以用,連top都可以
 
19. 回到GUI mode 只要按(ctrl+alt+F1),在GU mode也提供了task manager跟Chrome browser自豪的developer tool來對網頁偵錯debug


20. 此外Chromium OS也支援多國語言,只要在登入時選擇語言就可以了。


21. 現在連到其他的page看看

 22.原本想是看看可不可跑HouseCall結果不行


這個版本算是目前最新的版本不過跟之前的版本比起來拿掉了不少東西,接下來在Part2將介紹Hexxeh所build的版本,不過他所compile的版本是用舊版的source code,據說新版的source code他build起來也有不少問題。