課程內容
一般情況,通常整個Linux系統的功能會有你自己寫的程式(可能也會去連結GPL或LGPL函式庫)並整合一些來自Open Source的程式。雖然Linux已存在很多的Open Source,但不可能永遠運氣這麼好都可以找到100%符合需求或規格的原始碼,所以你必須懂得如何修改成你要的功能。不論自己寫或移植Open Source,這些都是基於Linux核心,所以一定會用到Linux核心的能力,包含裝置I/O請求、多行程、同步處理、行程通訊等。若你的系統需要TCP/IP通訊,還得懂Socket網路程式設計。想自己寫並且能改得動Open Source的程式,其實要具備Linux系統程式設計的能力,你可以透過閱讀"Linux Programming Manual",但是篇幅之廣泛且多元,如果沒有對作業系統有一定的認知,不懂對系統呼叫(System call)所產生Linux背後的運作行為,很難了解真諦。因此若有經驗的人帶你看並且提供範例程式演練,對於學習會相當有幫助。
本數位課程為學習套餐,另外加入了C程式及及資料結構(Data Structures)2門基礎課程,雖是基礎但它卻是資訊學科領域非常重要的核心課程,因為唯有好的程式基礎對於本課程的理解才會事半功倍。
學習目標:
1. 了解Linux system call 及OS作業系統所扮演的功能。
2. Linux 低階I/O輸入輸出
3. Linux 多執行緒與同步控制
4. Linux 行程管理與IPC行程間通訊
5. 了解TCP/IP原理與client server網路架構
6. Socket Programming 網路程式設計
7. 能夠實現Raw Sokcet與UDP Multicast 功能
8. UART Serial 序列程式設計
章節架構
★ 精通C語言
程式語言導論
C程式介紹
運算式
流程控制
函式與巨集
陣列與指標
字串處理
變數範圍
檔案管理
NEW data Type
★ 資料結構
資料結構導論
ADT 抽象資料型別設計方法
Set 集合 ADT設計
Stack堆疊
Queue 佇列
Linked List鏈結串列
Tree樹狀結構
Graph 圖形結構
Search資料搜尋
Sorting資料排序
★ Linux系統程式設計
Low Level I/O Routine
File and Directory Manipulation
General Library Interface
Processes
Signals
POSIX Thread
InterProcess Communication
Shell programming
Linux Serial Programming
Linux Sokcet Programming
TCP/IP 網路簡介(1)
TCP/IP 網路簡介(2)
Wireshark 工具使用
TCP Socket程式與Socket API介紹
Socket多工處理
UDP Socket
Unix Domain Socket
Socket Option & Ioctl