Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
課程簡介
簡介
- 目標
- 你是誰
- Linux基金會
- Linux基金會培訓
- 認證項目與數字徽章
- Linux發行版
- 平臺
- 準備你的系統
- 使用和下載虛擬機
- Linux中的變化
預備知識
- 流程
- 標準與LSB
如何參與開源項目 **
- 如何正確貢獻的概述
- 爲安全與質量保持與主線的緊密聯繫
- 研究並理解項目的DNA
- 找出你想解決的問題
- 識別維護者及其工作流程與方法
- 儘早獲取反饋並公開工作
- 增量貢獻,而不是大量代碼提交
- 放下自我:不要過於敏感
- 保持耐心,建立長期關係,樂於助人
編譯器
- GCC
- 其他編譯器
- 主要gcc選項
- 預處理器
- 集成開發環境(IDE)
- 實驗
庫
- 靜態庫
- 共享庫
- 鏈接庫
- 動態鏈接加載器
- 實驗
Make
- 使用make和Makefiles
- 構建大型項目
- 更復雜的規則
- 內置規則
- 實驗
源代碼控制
- 源代碼控制
- RCS和CVS
- Subversion
- git
- 實驗
調試與核心轉儲
- gdb
- 什麼是核心轉儲文件?
- 生成核心轉儲
- 檢查覈心轉儲
- 實驗
調試工具
- 獲取時間
- 性能分析
- valgrind
- 實驗
系統調用
- 系統調用與庫函數
- 如何進行系統調用
- 返回值與錯誤碼
- 實驗
內存管理與分配
- 內存管理
- 動態分配
- 調整malloc()
- 鎖定頁面
- 實驗
Linux中的文件與文件系統 **
- 文件、目錄與設備
- 虛擬文件系統
- ext2/ext3文件系統
- 日誌文件系統
- ext4文件系統
- 實驗
文件I/O
- UNIX文件I/O
- 打開與關閉
- 讀取、寫入與定位
- 位置與向量I/O
- 標準I/O庫
- 大文件支持(LFS)
- 實驗
高級文件操作
- Stat函數
- 目錄函數
- inotify
- 內存映射
- flock()與fcntl()
- 創建臨時文件
- 其他系統調用
- 實驗
進程 I
- 什麼是進程?
- 進程限制
- 進程組
- proc文件系統
- 進程間通信方法
- 實驗
進程 II
- 使用system()創建進程
- 使用fork()創建進程
- 使用exec()創建進程
- 使用clone()
- 退出
- 構造函數與析構函數
- 等待
- 守護進程
- 實驗
管道與FIFO
- 管道與進程間通信
- popen()與pclose()
- pipe()
- 命名管道(FIFO)
- splice(), vmsplice()與tee()
- 實驗
異步I/O**
- 什麼是異步I/O?
- POSIX異步I/O API
- Linux實現
- 實驗
信號 I
- 什麼是信號?
- 可用信號
- 信號分發
- 鬧鐘、暫停與睡眠
- 設置信號處理程序
- 信號集
- sigaction()
- 實驗
信號 II
- 可重入性與信號處理程序
- 跳轉與非本地返回
- siginfo與sigqueue()
- 即時信號
- 實驗
POSIX線程 I
- Linux下的多線程
- 基本程序結構
- 創建與銷燬線程
- 信號與線程
- fork與線程
- 實驗
POSIX線程 II
- 死鎖與競爭條件
- 互斥操作
- 信號量
- Futexes
- 條件操作
- 實驗
網絡與套接字
- 網絡層
- 什麼是套接字?
- 流套接字
- 數據報套接字
- 原始套接字
- 字節序
- 實驗
套接字地址與主機
- 套接字地址結構
- 轉換IP地址
- 主機信息
- 實驗
套接字端口與協議
- 服務端口信息
- 協議信息
- 實驗
套接字客戶端
- 基本客戶端流程
- socket()
- connect()
- close()與shutdown()
- UNIX客戶端
- 互聯網客戶端
- 實驗
套接字服務器
- 基本服務器流程
- bind()
- listen()
- accept()
- UNIX服務器
- 互聯網服務器
- 實驗
套接字輸入/輸出操作
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- 實驗
套接字選項
- 獲取與設置套接字選項
- fcntl()
- ioctl()
- getsockopt()與setsockopt()
- 實驗
Netlink套接字**
- 什麼是netlink套接字?
- 打開netlink套接字
- netlink消息
- 實驗
套接字多路複用與併發服務器
- 多路複用與異步套接字I/O
- select()
- poll()
- pselect()與ppoll()
- epoll
- 信號驅動與異步I/O
- 併發服務器
- 實驗
進程間通信
- IPC方法
- POSIX IPC
- System V IPC**
- 實驗
共享內存
- 什麼是共享內存?
- POSIX共享內存
- System V共享內存**
- 實驗
信號量
- 什麼是信號量?
- POSIX信號量
- System V信號量**
- 實驗
消息隊列
- 什麼是消息隊列?
- POSIX消息隊列
- System V消息隊列**
- 實驗
最低要求
本課程適用於有經驗的開發人員。學生應精通 C 程式設計,並熟悉基本的 Linux 實用程式和文本編輯器。
觀眾
本課程適用於有經驗的開發人員。學生應精通 C 程式設計,並熟悉基本的 Linux 實用程式和文本編輯器。
經驗水準: 中級
28 時間: