狠狠撸

狠狠撸Share a Scribd company logo
嵌入式作業系統設計、實作與移植
(2014 年春季 ) 課程說明
Jim Huang ( 黃敬群 ) <jserv.tw@gmail.com>
國立成功大學資訊工程系
Feb 18, 2014
請不要被課名嚇到!
? 作業系統其實就是使用者 / 開發
者和硬體之間的橋樑
? 嵌入式系統更是在你我周遭可見
? 至於「設計、實作與移植」只是
常見的工程方法和流程
發展作業系統有意義嗎?
? 與其說課程要求同學「開發一套作業系統」,不如說要同
學「理解開發作業系統的需求,並且實際去解決問題」
? 實務上,開發作業系統是常態
– 每天都在接觸的手機作業系統
–

消費性電子產品裡頭也多內建作業系統

–

汽車、飛機、工廠設備等等都有特製的作業系統

–

甚至可能連核心也從頭打造
其實上學期成大學生已在打造作業系統
? 進階嵌入式系統開發與實作 (2013 年秋季 )
? 教學計劃:
– 體驗產品設計背後的工程考量
– 做中學
? 期末專題就是打造出可用的電子產品雛型
裡頭就內建客製化的作業系統!
– open source!
–

●

好東西不怕人家看

●

展示自己的技能給未來的同事、老闆,甚至是投資人看

( 若有抄襲,也一併公諸於世 )
親手打造
四軸飛行器
http://wiki.csie.ncku.edu.tw/embedded/team2013-7
Demo video:
https://www.youtube.com/watch?v=7wXxCX56rRc
http://moon-bear.github.io/
體驗機電整合

http://wiki.csie.ncku.edu.tw/embedded/team2013-5
親手打造
自動彈奏吉他機器

Demo video:
http://www.youtube.com/watch?v=tk7hJ3-j62Q
http://wiki.csie.ncku.edu.tw/embedded/team2013-8
開發自動寫書法機器人

機器人書寫的成果
Demo video:
https://www.facebook.com/photo.php?v=613934675322288
http://wiki.csie.ncku.edu.tw/embedded/team2013-11
看了同學們的作品後,你還想問「開發作業系統有
什麼意義」這問題嗎?
? 四軸飛行器得同時處理馬達轉速轉向、平衡感測、用演算
法修正飛行姿態、遙控訊號、影像運算,還有保存影像資
料等繁複的操作
–

multi-tasking, synchronization, I/O, file system

? 彈奏吉他的機器人對時間要求非常苛刻,否則不只是「慢
半拍」,還會無法正確地進行和弦刷法
–

realtime

? 自動寫書法的機器人需要高效能的資料處理,否則無法自
外界擷取大量的書法資料
–

throughput, networking
開發產品,屢屢面對作業系統的議題
? 本學期課程目標就是指出嵌入式系統中,若干關鍵
的作業系統設計議題,並且帶著同學著手處理
? 不要說「怎麼可能?」,上學期修課的同學不就證
明雙手萬能的道理了嗎?現在我們則深入箇中的設
計議題,並以軟體思維去解構系統
– 讓你重新理解作業系統的基本觀念
– 同時也強調計算機組織與結構的概念
– 甚至還會複習數學觀念和工程方法
我心動了,但沒基礎怎麼辦?
? 有人說大學都在教理論,與業界脫軌。但資訊工程
系學生連數學觀念都很差,這是哪門子「教理論」
呢?一句話總結就是「要求太低」
? 只要你願意花時間,就算沒修過作業系統或計算機
組織與結構一類的科目也沒關係,課堂中會有重點
提示
? 只要資訊系、電機系、工程科學系、機械系、航太
系或相關科系的大二以上 ( 含 ) ,學過 C 語言即可
「我數理不錯,所以才考上成大」
? 有 A 、 B 兩點, B 點的高度較 A 點的為低,但不在
A 點的正下方。假定 A 、 B 之間聯有一軌道,使得
一顆彈珠得以沿著該軌道,由 A 降到 B 點。不考慮
摩擦力的話,該如何設計軌道,可使下降所需的時
間最短?
? 請作答!
擺線
? 特性:最速降性質 (brachistochrone property)
–

