GCC & Linker
理解 GCC 常用參數、startup files、shared library 與 linker script,建立編譯與連結的基本觀念。
從 GCC、Linker、GDB、Makefile、ELF 與 GNU Binutils,到 Linux 系統程式設計、多執行緒與 Embedded IoT,建立 Linux 開發工具與系統程式設計的完整基礎。
Embedded Linux Programming 建立 Linux 系統程式設計觀念。這些觀念是 Linux 應用程式與驅動程式的基礎。Linux Threading 同時建立 Concurrency 與驅動程式設計能力。
GNU Toolchains 是 Linux 的主要開發工具。課程將 Linux 系統程式觀念融入工具操作,並以連貫範例建立完整學習主線。
GNU Toolchains 是 Linux 的主要開發工具,這是學習 Linux 的基本主題。本訓練課程整理並精選主要的 Linux 系統程式入門主題,幫助初學者有效學習 Linux 開發工具與系統程式設計。
訓練學員使用 GNU 開發工具,並在工具的操作過程中講解重要的 Linux 系統程式觀念,將觀念融入工具的操作過程,並透過工具的操作驗證觀念。
本課程從 GNU Toolchains 切入。內容涵蓋 GCC、GDB、Makefile、編譯、連結、載入、除錯、系統呼叫、程序同步與多執行緒。
程式設計部分以 Web Server 作為連貫範例。課程依序解析 Process、Signal、IPC、Socket 與 POSIX threads。
理解 GCC 常用參數、startup files、shared library 與 linker script,建立編譯與連結的基本觀念。
透過 GDB、symbol table 與除錯環境建立,理解 Linux 程式在執行階段的分析方法。
從 GNU Binutils、ELF、loader 與 linker 切入,理解可執行檔與 shared library 的運作方式。
整理 system calls、process、signal、IPC、mmap、shared memory 與 socket 等 Linux 系統程式設計核心主題。
以 POSIX threads、producer-consumer、semaphore 與 Embedded IoT 實習,銜接多執行緒與嵌入式應用。
在工具的操作過程中講解重要的 Linux 系統程式觀念,將觀念融入工具的操作過程,並透過工具的操作驗證觀念。
課程以 GCC、Makefile 與 GDB 串接完整流程。學員將理解程式從 source code 到 executable,再進入除錯、執行、同步與通訊。
本課也特別適合作為 Linux Device Driver 與 Embedded Linux 後續學習的基礎。這門課是寫好 Linux 應用程式,並學好 Linux 驅動程式的基礎。
本課自 2009 年開班,長期作為 Linux 系統程式與 Embedded Linux 的入門核心。2015 年 01 月 27 日完成第四版課程,加入 GNU Toolchains for Embedded IoT 與 IoT 程式實習。
課程開始開班,建立 GNU Toolchains 與 Linux 系統程式設計的基礎教學主線。
版本變更紀錄顯示 2010 年 03 月、06 月與 07 月進行 agenda refined 與第三版初始版本整理。
完成第四版課程,加入 GNU Toolchains for Embedded IoT 與 IoT 程式實習。
累計已推出至仕橙版第 19 期,課程歷經多年公開課與企業內訓累積。
標準版維持 12 小時、2 天,企業版則依團隊背景調整主題比例。
企業內訓可依團隊背景,調整工具、系統程式與 Embedded IoT 的授課比例。
Jollen 在 Embedded Linux 與 Linux Device Driver 有超過 20 年的研發與企業內訓經驗,在 Android Framework 軟體架構方面,也有 15 年的授課經驗,並長期在科技業擔任 Linux & Android 技術顧問。
Jollen 多次於 Linux 基金會 Open Source Summit 發表演說。他也在歐洲與加拿大發表區塊鏈與去中心化 IoT 架構論文,並獲 ACM SIGBED Review 刊登。2016 年,Jollen 創辦 Flowchain 基金會,開發原創區塊鏈作業系統技術並取得多項國際專利。
這門課由長期從事 Embedded Linux、Linux 工具鏈、系統程式設計與驅動程式教學的講師主講。工具、觀念與實作形成完整學習主線。
若您的團隊正在建立 Linux 開發工具鏈、補強系統程式設計基礎,或作為 Linux Device Driver 與 Embedded IoT 研發的前置訓練,本課程將提供一套較完整的工具觀、系統觀與分析方法。