系統程式
-
課程好評 (0則)
-
Youtube
-
了解Unix的高階程式,像FreeBSD、MacOS、Solaris...,這些雖然不是作業系統理論的介紹,但卻是操作設計課程必備的實際基礎知識。 本課程主要介紹組譯器、編譯器、連結器及作業系統的基本原理 ,並利用Linux學習編譯器程式的發展工具,進而能撰寫簡單的編譯器程式。
[課程目標]- 學習者將對目前最廣泛使用的四種作業系統 (Linux, Solaris, FreeBSD,MacOS)中系統程式有深層認識,且以Linux作為實習之主要作業系統。
- 學習者將具備系統程式效能分析與優化的能力。
- 學習者將可對行程 (process) 以及執行緒 (threads) 進行有效控制與溝通。
- 學習者將可在不同的應用領域中有效運用系統程式的各種功能
[授課教師]
熊博安- 現職:國立中正大學資訊工程學系教授
- 學歷:國立台灣大學電機工程博士、國立台灣大學數學學士
- 經歷:
熊博安老師具有十餘年數位學習經驗,包含指導數位學習專班碩士論文二十餘篇、開設數門數位學習課程、創立並主持國立中正大學雲端計算與物聯網數位學習碩士在職專班。熊老師已經於數位學習領域耕耘多年,成果豐碩。熊老師研究領域,目前主要著重於網宇實體系統設計,其中之應用包含智慧交通、智慧電網、土石流預警和疲勞駕駛偵測等。熊老師曾執行教育部科技磨課師計畫,並成功完成相關課程。
[適用對象]
對本課程有興趣的學習者。
[先備知識]
具有基礎C程式語言撰寫能力者。 -
- 第一週:Linux安裝與操作、編譯環境介紹
- 第二週:程式碼追蹤工具、檔案輸入與輸出
- 第三週:標準輸出入函式庫、檔案及目錄
- 第四週:操作目錄及檔案屬性、行程 (Process)
- 第五週:程序控制、pipe和fifo
- 第六週:號誌、非同步I/O
-
-
1.1-Linux安裝與操作:Linux的發行版本
-
1.2-Linux安裝與操作:使用虛擬機器安裝作業系統
-
1.3-Linux安裝與操作:安裝Ubuntu
-
1.4-Linux安裝與操作:更新Ubuntu及學習指令
-
2.1-編譯環境介紹:最常用的文書編輯器vi及vim
-
2.2-編譯環境介紹:使用vim的「快捷鍵」
-
2.3-編譯環境介紹:使用圖形化編輯器
-
2.4-編譯環境介紹:gcc 與 gdb
-
2.5-編譯環境介紹:make:簡化常用的編譯指令
-
2.6-編譯環境介紹:GNU C內建效能工具gprofile
-
3.1-程式碼追蹤工具:使用strace
-
3.2-程式碼追蹤工具:分析malloc的動作
-
3.3-程式碼追蹤工具:使用strace分析Dropbox
-
3.4-程式碼追蹤工具:使用ltrace
-
4.1-檔案輸出與輸入:檔案在Linux內是什麼樣子
-
4.2.1-檔案輸出與輸入:用一個例子開始:mycp
-
4.2.2-檔案輸出與輸入:用一個例子開始:mycp
-
4.3-檔案輸出與輸入:lseek & file holes
-
4.4-檔案輸出與輸入:協調式鎖定檔案flock
-
4.5-檔案輸出與輸入:確保寫入sync & fsync & fdatasync
-
5.1-標準輸出入函數庫:開啟檔案
-
5.2-標準輸出入函數庫:檔案的位置
-
5.3-標準輸出入函數庫:Buffer的用途
-
5.4-標準輸出入函數庫:讀寫檔案
-
5.5-標準輸出入函數庫:寬字串的問題
-
5.6-標準輸出入函數庫:暫存檔
-
6.1-檔案與目錄:認識檔案的基本屬性
-
6.2-檔案與目錄:檔案的特殊屬性
-
6.3-檔案與目錄:硬連結與軟連結
-
7.1-操作目錄及檔案屬性:操作目錄及檔案屬性
-
7.2-操作目錄及檔案屬性:條列目錄裡所有的物件
-
7.3-操作目錄及檔案屬性:利用stat讀取檔案屬性
-
7.4-操作目錄及檔案屬性:檔案的操作
-
7.5-操作目錄及檔案屬性:設定檔案的擴充權限
-
7.6-操作目錄及檔案屬性:監聽資料匣內的變動
-
8.1-行程(process):簡介
-
8.2-行程(process):程式的執行環境 (環境變數)
-
8.3-行程(process):程式碼的結束呼叫
-
8.4-行程(process):控制行程的優先權及多核心排程
-
9.1-程序控制:程序
-
9.2-程序控制:產生新的程序:fork
-
9.3-程序控制:等待子程序狀態轉換:wait
-
9.4-程序控制:將新的程式載入程序中:exec
-
10.1-pipe & fifo:pipe的簡單用法
-
10.2-pipe & fifo:用pipe作為父行程與子行程的通訊
-
10.3-pipe & fifo:利用pipe作為子行程間的通訊
-
10.4-pipe & fifo:FIFO named pipe
-
11.1-號誌(signal):什麼是signal
-
11.2-號誌(signal):建立signal的最簡單方法
-
11.3-號誌(signal):當system call遇上signal
-
11.4-號誌(signal):可同時多人呼叫的函數
-
11.5-號誌(signal):送出一個signal
-
11.6-號誌(signal):功能強大的『sigaction』
-
11.7-號誌(signal):其他
-
12.1-非同步I/O:IO的特性
-
12.2-非同步I/O:四種IO的類型
-
12.3-非同步I/O:非同步IO相關函數
-
12.4-非同步I/O:非同步IO程式範例
-
1.1-Linux安裝與操作:Linux的發行版本