36
2016 年春季嵌入式作業系統課程說明 ( 非成功大學學生亦可參加 ) Jim Huang ( 黃敬群 ) <[email protected]> 台灣國立成功大學資訊工程系 Feb 14, 2016

2016 年春季嵌入式作業系統課程說明

Embed Size (px)

Citation preview

Page 1: 2016 年春季嵌入式作業系統課程說明

2016 年春季嵌入式作業系統課程說明( 非成功大學學生亦可參加 )

Jim Huang ( 黃敬群 ) <[email protected]>台灣國立成功大學資訊工程系

Feb 14, 2016

Page 2: 2016 年春季嵌入式作業系統課程說明

關於授課教師 (@jserv)「我是誰不重要,你每天用的手機和電腦裡面運作著我開發的軟體」

● 成功大學資訊工程系 / 兼任專家

● 交通大學資訊工程系 / 兼任教師

● 從事消費性電子產品開發十餘年 近年投入工業控制領域

− 台達電子 / 顧問

− 工研院資通所 / 顧問

− 聯發科技 / 顧問

− 南星創業加速器 / 技術長

− 晶心科技 / 幕僚工程師

● 多項世界級開放原始碼專案開發者

− Android Open Source Project− GCC / GNU Classpath− LXDE− Linaro− 新酷音輸入法

− Kaffe− pcman(x)

Page 3: 2016 年春季嵌入式作業系統課程說明

哥教的不是知識,是 GUTS !

●GUTS: 與其死板傳授片面的知識,還不如讓學生有能力、有勇氣面對資訊科技產業的種種挑戰− GUTS = General Unix Talk Show− 向 Unix 作業系統學習,同時銜接最新產業發展,全程採用活躍的開放原始碼技術,不用擔心學習的是「屠龍術」

●目標:開拓視野,從做中學習、從做中肯定自己− 我會指出你不足之處,然後給你資源和時間去補強,就像游泳教練一樣

− 但別指望只在課堂看著我游泳 ( 而事後沒練習 ) ,你就可學會!

Page 4: 2016 年春季嵌入式作業系統課程說明

系統軟體的使命:賦予硬體生命

Page 5: 2016 年春季嵌入式作業系統課程說明

「不要花太多時間追逐看起來很實用的專業。世界變化太快,這類專業多半存活幾年就會被取代。你還是要能從本質上了解現象與知識的關聯,才不會被每天冒出來的新詞迷惑。良好的基礎科學訓練仍然是把實務專

業做好的基礎。」

蔡志浩博士

Page 6: 2016 年春季嵌入式作業系統課程說明

回歸本質:良好的基礎科學訓練

曾經全球接近一半的 IC設計公司設立於台灣,供應從類比到數位整合的多樣解決方案,再者,台灣人設計的資訊系統也在工業控制等高品質要求的領域使用,這些值得深入探討,沒必要成為國外廠商的抬轎者– 可惜這十餘年間,在系統軟體發展的短視、與開源世界脫節,導致台灣資訊科技產業的困頓

到大學任教的自我期許:

科技才能改善全人類的資源使用效率,根本上改善生活品質。我該引導學生認識 21世紀的科技水平,從而充分掌握

Page 7: 2016 年春季嵌入式作業系統課程說明

策略:擁抱開源,貢獻開源

OpenStack Foundation董事程輝:

「每天泡在開源發展,每天都跟大牛合作,不牛逼也難」

貿然投入 Linux kernel 一類大型專案開發很難,於是我們提出漸進式開發模式– 全程使用開源技術作為教學工具,培養學生開源素養

–選定規模小但富有特色的項目進行研究和貢獻

–透過在 Linux Foundation 的眾多研討會發表的方式,獲取認同和知名度

Page 8: 2016 年春季嵌入式作業系統課程說明

Robot

CloudIoT

本學期的特色:透過開發專案來培養專業

兼顧理論和實務

做中學 : 體驗產品設計背後的工程考量

寫出「有感」的履歷表 :培養高產值的專業能力

Page 9: 2016 年春季嵌入式作業系統課程說明

主軸 : Robot●高度機電整合專案,涉及項目:

−即時多工作業系統 (RTOS)− 電腦視覺、各式物件追蹤演算法

− 控制系統

− 通訊協定和網路

Source: http://irvs.github.io/ros_tms/

Robot

Cloud

IoT

Page 10: 2016 年春季嵌入式作業系統課程說明

相關技能對應的職缺(keyword: rtos)

●Embedded Linux Software Engineer, MediaTek− Familiar with embedded Linux software development− Familiar with CPU(ARM like) architecture and RTOS− Strong programming skills in C− Knowledge and experience with Linux device driver and kernel

●4G protocol stack software engineer, MediaTek− Experienced in Wireless communication or embedded system development− Related working experience in mobile or wireless software is preferred− Familiar with C language and RTOS

Page 11: 2016 年春季嵌入式作業系統課程說明

主軸 : IoT

●深入 SoC 和作業系統內部設計,− RTOS排程、系統呼叫、效能分析

−ARM/MIPS架構和對應的系統軟體

