Course Code: I-018
GNU Toolchains 是相當重要的開發工具,這是最基本的入門主題。本課程整理並精選主要的 Linux 系統程式入門主題,訓練初學者有效學習 Linux 開發工具與系統程式設計。
仕橙將以訓練學員使用 GNU 開發工具為主,並在工具的操作過程中講解重要的 Linux 系統程式觀念,將觀念融入工具的操作過程,並透過工具的操作驗證觀念。
本課程亦提供公開課程服務,詳細的資訊,請參考:課程簡章
1.GCC& Linker
- gcc 常用與重要參數
- gcc-lib 說明
- startup files (crt?.o)
- shared library 參數
- 常用的 GNU C extensions
- glibc and shared library
- linker script 撰寫
2. GNU Debugger
- gdb 常用指令
- Symbol table
- 除錯環境建立
3.Makefile, Makefile Rules
- Makefile 觀念與應用
- Makefile rule 撰寫
4.GNU Bintuils, ELF, loader/linker
- ar
- nm
- strip
- ldd
- objdump
- Symbol table
- Executable and Linking Format (ELF)
- ELF loader
5.系統程式觀念
- System calls
- Process and fork: parent and child
- Process and signal
- Blocking function
6.系統程式設計
- IPC (行程間通訊)
- 程序同步 (process synchronization) 觀念
- mmap (mapped memory) 實作
- mmap: memory model 說明
- Shared memory 實作
- Shared memory: memory model 說明
- Socket (network programming)
7.多執行緒設計
- 多執行緒設計 (multi-threaded): POSIX threads
- 消費與生產 (producer-consumer) 觀念
- Semaphore
