embedded linux ,android

2010年12月6日 星期一

satellite


bootcmd=if mmc init; then if run loadbootscript; then run bootscript; else if run loaduimage; then run mmcboot; else run nandboot; fi; fi; else run nandboot; fi
bootdelay=10
baudrate=115200
bootfile=uImage
loadaddr=0x82000000
usbtty=cdc_acm
console=ttyS2,115200n8
mmcargs=setenv bootargs console=${console} root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait
nandargs=setenv bootargs console=${console} root=/dev/mtdblock4 rw rootfstype=jffs2
loadbootscript=fatload mmc 0 ${loadaddr} boot.scr
bootscript=echo Running bootscript from mmc ...; source ${loadaddr}
loaduimage=fatload mmc 0 ${loadaddr} uImage
mmcboot=echo Booting from mmc ...; run mmcargs; bootm ${loadaddr}
nandboot=echo Booting from nand ...; run nandargs; onenand read ${loadaddr} 280000 400000; bootm ${loadaddr}
stdin=serial
stdout=serial
stderr=serial
dieid#=139600211ff00000015a5e590e018014
ethact=smc911x-0
filesize=24A29C

//=====================================

setenv nandboot 'echo Booting from nand ...; run nandargs; nand read ${loadaddr} 280000 400000; bootm ${loadaddr}'
setenv loadaddr '0x80200000' //
setenv console 'ttyS0,115200n8' //............down-

setenv mtdids 'nand0=nand_mtd'
setenv mtdparts 'mtdparts=nand_mtd:0x120000@0(uboot)ro,0x400000@0x280000(kernel)ro,0x1000000@0x1000000(RootFS)ro'
setenv nandargs=setenv bootargs console=${console} $(mtdparts) root=/dev/mtdblock3 rw rootfstype=cramfs
setenv nandboot 'echo Booting from nand ...; run nandargs; nand read ${loadaddr} 280000 400000; bootm ${loadaddr}'

//======================================


1
tar -xzvf iperf-2.0.4.tar.gz  
cd iperf-2.0.4
 
2
export CC=xxx-gcc
export CXX=xxx-g++
./configure --prefix=/root --host=arm-linux
make

3.
tftp -g -r iperf xx.xx.xx.xx

4.
chmod +x iperf
iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------


2010年12月2日 星期四

浮點數表示法

單精度浮點數表示法用來表示 "實數"

所謂實數,就是有小數部分的數值
所謂浮點數,是因為在將數值表示成0與1過程中,小數點會 "位移" 的關係
所謂單精度,是因為還有另一種叫做 "雙精度" 範圍更大

單精度表示法使用32個位元, 編號 31~0
最高位元(31)為符號位元,0為正,1為負
指數部分8位元 (30-23),以 "超127" 表示
剩下皆為假數部分即正規化後小數點之後的數字
即 符號(1) + 指數(8) + 假數(23)

float a=1.0f = + (1.0)b * 2^0

正數所以符號位元為0
指數0+127 即 0111 1111
假數 000 0000 0000 0000 0000 0000

所以 1.0 在記憶體的表現為 0011 1111 1000 0000 0000 0000 0000 0000
即 0x3f800000

2010年12月1日 星期三

時間復雜度

演算法--分析及解決一個問題的方法,例如步驟一是什麼,步驟二是什麼...最後一步驟是什麼

利用時間複雜度判斷演算法的好壞

時間複雜度分析方法是
(1) 計算出程式每個敘述的執行次數
(2) 將執行次數以Big-O表示法表示

Big-O 為漸近上限

當n很大時, logn < n < nlogn < 平方 < 立方 < 次方 < n階

2010年11月28日 星期日

procfs sysfs devfs 的意義

/dev 是 user 利用application與硬體裝置溝通的介面
/sys  是OS post 出來的device相關的information
/proc 是Process與OS的整體資訊
所以三者是不互相取代的

2010年11月21日 星期日

[轉]雲端運算是趨勢是噱頭抑或是一場騙局?


文章發佈於 : 2009-11-04 22:33:43 | 文章分類 : 阿維看世界
如果你跟我一樣經歷過數據機時代,或許曾經參與過一個計劃,在你的電腦上面安裝一個小程式,當你的網路進入閒置狀態就會使用你的電腦進行運算,協助某個科學機構計算人類DNA結構。撇開這個計畫是不是真的,或者這個計畫到最後到底算出了什麼東西,這樣的模式是我第一次看到雲端運算這四個字第一個想到的例子。