若一質點在重力作用下,由 P 點沿著某曲線滑落到較低的 Q 點,設 P 與
Q 不在同一鉛垂直線上,則當滑行的曲線是以 P 點為尖點的一段倒轉的
擺線弧時,質點由 P 點滑落到 Q 點所需的時間為最短

? 任取一圓,讓其切於 A 點,然後讓圓滾動,設 A 點的軌跡交直線於 AB 於
B' 。另取一圓,其半徑與第一個圓的半徑之比為 AB:AB' 。由新圓所得的擺線
會通過 B 點,彈珠從 A 到 B 的最速下降曲線居然要先下降到 B 點的下方,再
上坡到達 B 點

http://highscope.ch.ntu.edu.tw/wordpress/?p=39441
這門課除了學作業系統和嵌入式系統外,
可能還有其他收穫 ...
? 講師來自資訊產業
– 背景:杏昕科技 / 技術長 ; 工研院 / 顧問 ; 聯發科 / 顧問 ; 晶心科技 / 幕僚工程師
– 長期開發系統軟體 (OS kernel,compiler) 並活躍於開放原始碼軟體專案
? 我曾經是個對高等教育徹底失望的人,連大學都沒唸完,但工作十
年後 , 重返學校教書、再學習。如今想在台灣南部建立新的事業,讓
工程師能夠兼顧生活與工作的品質,直接在學校培養工程人員
– 著墨於基礎建設 , 將資訊技術作多方應用
–

本課程不存在「與業界脫軌」的問題,這就是部份產業的縮影
你甚至可能因為寫作業而登上媒體!

? 重點不是開發什麼產品,而是如何開發,而且保持
熱情堅持下去
好東西不怕人看,勇敢接受外界挑戰

? 若你身邊的親友都開始關注你的學習成果時,難道
不會想要持續精進下去嗎?
? 工程就是要解決真正的問題,用作品打動人心!
你可能是我的軟體使用者
? 這張圖說明了系統軟體的影響力:
你我或許互不相識,但你每天用著由
多種系統軟體建構而成的 Android
手機
–
–
–

「我不認識你,但我謝謝你」
就這樣把愛散佈到上億台手機和平板
架站寫網頁要衝到這樣的流量要多久?

? 本課程也大量使用開放原始碼軟體
和硬體,最終也鼓勵同學貢獻出去
若 Nokia, Apple, Samsung 等公司的工程師缺乏作
業系統認知,該品牌的手機你用得下去嗎?
? 人各有志,你若只想去遠通開發 ETC ,我不怪你
– 但不要偷我的錢!
–

日後 e 化戶政系統的悲劇,希望不是你造成的

? 要改變所謂「 22K 」的困境,唯有提昇產值
– 若你每年可為公司帶來兩千萬元的淨利,結果公司只給你月薪四萬
元,你就會自行找出更好的工作,或者創業,不是嗎?
– 從觀念、方法,還有視野調整起
– 勇敢地迎向國際化挑戰
– *** 國難當前 *** :你我應依侍專業能力和工程素養,試圖突破
試看下週的 MWC ,思考我們的技術著力點
http://www.mobileworldcongress.com/

? MWC (Mobile World Congress) 是年度最大的行動
通訊技術盛會, ARM 的展示攤位主打項目 :
– 售價僅 33 美元的 K-Touch( 天語 ) 智慧型手機
–

內建 big.LITTLE 技術的 Samsung 平板電腦
Learn to Fail, or Fail to Learn
? 作一個 CPU 、編譯器、作業系統並沒什麼了不起
( 當然,具體而微那種 ) ,但學生若能親眼看到自己親身
實作出這樣貌似遙不可及的項目,難道不會對投身
於資訊科技,更有信心嗎?有如此基礎,才能進一
步改善科技水平
? 本學期,我們一同打造真正能用的作業系統,並且
解決實際的問題
– 作不到的話,恐怕連皮毛都學不到
我的承諾
? 只要你在這門課有充分付出 , 絕對不會讓你失望
– 學期分數、工作機會
– 我是為了尋覓工作夥伴而來 , 不是來打分數的
? 只要你願意學 , 我就花時間教
? 儘管課程作業有一定難度 , 但你只要開口 , 我陪你一起作、
一同討論
? 我的講師費全數捐出給同學買硬體、買參考書目
? 若你在這門課表現不錯 , 拿著作品一定可找到中上的資訊科
技相關工程職務
適用對象與假設
? 對於資訊領域有熱情、並有堅持到底的學習精神
? 樂於助人 , 願意分享所學知識
– 在打群架的年代 , 隔壁的同學就是夥伴 !
? 願意花時間寫作業
? 自主學習課程所需的前備知識以及課程參考資料
? 願意花時間教會身邊的同學
課程規劃
? 三大主軸
– ARM 組織和結構