−無線通訊和網路堆疊

−資訊安全IoT

Robot

Cloud

Page 12: 2016 年春季嵌入式作業系統課程說明

相關技能對應的職缺(keyword: realtime, rtos, linux)

●Bluetooth firmware engineer, MediaTek− Familiar with C language, Computer Architectuer and RTOS− Experienced in embedded system development

●Senior software engineer, MediaTek− Familiar with embedded system or RTOS development experience− Familiar with embedded system performance profiling, debugging and optimization tools− Familiar with multi-thead/multi-core programming

● Staff Software Engineer-Automotive Platform, Qualcomm− Solid background in developing with Open Source mind-set− Experience using software management systems (e.g. git, p4, gerrit) − Good responsibility and Team Spirit

Page 13: 2016 年春季嵌入式作業系統課程說明

主軸 : Cloud●從無到有建構低功耗雲端服務

●涉及:− ARMv8-A− Docker, KVM, Hypervisor− OpenStack, SDNCloud

IoT

Robot

Page 14: 2016 年春季嵌入式作業系統課程說明

相關技能對應的職缺(keyword: arm, linux)

●ARM kernel engineer, Qualcomm− Working experience in using ARM instruction sets and writing optimized assembly

codes.− Expertise in ARM's memory system architecture with hands on knowledge in

debugging the MMU, CACHES, BARRIERS and SYNCHORNISATION issues.− Expertise in debugging aborts and system level issues.− understanding of the ARM's virtualization extensions and working experience in

hypervisor/Linux KVM● Android SW Engineer, MediaTek

− Must have capability to trace large scale C/C++ code quickly− Nice to have Linux Kernel Driver programming experience− Nice to have SoC verification experience

Page 15: 2016 年春季嵌入式作業系統課程說明

歷年課程產出

學生專業能力和視野的提昇– 在2014年,參與課程其中 9位學生獲得聯發科錄取為工程師

– 大學還沒畢業就拿到聘書,還有人生平第一次面試當天被聯發科錄取

– 在2015年,共有兩位學生到國際頂級研討會發表研究成果

– 在 Linux Foundation舉辦的全球嵌入式 Linux研討會發表專題演說,全台灣第一位和第二位都是本課程的參與者

共筆大量ARM優質技術文件,獲得高度能見度

累積超過55個完整專案並釋出原始碼

學生在COSCUP(台灣最大的開放原始碼研討會,上千人 )和SITCON(學生計算機年會 )發表專題演說和成果

Page 16: 2016 年春季嵌入式作業系統課程說明

從無到有打造四軸飛行器

http://wiki.csie.ncku.edu.tw/embedded/team2014-10

Page 17: 2016 年春季嵌入式作業系統課程說明

http://wiki.csie.ncku.edu.tw/embedded/team2014-3

Demo video:https://www.youtube.com/watch?v=hmJVLKOy7DA

Page 18: 2016 年春季嵌入式作業系統課程說明

自製電吉他效果器並

體驗 ARM 效能改善

http://wiki.csie.ncku.edu.tw/embedded/team2014-2

Page 19: 2016 年春季嵌入式作業系統課程說明

親手打造自動彈奏吉他機器

http://wiki.csie.ncku.edu.tw/embedded/team2013-8

Demo video:http://www.youtube.com/watch?v=tk7hJ3-j62Q

Page 20: 2016 年春季嵌入式作業系統課程說明

開發自動寫書法機器人

http://wiki.csie.ncku.edu.tw/embedded/team2013-11

機器人書寫的成果Demo video:https://www.facebook.com/photo.php?v=613934675322288

Page 21: 2016 年春季嵌入式作業系統課程說明

人在做, Google 在看!人在做, Google 在看!

學生成果在 Google搜尋名列前茅

Page 22: 2016 年春季嵌入式作業系統課程說明

台灣資訊科技產業裡頭資深工程師罕見的經歷:在 Linux Foundation舉辦的研討會演說!(廖健富同學 )

Page 23: 2016 年春季嵌入式作業系統課程說明

2015 年學生的開放原始碼成果

開放原始碼貢獻: – QEMU (系統模擬器 ), u-boot (作業系統載入器 ), RT-Thread (即時多工作業系統 ), Xvisor (虛擬化執行環境 ), re2 (正規表示式處理引擎 ), uVisor (提昇物聯網安全性 )

–真的是「Google在看」 (re2是Google維護的開放原始碼專案 ) 在即時Linux領域最頂級的研討會RTLWS發表研究成果

FreeRTOS的ARMv7-A MMU支援 rtenv+:100%學生自製的即時多工作業系統

Linux/ARM效能分析

Xenomai 3效能分析和原理探討

Xvisor + ARMv8

Page 24: 2016 年春季嵌入式作業系統課程說明

輕量級虛擬化解決方案

● 充分在 ARMv8 Foundation Model模擬和驗證

● 翻譯設計文件和報告

● 貢獻自動測試機制

Page 25: 2016 年春季嵌入式作業系統課程說明

學生開發GPGPU核心,獲得NVIDIA邀請到 2015年台灣GPU技術研討會發表開發成果