現在雲端喊的漫天震響,甚至出現不加入雲端就落伍了這樣新聞標題。但是當整個業界都瀰漫在一股雲端運算熱的時候,甚至連不熟悉網路產業的周遭親友都在談論雲端運算時,我們是否真的了解什麼是雲端運算?

現在這種場景讓我想到一句名言,當周遭所有的親朋好友甚至連菜市場的婆婆媽媽都在談論股票,並且各各說得頭頭是道,振振有詞時,就是該出脫股票的時候了。這句話雖然有點諷刺但歷史經驗告訴我們這句話似乎頗有道理的。前一次網路泡沫化發生之前,不管是什麼行業通通一窩蜂的 dot com,似乎只要掛上dot com這個招牌,企業營收就會一路往上飆升;以及數年前股市從萬點大崩盤。這兩個歷史經驗都印證了這句話。

資訊科技這個產業有一個毛病,什麼東西都要簡寫和縮寫,常常讓不在這個產業的人一頭霧水,然後還自己得意洋洋以為自己高人一等。因此首先我們必須知道雲端這兩個字到底是什麼的簡稱或縮寫,雲端原本的名字是雲端運算,請注意運算這兩個字;大陸翻譯成雲計算,也請注意計算這兩個字。

根據維基百科對於雲端運算說明如下:
雲端運算(cloud computing,中國大陸譯作雲計算),是一種基於網際網路的運算新方式,透過網際網路上異構、自治的服務為個人和企業使用者提供按需即取的運算。由於資源是在網際網路上,而在電腦流程圖中,網際網路常以一個雲狀圖案來表示,因此可以形象地類比為雲運算,『雲端』同時也是對底層基礎設施的一種抽象概念。

雲端運算的資源是動態易擴充套件而且虛擬化的,透過網際網路提供。終端使用者不需要了解「雲端」中基礎設施的細節,不必具有相應的專業知識,也無需直接進行控制,只關注自己真正需要什麼樣的資源以及如何透過網路來得到相應的服務。

雲端運算可以認為包括以下幾個層次的服務:基礎設施即服務(IaaS),平台即服務(PaaS)和軟體即服務(SaaS)。雲端運算服務通常提供通用的透過瀏覽器存取的線上商業應用,軟體和資料可儲存在資料中心。

基本特徵
網際網路上的雲端運算服務特徵具有和自然界的雲端、水迴圈具有一定的相似性,因此,雲端是一個相當貼切的比喻。通常雲端運算服務應該具備以下幾條特徵:

    * 基於虛擬化科技快速部署資源或獲得服務
    * 實作動態的、可伸縮的擴充套件
    * 按需提供資源、按使用量付費
    * 透過網際網路提供、面向海量資訊處理
    * 使用者可以方便地參與


維基百科寫的對於有人來說或許看不太懂,我舉另外一個例子來說明。首先我們先拋開維基百科上面所寫的和雲端運算這兩件事情。前陣子到目前都還相當流行的自己架站,不管是自己架設部落格或者是架設其他類型網站,到電子書店都會發現相當多這類型的書籍。

當你選定一套程式不管是wordpress、xoops或者是drupal,接下來的工作就是要購買主機和網域名稱。一般來說個人使用者挑選的是便宜的虛擬主機,也就是主機商提供一套主機(不是一台喔,如果你的主機商只有一台主機,那麼我奉勸你還是早點換主機商吧)然後切割成許多的區塊,你可以承租這個區塊去架設你的部落格或者是其他你想要的網站。這個概念就很像房東把一層樓隔成一間一間小小間的雅房或套房出租出去,付的錢比較多就可以租套房,付的錢比較少就只能租雅房。

你承租的主機空間包含了基本的硬碟空間和網路流量,如果你超過了基本使用量就需要額外支付費用。就好比你和房東約定好每個月的房租包含了兩百元的水電費,但是超過的部分你就需要額外再支付給房東。

這一切看起來都很合理,但是問題來了,我每個月的水電費用量都少於兩百元,可是我每個月付的房租裡面就是包含了固定兩百元的水電費,這樣我不是很虧嗎?此外,我平常所使用的空間比雅房還要小,可是我就是要付這樣的房租給房東,怎麼算都不划算。偶爾找朋友來想聚一聚吃個火鍋,立刻就又發現地方太小,實在是太擁擠了。