作業系統界面和設計
– 系統效能、可靠度和安全議題
–

? 搭配使用 GNU/Linux 豐富的開發工具
? 引導同學拋開第二手資料,而是直接自源頭擷取知
識並重整
時間地點
? Feb 18, 2014 – Jun 17, 2014
? 每週二
–

15:10-18:00 ( 課程 )

–

19:30- ( 實習 / 解惑 )

–

你願意的話,我從下午三點陪你到凌晨三點

? 成功大學計算中心大樓 75309 教室 ( 二樓 )
–

因為資訊工程系系館施工,請勿走錯
注意須知
? 不點名
? 考試採一對一口試,可重複應考 ( 考到滿意為止 )
? 歡迎旁聽,但請一同參與實習與進行作業繳交
? 每週都有實習課 / 作業
–

在隔週五 ( 含 ) 之前需完成作業

? 請利用共筆和 wiki
http://wiki.csie.ncku.edu.tw/embedded/schedule
? 期末有專題和口頭報告 (Final project)
– 修課同學可獲得開發板與相關硬體之補助
評分方式
? 考試 : 15%

( 涵蓋基礎電腦科學概念和案例分析 )

? 作業 : 30%

( 針對資訊產業需技能,所濃縮的訓練 )

? 期中報告 : 15%

( 並非只是作投影片,而是要改程式,甚至修改硬體設計 )

? 期末專題 : 40%
? 加分 : 參與和作業系統相關的 open source 專案開發
( 需獲得講師認可 ) ,加學期總分 10 到 40 分
課程資料
? 不需要購買教科書 , 所有課程資料都放在網路上
– 作業或考試表現優異的同學 , 可獲贈參考書籍
? wiki: http://wiki.csie.ncku.edu.tw/
–

請先參閱「進階嵌入式系統開發與實作 (2013 Fall) 」和
「嵌入式作業系統設計與實作 (Spring 2013) 」
「黃金 72 天」假說
? 每學期開始後的前 72 天,大學生的課業壓力相對
小,這時應該強化基本訓練
– 軟體開發
– 熟悉開發工具
–

每週都有 coding 作業

「柿子不能只挑軟的吃」
– 之後會讓同學準備期末專題
–
要求學生使用 open source 開發工具,連同作業
都提交到 GitHub 上,接受教師和同學的 code
review
課程作業協作平台 :
https://github.com/embedded2013/
Lecture notice about Embedded Operating System Design and Implementation
要求學生開發出一系列基於 open source 工具的系
統分析軟體,並漸進改進自行開發的作業系統
(RTOS)
本學期參考專題提案
? 開發四軸飛行器的作業系統:結合影像辨識作到自
動姿態調整
? 自動解魔術方塊的機械手臂,從硬體到軟體通包
? 開發能打電話收簡訊的手機,軟硬體通包
? 改善 Firefox OS 功能和效能
? 驗證 virtual machine monitor 實作
? 在手機上引入虛擬化技術並有合理效能
想像用自己開發的作業系統來控制機械手臂,
然後「手解」俄羅斯方塊

?

source: 成大機械系呂冠龍
Make Your Own Smart Watch

http://hackaday.com/2014/02/17/make-your-own-smart-watch/
How is a $12 phone
possible?
? The electronics consists of just two major IC
– Mediatek ( 聯發科技 ) MT6250DA
●

–

single-chip GSM/GPRS/EDGE-RX entrymultimedia

Vanchip ( 唯捷創芯 ) VC5276
●

transmit module for dual-band

http://boingboing.net/2013/04/18/how-is-a-12-phone-possible.html
期末成果發表會
? 六月中,將公開舉辦 ETC (Embedded Technology Conference) ,
讓同學們的成果有對外交流的機會
–

若你的成果跟遠通 ETC 品質相仿,自己看著辦

? 邀請來自 Intel 、聯發科技、工研院、台達電子、鴻
海科技,和若干新創公司等單位的代表給予評比
–

