Embedded Linux 開發導論 -...

Preview:

Citation preview

Embedded Linux

開發導論

中華民國九十九年十月二十八日星期四

Embedded Linux

• 是一個基於Linux Kernel的系統

• 依實際需求

– 使用特定的程式庫

– 使用經過修改的應用程式

為什麼採用Linux Kernel?

• 良好的記憶體及進程(process)管理。

• 良好的security model及權限(permissions)管理。

• 良好且經過驗證的driver model。

• Shared libraries的支援。

• Linux Kernel為開放源碼的產品。

– GNU General Public License (GPL), version 2

Linux based Software Solution

Solution 主導單位 授權模式

LiMo Linux Mobile Foundation GPL

OpenMoko Openmoko, Inc. GPL

Moblin Intel Corp. GPL

Maemo Nokia Corp. GPL

MeeGo Combined by Moblin and Maemo

FSO Funded by Openmoko, Inc. from January 2008 until March 2009.

Android Google Apache License

From: Qiang Wang, "Google Android's Significance for Mobile Linux Ecosystem"

• 由Gerard Beekmans主持維護的教科書名,說明如何由套件原始碼客製Linux system。

Linux From Scratch (LFS)

與Linux system有關的標準

• Linux Standard Base (LSB)減少因Linux system的多樣性對開發人員所造成的困擾。

• Filesystem Hierarchy Standard (FHS)定義了類UNIX系統的目錄和檔案結構。

We need...

• OS Kernel

– 選擇一個合適的Linux kernel版本,例如Linuxkernel 2.6.27或2.6.29等。

• File system

– 系統基本設定(組態)及公用程式。

– 針對應用而設計的軟體。

• Boot loader*

Linux kernel

• Linux kernel 2.6

• Linus Torvalds vs. Android Open Source Project (AOSP)

– What happen in Linux Kernel 2.6.33?

• http://www.kernel.org

• http://source.android.com

File system

• UNIX法則:「Everything is file.」。

– 即使是記憶體(/dev/mem)。

• Linux支援眾多檔案系統的格式。

– Ext2或Ext3必須透過NFTL (NAND Flash Transition Layer)作轉換才能用於Flash memory。

• 支援Flash的檔案系統技術包括JFFS2/YAFFS、RAMFS、CRAMFS、ROMFS等。

Boot loader

• Boot loader是目標平台上電之後「第一個」執行的程式。

• Boot loader通常「僅」驅動部份裝置,並提供使用者設定參數、載入OS等功能。– 供Debug用的串列介面– Ethernet Controller– USB Host / USB Device– USB Networking– SDMMC– LCD

• Boot loader負責載入Linux kernel。• Boot loader vs. BIOS

目標平台(Target)

開發環境

U-Boot

Linux Kernel

File system

Just for fun!

Thank you~~~

Recommended