如果找到一個房東跟你說,水電費按照你使用的量,用多少就付多少,這樣是不是比較好,當然這個模式已經實現在現在一般的租賃中。這時候如果一個房東跟你說,房租一天一坪50元,按照你每天使用的坪數大小來收費,這樣是不是就太美好了。今天只想一個人靜靜的躲在自己的小天地,只需要五坪空間,你就只需要付250元;改天約了一群朋友來家裡開party需要100坪空間,那就付5000元。

你每天跟房東租的空間就好比是你向虛擬主機商承租的空間;你網站的流量就是你每天所使用的水電費。而這樣的動態而且可以隨時根據你的需求做變化,然後再根據你的使用量來進行收費的模式,就是維基百科形容雲端運算基本特徵的前三項。

看到這裡,你是不是覺得所謂的雲端運算就跟現行的虛擬主機很類似,只是將計費模式做了一些更動,沒錯!到目前為止的確是這樣,但是別忘了後面還有兩個基本特徵:透過網際網路提供、面向海量資訊處理以及使用者可以方便的參與。

這兩個基本特徵回到我第一段提到的內容,某個科學機構提供一個小程式,讓參與的人安裝後,在參與者網路閒置時進行運算並且將運算的結果回傳回去到該科學機構。

舉一個例子,大家都聽過木馬和殭屍電腦,先不管你對這兩個名詞的了解有多少。我們大家先化身為駭客,你今天想要攻擊一個你看不順眼的網站,或者是有人付錢請你攻擊一個網站。這時候如果單靠你自己一台電腦,一定很難讓那個網站掛掉,如果你可以透過散撥木馬控制一萬台甚至是十萬台電腦,這樣攻擊成功的機率是不是就高出許多?

所以其實雲端運算並不是一個新的東西,這件事情早就在你我身邊發生,而且運用的最好還是所謂的非法行為。

總結一下
(1) 基於虛擬化科技快速部屬資源或獲得服務:駭客快速部屬木馬然後獲得你的電腦來幫他服務;
(2) 實作動態的、可伸縮的擴充套件:駭客可以隨時隨機選擇被植入木馬的電腦來進行散撥病毒或木馬或者做他想要你做的事情;
(3) 按需求提供資源、按使用量付費:駭客對被植入木馬的電腦要求資源,被植入木馬的電腦就乖乖提供資源,只是付費的不是駭客,是被植入木馬的電腦的主人,傻傻的花錢買主機和牽ADSL;
(4) 透過網際網路提供、面向海量資訊處理:駭客透過網路操控被植入木馬的電腦,然後發出攻擊指令,對特定的電腦或網站進行攻擊。想想看上萬台甚至上百萬台電腦同時對特定電腦或網站攻擊,這個資訊量夠大了吧;
(5) 使用者可以方便地參與:只要我們不重視電腦安全,我們隨時都可以快速又方便的參與。

這裡我還真的要感謝駭客們提供了這麼一個簡單易懂的雲端運算範例,想必大家應該都可以了解什麼是雲端運算了。

看起來雲端運算對我們似乎沒有什麼幫助,除了主機的費用是根據我們實際的使用量來計價之外。但是任何的科技都是一體兩面的,就看我們怎麼去使用它。

最後我們回頭來看看現在資訊科技產業號稱的雲端運算是什麼,現在台灣喊雲端運算喊的最大聲動作也最明顯的就是廣達,連這期的天下雜誌都特地做了一篇專欄。

節錄天下雜誌專欄的內容:
(1) 廣達出資三點三億,取得多媒體及網路等晶片的Tilera Corp.的特別股,投入雲端運算晶片設計。
(2) 林百里自信地說,「接下來要做全球最大的三C企業。」這是個石破天驚的轉型宣示。意味著,過去專注筆電ODM代工製造的廣達,將變成林百里新三C「雲端運算」(cloud computing)、「連結」(connectivity)、「client device」(消費端載具),提供客戶雲端運算需求下,一條龍式的solution provider(系統解決方案供應者)。
(3) 林百里認為未來想要創業的人,可以省去向VC募資投資硬體,只要向廣達租低廉的雲端空間,就可以善用各地人才創新。