現在就有機會遇見未來的雇主和同事

? 一同創造回憶
甄嬛:
「永遠二字,說來簡單。若真做起来只怕是很難了」

https://twitter.com/tw_rocksaying
http://forum.businessweekly.com.tw/topic.aspx?fid=62&tid=2285
華妃:「你試過從天黑等到天亮的滋味
嗎」
請務必每週繳交作業 ( 黃金 72 日 ) ,
有進度就提交到 GitHub 上,
接受教師和同學的 review
「船停在港灣裡是最安全的,
但是那不是船存在的目的」
– Grace Hopper
電機資訊科系的學生,如果不能解決實際工程問題、為人群
尋求福祉,而只在教室「停泊」,是不是該反省呢?
來吧,一起在踏著 open source 的基礎而出航!
「資訊人的本色,就是作什麼就
要像什麼」
– 洪良茂,成大資訊系第一屆畢業生

More Related Content

Viewers also liked (9)

PDF
Making Linux do Hard Real-time
National Cheng Kung University
?
PDF
How A Compiler Works: GNU Toolchain
National Cheng Kung University
?
PDF
Develop Your Own Operating Systems using Cheap ARM Boards
National Cheng Kung University
?
PDF
Explore Android Internals
National Cheng Kung University
?
PDF
Implement Runtime Environments for HSA using LLVM
National Cheng Kung University
?
PDF
从线上售票看作业系统设计议题
National Cheng Kung University
?
PDF
Virtual Machine Constructions for Dummies
National Cheng Kung University
?
PDF
PyPy's approach to construct domain-specific language runtime
National Cheng Kung University
?
PDF
Priority Inversion on Mars
National Cheng Kung University
?
Making Linux do Hard Real-time
National Cheng Kung University
?
How A Compiler Works: GNU Toolchain
National Cheng Kung University
?
Develop Your Own Operating Systems using Cheap ARM Boards
National Cheng Kung University
?
Explore Android Internals
National Cheng Kung University
?
Implement Runtime Environments for HSA using LLVM
National Cheng Kung University
?
从线上售票看作业系统设计议题
National Cheng Kung University
?
Virtual Machine Constructions for Dummies
National Cheng Kung University
?
PyPy's approach to construct domain-specific language runtime
National Cheng Kung University
?
Priority Inversion on Mars
National Cheng Kung University
?

Similar to Lecture notice about Embedded Operating System Design and Implementation (20)