Page 26: 2016 年春季嵌入式作業系統課程說明

詹博丞是成功大學資訊工程所博士班學生,他曾就讀於音樂資優班,但國中三年級時發生車禍,導致罹患點狀軟骨錯生症,因此不良於行,而且產生聽力、視力障礙。但他不放棄學習程式設計,並毅然地在兩年前參與新酷音輸入法的開發,並主導數位點字樂譜的設計,希望可以幫助視障朋友閱讀樂譜。由於視力有障礙,加上盲人點字 閱讀機的限制,他撰寫程式時,是將所有程式碼背在腦海中進行開發、除錯,也由於聽力障礙,和他說話必須靠在耳邊。在演講中他提到,開發的過程中遇到最大的 困難是交接程式碼,因為交接時必須閱讀(以點字方式)其他人的程式碼,最重要是放下成見,用別人的角度去思考。

http://www.appledaily.com.tw/realtimenews/article/new/20140722/437865/1/

人家眼睛看不到、耳朵聽不清楚,都可以學好嵌入式系統,而你好手好腳視力尚可,在擔心什麼?

Page 27: 2016 年春季嵌入式作業系統課程說明

雖然我不會教書,但我可以陪同學連續奮戰 20小時以上雖然我不會教書,但我可以陪同學連續奮戰 20小時以上

Page 28: 2016 年春季嵌入式作業系統課程說明

一起看日出也行,我可是正宗的竹科工程師啊 ( 茶 )一起看日出也行,我可是正宗的竹科工程師啊 ( 茶 )

Page 29: 2016 年春季嵌入式作業系統課程說明

我心動了,但沒基礎怎麼辦?

只要你願意花時間,就算沒修過作業系統或計算機組織與結構一類的科目也沒關係,課堂中會有重點提示

只要資訊系、電機系、工程科學系、機械系、航太系或相關科系的大二以上 (含 ) ,學過 C語言即可– 2014 年還有物理系和經濟系的學生修課,依舊表現不俗,所以千萬別擔心

– 不懂就 ( 重新 ) 學,不要裝懂,千萬別說謊

Page 30: 2016 年春季嵌入式作業系統課程說明

適用對象與假設

對於資訊領域有熱情、並有堅持到底的學習精神

樂於助人 , 願意分享所學知識– 在打群架的年代 , 隔壁的同學就是夥伴 !

願意花時間寫作業

自主學習課程所需的前備知識以及課程參考資料

願意花時間教會身邊的同學

Page 31: 2016 年春季嵌入式作業系統課程說明

不建議選修的學生族群

覺得自己無論怎麼努力,仍比隨便一位台大資工系畢業生還差的人

覺得光靠著拿著成功大學的畢業證書,就能在資訊科技產業有尊嚴地享有優渥生活者

覺得每週看著游泳教練或鋼琴教師,但自己不動手,卻又妄想能學到什麼技能的人

Page 32: 2016 年春季嵌入式作業系統課程說明

時間地點

Feb 23, 2016 – Jun 21, 2016 每週二

– 15:10-18:00 ( 課程 )– 19:30-21:00 ( 補充 /解惑 )

成功大學資訊工程系新系館 65203 教室

Page 33: 2016 年春季嵌入式作業系統課程說明

評分方式

考試 : 20% (期初「資格考」 +模擬面試 )– 第二週有總分 250分的考試,範圍涵蓋本課程相關的基礎科目

作業 + 專題 : 40% (針對資訊產業需技能,所濃縮的訓練 )

學生自我評量 : 40% 加分 :

– 課堂問答:最多加到總分 20分– 開放原始碼貢獻:一旦認可,最多加到總分 40分

Page 34: 2016 年春季嵌入式作業系統課程說明

注意須知

不點名

課程進行大量用到網路和客製化開發環境,建議攜帶筆記型電腦

考試採筆試和一對一口試,可重複應考 (考到滿意為止 ) 歡迎旁聽,但請一同參與實習與進行作業繳交

每週都有實習課 /作業– 在隔週六 (含 )之前需完成作業

– 如果連續二份作業寫不完的話,就不用來了 (視同作業項目零分 ) 修課同學可獲得開發板與相關硬體之補助

Page 35: 2016 年春季嵌入式作業系統課程說明

課程進行方式

前 4周會強化學生基本能力的訓練,請確保自己能夠每週投入 12小時

從第 5週開始,會依據不同的主軸進行課程分工,請留意課程公告

每個月都有線上講座直播,歡迎校外朋友多利用

因為每位學生吸收狀況不同,每兩週會有學習狀況回報機制,請依據公告配合實施

Page 36: 2016 年春季嵌入式作業系統課程說明

課程資料

不需要購買教科書 , 所有課程資料都放在網路上– 作業或考試表現優異的同學 , 可獲贈參考書籍

wiki: http://wiki.csie.ncku.edu.tw/– 請先參閱「進階嵌入式系統開發與實作 (2015 Fall) 」和

「嵌入式作業系統設計與實作 (Spring 2015) 」● 討論區 : https://www.facebook.com/groups/system.software2016/