Enterprise Training

GNU Toolchains & Embedded Linux Programming

SP000|第 4 版|企業內訓課程

從 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 開發工具與系統程式設計。
— Moko365 Team
Course Overview

GNU Toolchains 是 Linux 開發的第一堂課

訓練學員使用 GNU 開發工具,並在工具的操作過程中講解重要的 Linux 系統程式觀念,將觀念融入工具的操作過程,並透過工具的操作驗證觀念。

本課程從 GNU Toolchains 切入。內容涵蓋 GCC、GDB、Makefile、編譯、連結、載入、除錯、系統呼叫、程序同步與多執行緒。

程式設計部分以 Web Server 作為連貫範例。課程依序解析 Process、Signal、IPC、Socket 與 POSIX threads。

Five Pillars

學習 Embedded Linux Programming,要先建立這五大主軸

GCC & Linker

理解 GCC 常用參數、startup files、shared library 與 linker script,建立編譯與連結的基本觀念。

Debugging

透過 GDB、symbol table 與除錯環境建立,理解 Linux 程式在執行階段的分析方法。

ELF & Loader

從 GNU Binutils、ELF、loader 與 linker 切入,理解可執行檔與 shared library 的運作方式。

System Programming

整理 system calls、process、signal、IPC、mmap、shared memory 與 socket 等 Linux 系統程式設計核心主題。

Threading & IoT

以 POSIX threads、producer-consumer、semaphore 與 Embedded IoT 實習,銜接多執行緒與嵌入式應用。

Methodology

將系統觀念融入工具操作

在工具的操作過程中講解重要的 Linux 系統程式觀念,將觀念融入工具的操作過程,並透過工具的操作驗證觀念。

課程以 GCC、Makefile 與 GDB 串接完整流程。學員將理解程式從 source code 到 executable,再進入除錯、執行、同步與通訊。

本課也特別適合作為 Linux Device Driver 與 Embedded Linux 後續學習的基礎。這門課是寫好 Linux 應用程式,並學好 Linux 驅動程式的基礎。

Course Legacy

課程歷史

本課自 2009 年開班,長期作為 Linux 系統程式與 Embedded Linux 的入門核心。2015 年 01 月 27 日完成第四版課程,加入 GNU Toolchains for Embedded IoT 與 IoT 程式實習。

里程碑

2009 年

課程開始開班,建立 GNU Toolchains 與 Linux 系統程式設計的基礎教學主線。

2010 年

版本變更紀錄顯示 2010 年 03 月、06 月與 07 月進行 agenda refined 與第三版初始版本整理。

2015 年

完成第四版課程,加入 GNU Toolchains for Embedded IoT 與 IoT 程式實習。

2018 年

累計已推出至仕橙版第 19 期,課程歷經多年公開課與企業內訓累積。

開課與版本記錄(部份摘錄)

  • 仕橙版第 11 期(暨 Jollen’s Consulting 第 18 期)已於 2018 年 01 月 07 日結訓(台北)。
  • 仕橙版第 10 期(暨 Jollen’s Consulting 第 17 期)已於 2017 年 05 月 07 日結訓(台北)。
  • 仕橙版第 09 期(暨 Jollen’s Consulting 第 16 期)已於 2016 年 06 月 05 日結訓(台北)。
  • 仕橙版第 08 期(暨 Jollen’s Consulting 第 15 期)已於 2015 年 09 月 20 日結訓(台北)。
  • 仕橙版第 07 期(暨 Jollen’s Consulting 第 14 期)已於 2015 年 02 月 08 日結訓(台北)。
  • Ver 3.0(2010 年 07 月 05 日):3rd-Initial version.
  • Ver 1.1(2010 年 06 月 15 日):Agenda refined.
  • Ver 1.0(2010 年 03 月 24 日):Initial version.

完整課程歷史紀錄,請參閱舊版課程簡章

Who Should Attend

適合對象

  • Embedded Linux 初學者與進階開發者
  • 需要建立 GNU 開發工具基礎的 Linux 工程師
  • 想補齊 Linux 系統程式設計觀念的應用程式開發者
  • 後續要學 Linux Device Driver 的工程師
  • 企業內部需要建立一致 Linux 開發工具鏈觀念的團隊
Prerequisites

先備知識

  • 基本的 Linux 終端機環境操作
  • C 語言
  • 若具備 Linux 開發或嵌入式開發經驗,學習效果更佳
Course Outline

課綱總覽

標準版維持 12 小時、2 天,企業版則依團隊背景調整主題比例。

2 天標準版

第 1 天
  • 第 01 堂課:GCC & Linker
  • 第 02 堂課:GNU Debugger
  • 第 03 堂課:Makefile, Makefile Rules
  • 第 04 堂課:GNU Binutils, ELF, loader/linker
第 2 天
  • 第 05 堂課:系統程式觀念
  • 第 06 堂課:系統程式設計
  • 第 07 堂課:多執行緒設計
  • 第 08 堂課:GNU Toolchains for Embedded IoT

客製企業版

工具導向版
  • 強化 GCC、Linker、GDB、Makefile、ELF 與 loader/linker
  • 適合新進 Linux 團隊與 build / debug 能力補強
系統程式導向版
  • 強化 Process、Signal、IPC、mmap、Socket 與 POSIX threads
  • 適合作為 Linux Application 與 Driver 進修前的基礎班
Embedded IoT 導向版
  • 強化 Threading、Interrupt handling、Timer、Sensor Fusion 與 Lightweight Web Server
  • 適合 IoT 與嵌入式應用團隊

企業內訓可依團隊背景,調整工具、系統程式與 Embedded IoT 的授課比例。

Jollen Chen
Jollen
Moko365 講師暨技術總監
Instructor

長期投入 Embedded Linux、Linux Device Driver 與 Android 架構教學

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 工具鏈、系統程式設計與驅動程式教學的講師主講。工具、觀念與實作形成完整學習主線。

Enterprise Inquiry

GNU Toolchains,是學習 Linux 的基本主題

若您的團隊正在建立 Linux 開發工具鏈、補強系統程式設計基礎,或作為 Linux Device Driver 與 Embedded IoT 研發的前置訓練,本課程將提供一套較完整的工具觀、系統觀與分析方法。

聯絡方式建議
  • 索取企業內訓簡章
  • 安排課前需求訪談
  • 確認工具導向或系統程式導向版本
  • 依團隊背景調整 Embedded IoT 實作比例