PPTX
技术写作诀窍
Zvi Eynan
?
PPT
第3章 數位教材開發與設計
s10054610liu
?
PPTX
oa rapid framework課程說明會
Jimmy Weng
?
PDF
教学高手:课件教学设计与开发(学习教练 肖刚)
知行堂(锄虫迟123.肠辞尘)
?
PDF
如何把玩前沿 AI 模型 - 無需架設環境,使用 Hugging Face Spaces 在瀏覽器將最新模型玩過一遍!
jacoblincool
?
PPTX
彰化县数位校园校长科技领导暨规划实务研习计画
Union Mandarin School
?
PDF
20150206 aic machine learning
Meng-Ru (Raymond) Tsai
?
PDF
林子傑 互動科學工作坊@Nctu 20111207
turtleknight
?
PDF
104学年度行动装置程式设计课程说明
Mu Chun Wang
?
PPT
數位學習 2.0
Eric Hsin
?
PDF
学习2.0:e learning2.0与web2.0(学习教练 肖刚)
知行堂(锄虫迟123.肠辞尘)
?
PPTX
2012/05/23 AU Talk - 讓事情發生
appuniverz
?
PDF
贰诲罢别肠丑创新培育理论模式与经验分享-20161023
張大明 Ta-Ming Chang
?
PPT
E-Learning Product Training
Tim Lu
?
PPTX
思翱157講師培訓 xtiveco讓訓練績效看的見20141129
張大明 Ta-Ming Chang
?
PDF
学习革命:E-Learning完全攻略(学习教练 肖刚)
知行堂(锄虫迟123.肠辞尘)
?
PDF
20160525 跨界新識力沙龍論壇 機器學習與跨業應用展望
Meng-Ru (Raymond) Tsai
?
PDF
参与技术:团队共创法工作坊(学习教练肖刚)
知行堂(锄虫迟123.肠辞尘)
?
PDF
快速E learning课件制作精修班
leizia
?
PDF
無責任網站企劃:以全國碩博士論文網為例 by 孫治華
悠识学院
?
技术写作诀窍
Zvi Eynan
?
第3章 數位教材開發與設計
s10054610liu
?
oa rapid framework課程說明會
Jimmy Weng
?
教学高手:课件教学设计与开发(学习教练 肖刚)
知行堂(锄虫迟123.肠辞尘)
?
如何把玩前沿 AI 模型 - 無需架設環境,使用 Hugging Face Spaces 在瀏覽器將最新模型玩過一遍!
jacoblincool
?
彰化县数位校园校长科技领导暨规划实务研习计画
Union Mandarin School
?
20150206 aic machine learning
Meng-Ru (Raymond) Tsai
?
林子傑 互動科學工作坊@Nctu 20111207
turtleknight
?
104学年度行动装置程式设计课程说明
Mu Chun Wang
?
數位學習 2.0
Eric Hsin
?
学习2.0:e learning2.0与web2.0(学习教练 肖刚)
知行堂(锄虫迟123.肠辞尘)
?
2012/05/23 AU Talk - 讓事情發生
appuniverz
?
贰诲罢别肠丑创新培育理论模式与经验分享-20161023
張大明 Ta-Ming Chang
?
E-Learning Product Training
Tim Lu
?
思翱157講師培訓 xtiveco讓訓練績效看的見20141129
張大明 Ta-Ming Chang
?
学习革命:E-Learning完全攻略(学习教练 肖刚)
知行堂(锄虫迟123.肠辞尘)
?
20160525 跨界新識力沙龍論壇 機器學習與跨業應用展望
Meng-Ru (Raymond) Tsai
?
参与技术:团队共创法工作坊(学习教练肖刚)
知行堂(锄虫迟123.肠辞尘)
?
快速E learning课件制作精修班
leizia
?
無責任網站企劃:以全國碩博士論文網為例 by 孫治華
悠识学院
?
Ad

More from National Cheng Kung University (15)

PDF
Making Linux do Hard Real-time
National Cheng Kung University
?
PDF
2016 年春季嵌入式作業系統課程說明
National Cheng Kung University
?
PDF
Interpreter, Compiler, JIT from scratch
National Cheng Kung University
?
PDF
Construct an Efficient and Secure Microkernel for IoT
National Cheng Kung University
?
PDF
The Internals of "Hello World" Program
National Cheng Kung University
?
PDF
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
National Cheng Kung University
?
PDF
Open Source from Legend, Business, to Ecosystem
National Cheng Kung University
?
PDF
Summer Project: Microkernel (2013)
National Cheng Kung University
?
PDF
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
National Cheng Kung University
?
PDF
Faults inside System Software
National Cheng Kung University
?
PDF
Hints for L4 Microkernel
National Cheng Kung University
?
PDF
Shorten Device Boot Time for Automotive IVI and Navigation Systems
National Cheng Kung University
?
PDF
Microkernel Evolution
National Cheng Kung University
?
PDF
Develop Your Own Operating System
National Cheng Kung University
?
PDF
olibc: Another C Library optimized for Embedded Linux
National Cheng Kung University
?
Making Linux do Hard Real-time
National Cheng Kung University
?
2016 年春季嵌入式作業系統課程說明
National Cheng Kung University
?
Interpreter, Compiler, JIT from scratch
National Cheng Kung University
?
Construct an Efficient and Secure Microkernel for IoT
National Cheng Kung University
?
The Internals of "Hello World" Program
National Cheng Kung University
?
F9: A Secure and Efficient Microkernel Built for Deeply Embedded Systems
National Cheng Kung University
?
Open Source from Legend, Business, to Ecosystem
National Cheng Kung University
?
Summer Project: Microkernel (2013)
National Cheng Kung University
?
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
National Cheng Kung University
?
Faults inside System Software
National Cheng Kung University
?
Hints for L4 Microkernel
National Cheng Kung University
?
Shorten Device Boot Time for Automotive IVI and Navigation Systems
National Cheng Kung University
?
Microkernel Evolution
National Cheng Kung University
?
Develop Your Own Operating System
National Cheng Kung University
?
olibc: Another C Library optimized for Embedded Linux
National Cheng Kung University
?
Ad

Lecture notice about Embedded Operating System Design and Implementation