embedded linux 開發導論 -...

20
Embedded Linux 開發導論 中華民國九十九年十月二十 八日星期四

Upload: others

Post on 18-Oct-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

Embedded Linux

開發導論

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

Page 2: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

Embedded Linux

• 是一個基於Linux Kernel的系統

• 依實際需求

– 使用特定的程式庫

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

Page 3: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

為什麼採用Linux Kernel?

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

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

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

• Shared libraries的支援。

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

– GNU General Public License (GPL), version 2

Page 4: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

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

Page 5: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

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

Page 6: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

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

Linux From Scratch (LFS)

Page 7: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

與Linux system有關的標準

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

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

Page 8: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General
Page 9: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General
Page 10: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

We need...

• OS Kernel

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

• File system

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

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

• Boot loader*

Page 11: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

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

Page 12: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

File system

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

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

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

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

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

Page 13: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

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

Page 14: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

目標平台(Target)

Page 15: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

開發環境

Page 16: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

U-Boot

Page 17: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

Linux Kernel

Page 18: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

File system

Page 19: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

Just for fun!

Page 20: Embedded Linux 開發導論 - cs.sttlrc.kuas.edu.twcs.sttlrc.kuas.edu.tw/pluginfile.php/8597/mod_resource/content/0... · •Linux Kernel為開放源碼的產品。 –GNU General

Thank you~~~