jollen.org

Embedded Linux R&D

Jollen 網路學院 2011 !!

Embedded Linux 與 Android 技術分享與研究網站。

這是一個 Jollen 的分享平臺,這裡有一些 embedded Linux、Linux device driver 與 Linux kernel 的教學文件,也有一些個人想法的分享,都在我的 Blog 裡。

Jollen 的 Linux training 課程領域:Linux kernel、Linux device driver、cross toolchains、root filesystem build-up、ARM9/PowerPC hardware bring-up (U-Boot)。

Jollen's BlogEmbedded Linux/Android 教育訓練

May 16, 2012: 什麼最重要、Browser 最重要

HTML5 來了。什麼最重要,Browser 最重要。因為所有 HTML5 App 都在 Browser 環境裡執行,所以,HTML5 App 的 Runtime 就是瀏覽器。 正因為這個原因,各家軟體大廠無不加碼研發人才,努力打造一個能完全相容 HTML5 的瀏覽器,連今年10月份要登場的 Windows 8 Mobile Phone 也在 HTML5 做了很大的改進。 可以這樣想,第一代的 App 使用 OS 做為 Runtime。第二代的 App 使用 Java Virtual Machine 做為 Runtime,例如:Android。第三代的 App 將使用 Browser 做為 Runtime。所以,Runtime...(more)

April 15, 2012: [Jollen's AFC] 1.3 C & Object-oriented

最經常使用的物件導向觀念就是繼承(Inherit),使用C語言如何實作繼承?最實用的例子就是 Android HAL。以下圖為例,這是一個標準的 HAL Stub 設計。這個例子試圖在原有的 Android 作業系統裡加入一個「LED Stub」,透過 LED Stub 來控制底層的 LED 硬體。 圖1.3是一個標準的繼承設計,也就是說,在設計 HAL Stub 時,需要重用 hw_module_t 設計。從架構設計的角度來看,我們進行設計重用的工作,以擴充出 LED Stub;錯誤做法是,直接修改原有的 hw_module_t 設計,以達到原本的要求。上述觀念,就為設計重用(Design reuse),這是軟體工程領域相當重要的知識。  圖1.3 HAL Stub設計重用 在開發 Android 系統時,會不斷地 reuse 原有的設計,以擴充出想要的功能。 以標準 C 語言實作圖1.3的方式如下: 1. 以資料結構(Data structure)來描述類別(Class)...(more)

April 12, 2012: Jollen's AFC 電子書開工了,順便提暢 Single 的概念

先前在「Jollen 的 Android Framework Complete (框架大全) 課程發表、外加感想」提到了想把 Jollen's AFC 寫成一本書的構想,現在開始付諸行動了。學生時代寫書,其實也不是為了寫書而寫,大多是平常做技術的零碎紀錄,再匯集而成。在看到自已的成果出版成實體書時,內心可是無比的感動與激動,要特別感謝旗標出版社當時給了我這麼好的機會。 這次,也打算開始整理手邊的資料,慢慢匯整成一本書,並且一邊整理,一邊上線。這就是數位內容的好處,不用一次全寫完再出版。新書的書名也未定,所以暫且叫做「Jollen's AFC」吧。不過,這次不打算出版實體書,原因有三: 1. 這是冷門書。內容不在迎合業界需求,而是希望寫出真正自已想像中的作品。 2. Light-weight content,頁數鎖定在 200 頁上下。簡單說,出版社考量實體書售價(根據頁數),以及管銷成本等,應該也不願意出版。 3. 不能 Print on demand,也就是不能「隨選列印」。有時讀者可能只想看,並且列印部份內容而已。 近二年,原文書掀起一股輕量級風,越是有深度、越是複雜的技術,內容就更輕量級。這種書的優點是,讀起來全不費工夫,而且一氣呵成,暢快無比。缺點是,底子不深,就很難啃,自已也踼過幾次鐵板。寫出這種書的作者,必定底子深厚,而且把知識融會貫通得很好。我決定多磨練一下功力,挑戰這種輕量級的寫作。 輕量級寫作的重點,在於頁數少,或是字數少。不過,最不重要的就是它的頁數或字數,而是內容的價值。輕量級的書,就是「底子不深不好啃」的概念,看起來小小一本,質量卻很大,讀起有重量。中文電腦書流行的磚頭書概念,也是經常有不錯的作品,但是請避免看起來很大,讀起來卻很輕的現象。例如,連續20頁都是程式碼(Source code listing)。 其實網路上有許多優質的短篇內容,但並不利於做實體出版,就算要出版,出版商也會請作者想辦法補到一定頁數。於是,為了補頁數、趕截稿,作者只好草草做工,所以最後的章節,也就草草了事。非常可惜。 為了不讓短篇內容,被出版商裝上義肢,所以 Amazon 就提出了一個解決方案。線上自助出版平臺。 Amazon 把這類有價值,字數介於一萬至三萬字間的短篇(小品),稱為 Single,並且搭配 Kindle Fire 推出了一個獨立的 Single 線上自助出版產品線。...(more)

April 11, 2012: JavaScript 王者再臨

JavaScript 是「王者再臨」的最佳代言人,由於 jQuery 被大量應用在網頁設計上的原因,讓 JavaScript 再度被重視了起來;再加上 HTML5 的推波助瀾,JavaScript 儼然成為今年最受矚目的程式語言。 現在,JavaScript 的主要用途,已經由過去的動態網頁(Dynamic Webpages),轉為開發 HTML5 App 角色;也就是 HTML5 的應用。我們不僅僅使用 JavaScript 製作有動態效果的網頁,還藉助它來開發大量的 UI interactive、使用者體驗的設計,以及,最重要的雲端服務的整合。 還有一個很重要的應用,就是「JavaScript in Browser」,也就是利用 JavaScript 來增強瀏覽器的功能,最為大家所熟悉的例子,就是 Google Chrome。Google Chrome 為了增強對 JavaScript 的支援與效能,開發了新的 JavaScript 引擎;在日記「HTML5在手持裝置將開始爆發式成長」就提到了,「JavaScript引擎的成熟度是關鍵」。 所以,測試 JavaScript 的使用案例(Use Cases)在各大瀏覽器的效能,更為一項重要的工程工作。目前被軟體工程師廣為使用的 jsPerf 就是為此而生。更進一步地,由於...(more)

April 8, 2012: [Jollen's AFC] 1.2 C & Object-oriented

Linux 核心是 implicit of object-oriented 的典型實例。例如,在開發驅動程式的過程中,雖然不需要特別了解驅動程式的物件導向架構,但其架構則是依循嚴謹的物件導向觀念。Linux 核心與驅動程式,都是以 C 語言實作。 另外一個例子,就是筆者在 Android Framework & HAL 課程中所提到的 HAL Stub 觀念。HAL Stub 可採用 C 語言實作,編譯後以 *.so 形式佈署,但它不是程式庫(Library),而是一個物件(Object)。 圖1.2 HAL Stub 架構 HAL 的模組稱為 Stub,Stub 是一種物件。Stub 在軟體工程領域代表「樁」的角色,也就是整體架構中的一小段基礎程式碼,這段程式碼有著以下二個特色: 1. 符合架構的程式碼(打地基) 2. 一段程式碼範本,最終的實作 (final implementation) 是代理人...(more)

訂閱 jollen.org 電子報: 最新消息與專欄動態
Email:

Jollen 的 Embedded Linux 電子出版

Copyright(c) 2006,2007,2010,2011 www.jollen.org. All rights reserved.