看起來廣達自信滿滿的投入雲端運算這個領域,但是問題來了,這樣最多只有做到雲端運算的第三項基本特徵,那跟虛擬主機商有什麼分別呢?最多只能算是雲端運算中的一個子項目基礎設施即服務(IaaS)

雲端運算的其中一項特徵就是透過網路處理大量資訊,而處理大量資訊的前提就是到底要處理什麼資訊呢?如果沒有服務沒有軟體放在這樣的機制上面,那這一切的架構都只是空談,相比對之下,連只會下載別人寫好的木馬然後散撥出去的毛頭小駭客更清楚雲端運算怎麼應用。

台灣的問題就是一向重視硬體不重視軟體,如果真的要投入雲端運算,請告訴別人你準備在雲端運算上面提供什麼軟體應用服務,而且請注意一點,雲端運算是需要使用者可以方便參與,方便參與也包含了另外一層意義,這個軟體是使用者想要或是需要的服務或軟體。

如果只是打著雲端運算的旗幟而沒有了解雲端運算的本質,這樣就跟前一波網路泡沫化前一樣,打著dot com的旗幟到處宣揚,或許不會跟之前一樣泡沫,但最後大家終將發現這只是資訊科技產業的另一項噱頭,最後成為一場世紀騙局而已,只是看你騙的程度有多大,騙了股東或投資人抑或是整個資訊科技產業騙了全世界。

參考資料
(1) 維基百科 雲端運算
(2) 天下雜誌 筆電之後是什麼?林百里:我不去藍海,我去雲端

vmWare中操作過程的錄製

在vmWare中可以利用VM--> Capture Movie這個選項來錄製各種作業系統的操作過程,產生出XXX.avi的檔案,但檔案太大了,所以需要利用轉檔軟體,利如CamStudio轉成flash swf方便傳輸及放在網路上分享

2010年11月18日 星期四

一流點子,還是一流團隊?


一流點子,還是一流團隊?

撰文者:郭奕伶

如果你是一個領導者,資源有限,你要選擇一流的點子,還是一流的團隊? 我曾經以為,好點子最重要,即便執行力打折,都瑕不掩瑜。畢竟,執行力的效率,怎麼打得過創新的破壞力?

然而,在加州爾灣(Irvine),我們深入製作《魔獸世界》的秘密基地——暴雪娛樂(Blizzard Entertainment)後,我發現,答案並非如此。

這裡,應該是全世界最看重創意、最自由的地方,但一進到工作現場,昏暗、沉默、密密麻麻的會議時間表??。

他們,是一支紀律嚴明的軍隊,十五年來只出過三個系列的遊戲,卻款款熱賣逾十年,光一款《魔獸世界》,過去四年就進帳一千二百億元,去年淨利率是蘋果電腦(Apple)的兩倍。
想像一下,在《魔獸世界》裡,有一千四百個地點、三萬個物件、七千六百個冒險任務,而且它要用十一種語言發行,還要讓萬人同時上線互動、將全球玩家分級??。這裡頭,有多少細節?

「紀律,」創辦人兼總裁默罕(Michael Morhaime)解答,一切都奠基在「專注的紀律」。
故事,並非一開始就如此完美,草創初期,他們曾經貪心、曾經自負,甚至必須賣掉公司以換取生存,但「從回顧的角度看,我們發現,那些我們說『不』的決定,讓我們能聚焦在重要的事,」默罕將此稱為「專注的酷」(Concentrated Coolness)。
然而,誘惑從來不會停止。

尤其當一個人成功了,富有了,上門的試煉自然多了起來,決策難度也變高,所幸,這個組織的靈魂是「不斷的自我批判」,因此,即便後退兩步,下次還是會拉回正軌,再進個五步以上。一退一進、來回修正間,這家公司成為全球的線上遊戲王國。
所以,一流的點子重要,還是一流的執行團隊重要?

曾經,暴雪的數個天王級製作人出走,但最後都浮沉於世,再無驚人之作。這證明了,偉大的任務要完成,「要拿到最後的一○%,要花上比前面九○%更多的力氣。」默罕這麼說,而最後這一○%,就要靠一流團隊的執行力。

如果一定要選擇,我完全相信,一流的團隊能把二流的點子,執行到一流;但二流的團隊卻可能把一流的點子完全搞砸!