inflearn logo
知識共有
inflearn logo
Challenge
募集予定

【企業向けチャレンジ】デバッグを通じて学ぶArmアーキテクチャ(Armv8-A)核心完全攻略

デバッグを通じてArmv8-Aアーキテクチャの核心機能を100%理解し、システムソフトウェア開発の基盤を固めます。この講義を通じて、すぐに実務を開始することができます。

debugging
linux-kernel
armv8
trace32
B2B Only Challenge

31개 수업 학습

지식공유자와 멘토링 혜택!

무제한 복습, 내 것으로 만들어요.

austinkim님과 함께해요!

キャリア認証

6,575

受講生

265

受講レビュー

102

回答

4.9

講座評価

23

講座

グローバル著者 & リナックスシステムソフトウェア開発者 (Arm, RISC-V アーキテクチャ)

国内のシステムソフトウェア分野において前例のない!「Armアーキテクチャ(Armv8-A, Armv7-A)」と「Linuxカーネル」の本を執筆した著者(2冊とも大韓民国学術院の優秀図書に選定であり、国内初めて海外出版社(Packt)を通じて「Reverse Engineering Armv8-A Systems」の本(英語)を執筆したグローバル著者です。何よりも最新のシステムソフトウェアトレンド(電気自動車、システム半導体-システムソフトウェア)を最も熟知している現役の開発者です。また、システムソフトウェア分野で最も活発に知識の普及活動を行っている教育者でもあります。"Reverse Engineering Armv8-A Systems" (bằng tiếng Anh) thông qua nhà xuất bản nước ngoài (Packt). Trên hết, ông là một nhà phát triển đang làm việc thực tế, người nắm rõ nhất các xu hướng phần mềm hệ thống mới nhất (xe điện, bán dẫn hệ thống - phần mềm hệ thống). Ngoài ra, ông còn là một nhà giáo dục hoạt động tích cực nhất trong việc truyền bá kiến thức trong lĩnh vực phần mềm hệ thống.

  • Professional 知識共有者およびコンサルタント

  • LG電子 Linuxカーネルオープンソースチーム勤務(〜2026年5月)

  • 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' 著書(英語) 著者、(Packt 出版社)

  • 『システムソフトウェア開発のためのArmアーキテクチャの構造と原理』2024年、大韓民国学術院 優秀図書賞)著者))

  • 『デバッグを通じて学ぶLinuxカーネルの構造と原理』 (2021年、大韓民国学術院 優秀学術図書賞) 著者)

  • 'Programmers Dev Course: リナックスシステムおよびカーネル専門家' メイン講師

     

 

韓国国内で誰よりもリヌックスカーネルとArmアーキテクチャ(Armv8-A, Armv7-A)を分かりやすく説明できる教育者であると、自信を持って申し上げます。

講義に関するお問い合わせ : austindh.kim@gmail.com

 

主なロードマップ 🎯

'システムソフトウェア開発者のための Arm - basic course'

'システムソフトウェア開発者のためのArm - advanced course'

システムソフトウェア開発者のための Linux kernel - basic course

 

もっと見る

講師紹介

こんにちは。システムソフトウェアと組み込みLinuxの実務をデバッグの観点から解き明かすエンジニアであり、知識共有者のキム・ドンヒョン(Austin Kim)です。

私は15年以上にわたり、ArmやRISC-VシステムでLinuxカーネルや様々なデバイスドライバを開発し、起動の失敗やカーネルクラッシュ(Exception、ウォッチドッグリセット)といった問題を現場で直接分析してきたシステムソフトウェアエンジニアです。様々な活動を通じて、有益な知識を開発者の方々に共有する活動を継続的に行ってきました。

今回の講義では、複雑に感じられるArmv8-Aアーキテクチャの機能の中から、実務で必ず必要となる内容を厳選してお伝えします。Armアーキテクチャを実践的なデバッグ実習を通じて、自ら理解できるように進めていきます。

著書および出講歴

  • システムソフトウェア開発のためのArmアーキテクチャの構造と原理 — 大韓民国学術院 優秀図書賞(2024年)

  • デバッグを通じて学ぶLinuxカーネルの構造と原理 — 大韓民国学術院 優秀図書賞(2021年)

  • Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis (Packt Publishing, 2025) — グローバル出版社 英語書籍

  • テレチップス(Telechips)対象 Armv8-A クラッシュデバッグ(招待セミナー):2025年1月

  • プログラマーズ・デブコース:Linuxシステムおよびカーネル専門家コース メイン講師(2023〜2024年)(1〜2期)

カンファレンス発表履歴

講師略歴

  • 現) LG電子オープンソースチーム勤務

  • 開発ドメイン:Automotive(電気自動車)、スマートフォン、Chipset BSP


【代表カリキュラム】デバッグで学ぶArmv8-Aアーキテクチャの構造

講義の目標

Armv8-Aアーキテクチャのコア機能を100%理解し、これを基盤に実務を開始することが本講義の目標です:

  • 実際の現場で使用されるArmv8-Aアーキテクチャの核心機能を、実行フローに基づいて理解する。

  • TRACE32デバッガを活用し、アセンブリ命令単位でコードを追跡・分析することができる。

  • Exception / Interrupt発生時の実行フローを明確に理解し、動作原理を説明できる。

  • レジスタ・アセンブリの観点からLinuxカーネルの動作を分析できる。

  • ブリングアップ時の問題やカーネルクラッシュの発生時、原因を追跡するための一次分析を行うことができる。

受講対象

次のようなリナックスシステムソフトウェア開発者(新卒およびジュニア開発者)です:

  • Armv8-AベースのシステムでLinuxドライバを開発するエンジニア

  • カーネルクラッシュ、ブート問題、Fault問題を分析し解決しなければならない開発者

  • ファームウェア–カーネル–ドライバ間の流れを理解する必要があるシステムエンジニア

  • Armv8-Aアーキテクチャを理論ではなく実行の観点から理解したい実務開発者

講義の主な差別化ポイント

  • TRACE32を活用して、現場で必ず使われるArmv8-Aアーキテクチャの主要機能(アセンブリ命令、エクセプション)を実習形式で進めます。

  • Armベースのチップセットのブートシーケンスと、実際のプロジェクトで発生するケーススタディを紹介します。

  • 実際のメモリダンプとカーネルログをデバッグしながら、Armv8-Aアーキテクチャを実習(エクセプション)します。

講義カリキュラム

(1日目)

TRACE32実習環境(シミュレーターモード)のチェック

  • 基本命令、実習環境

Armv8-A アーキテクチャのコア機能および実行モデル

  • アセンブリ命令、レジスタ、例外モデル

  • AAPCS、ハイパーバイザ、TrustZone、MMU

Exception Level (EL0~EL3) の構造と実行フロー

  • ブートシーケンスと例外レベル

  • 例外レベル(Exception Level)別のソフトウェアスタック

  • TRACE32による例外レベルの実習

レジスタ構造および主要システムレジスタ

  • デバッグ過程で主に使用されるレジスタ

  • スタートアップコードで設定されるシステムレジスタの分析

  • TRACE32による主要レジスタの分析

アセンブリ命令と主要構造の分析

  • 主要なアセンブリ命令の分析

  • アセンブリ命令をC言語コードにリバーシングしてみる

  • TRACE32でアセンブリ命令のデバッグ実習

Calling convention(コーリングコンベンション)の分析

  • 主要レジスタと命令の分析

  • TRACE32によるCalling conventionデバッグ実習

(2日目)

エクセプションと割り込みの実行フロー

  • 主要な実行フローと関連システムレジスタの分析

  • メモリダンプを活用したエクセプション実習 (TRACE32)

TrustZone

  • セキュアワールドとノンセキュアワールドの概念

  • Secure OSのデバッグ方法(エクセプション、ウォッチドッグリセット)

  • Arm Trusted Firmwareの主要スタック分析

Arm Virtualization(ハイパーバイザ)

  • Virtualizationの主要命令とハイパーバイザースタックの分析

  • XENハイパーバイザーの例外ハンドラー分析

  • TRACE32による主要システムレジスタの分析

仮想メモリシステム

  • マルチレベルページ変換プロセスの分析 (VA39, VA48)

  • 主要システムレジスタ (TCR_EL1, TTBR1_EL0)

  • TRACE32による仮想アドレス変換デバッグの実習

Armv9-A 拡張機能の紹介

  • Memory Tag Extensions (MTE)

  • PAC, BTI機能

[追加カリキュラム1] デバッグで学ぶリナックスカーネルとデバイスドライバの構造

講義の目標

実務開発で活用されるリナックスカーネルの主要機能を理解し、短期間でリナックスデバイスドライバ(チップセット開発者、製品開発者)を開発することが主な目標です。また、実務で発生する様々な問題を自ら解決できる能力を確保することも主要な目標です。

  • Linuxカーネルのブートフローとデバイスドライバの初期化プロセスを段階別に理解する。

  • Linuxが提供する様々なデバッグ機能(debugfs、ftrace)をうまく活用して、多様なデバイスドライバの問題を解決できる。

  • Linuxカーネルの核心であるプロセス、割り込み、カーネル同期手法、仮想メモリの概念を習得し、カーネルAPIに精通する。

  • バイナリダンプを解析して、カーネルの主要なデータ構造を分析することができる。

  • カーネルログ、メモリダンプを基に、クラッシュおよびブリングアップ(立ち上げ)問題に対する一次分析を自ら遂行できる。

受講対象

次のようなリナックスシステムソフトウェア開発者(新人およびジュニア開発者)です:

  • ArmベースのSoCでLinuxカーネルおよびデバイスドライバを開発するエンジニア

  • Linuxデバイス(カーネルビルド、デバイスツリー分析、ブートローダー最適化)を短期間で開発する必要があるエンジニア

  • 短期間でデバイスドライバをカスタマイズしようとしているエンジニア

  • Linuxカーネルのデバッグ機能を把握し、ブート失敗、カーネルパニック、カーネルクラッシュ、ウォッチドッグリセットなどの問題を分析する必要がある開発者

  • ファームウェア・ブートローダーとカーネルドライバ間の実行フロー全体を理解する必要があるシステムエンジニア

講義の主な差別化ポイント

  • デバイスドライバの開発に必要な様々な機能をデバッグする(デバイスツリー、カーネルコンフィグ、デバイスドライバ)パッチを直接作成します。

  • 実習では、現場で実際に使用されている(ビッグテック企業が採用:クアルコム、エヌビディア)Crash utilityとTRACE32を活用します。

  • Linuxカーネルの主要なデータ構造(プロセス、割り込み、タスクスケジューリング、仮想メモリシステム)をメモリダンプ実習で分析します。

  • Armベースのチップセット(またはRISC-V)のブートシーケンスと、実戦プロジェクトで発生するケーススタディを紹介します。

講義カリキュラム

(1日目)

TRACE32実習環境(シミュレータモード)のチェック + ボード環境

  • 基本コマンド、実習環境

Linuxカーネルを学ぶべき理由

  • デバイスドライバを効率的に開発

  • プロジェクトの多様な問題を解決

  • 安定したコードを作成するための基盤

Linuxカーネルを理解するために必要なArmアーキテクチャ(Armv8、AArch64基準)

  • 例外レベル、例外ベクトルテーブル、レジスタ(汎用)

  • (必要に応じて)RISC-Vまで説明:Privilege modeとトラップハンドラ

カーネルの主要デバッグ機能

  • printk, debugfs, ftrace, kdump

  • メモリダンプとカーネルログの分析方法

  • デバッグパッチの作成方法

  • Crash utilityの使用方法

デバイスドライバの核心機能

  • sysfsとプラットフォームデバイスの構造

  • デバイスツリーの構造と関連するカーネルの主要APIの分析

  • デバイスツリーのデバッグ方法

  • 主要デバイスドライバの核心構造の説明

プロセス

  • プロセスの中核概念、プロセスの生成と終了過程の分析

  • struct task_struct, thread_info 構造体の分析

  • プロセスとスタックの構造分析

  • プロセス生成と終了の過程で導き出される主要な問題の分析

  • メモリダンプ解析による主要データ構造の分析

(2日目)

IRQとボトムハーフ

  • 割り込みベクタ(Armv8の観点)ハンドラ分析

  • 割り込みコンテキストと in_interrupt() の紹介

  • 割り込み記述子(struct irq_desc)データ構造の分析

  • メモリダンプ解析による主要データ構造の分析

ボトムハーフ

  • 主要なボトムハーフ(Bottom half)手法(threaded irq、ワークキュー、soft irq)の紹介

  • 割り込み関連の主要な問題のデバッグ方法(IRQ Storm、デバイスドライバの主要な問題)

  • デバイスドライバの主要なbottom halfの問題

動的タイマー

  • jiffiesとHZの基本概念

  • 動的タイマーハンドラの作成方法

  • 実行時間の流れをデバッグする方法

システムコールとシグナル

  • システムコールの基本概念と実行フロー

  • システムコールとデバイスドライバの実行フロー

  • シグナルの基本動作

  • 実戦プロジェクトで知っておくべき主要なシグナル

  • メモリダンプ解析による主要なデータ構造の分析

タスクスケジューリング

  • スケジューリングとコンテキストスイッチの概念の理解

  • 優先順位とプロセス状態の把握

  • データ構造:ランキュー、スケジューラクラス

  • preemptionのタイミングとpreemption enable/disable

  • sched_switch, sched_wake_up: ftrace 分析

  • Task schedulingに関連する主要なパフォーマンス問題の紹介

  • メモリダンプ解析による主要データ構造の分析

(3日目)

同期 (Synchronization)

  • raceとクリティカルセクションの紹介

  • spinlock: キュードスピンロック、チケットスピンロック

  • ミューテックスの動作原理と主要なデータ構造の紹介

  • アトミック操作

  • 実戦プロジェクトの主なレース問題の紹介

  • メモリダンプ解析による主要データ構造の分析

VFS(Virtual File System)

  • VFSの全体構造と実行フローの紹介

  • VFS関連のデータ構造

  • 主要なファイルシステムの紹介 - ext4, fat

  • ファイルシステム関連の主な実戦イシュー

  • メモリダンプ解析による主要データ構造の分析

メモリ管理

  • 仮想メモリマップと仮想メモリシステムの構造の説明

  • struct zoneとnodeの分析

  • 主要なメモリ割り当て(SLUB allocator)

  • kmallocとgfp_flags

  • メモリ関連の主要な問題とデバッグ機能

  • メモリダンプ解析による主要なデータ構造の分析

主要デバイスドライバの問題ケーススタディ

  • デバイスノードが登録されない

  • 割り込み登録ができない問題および割り込みストーム(Interrupt Storm)問題

  • ファームウェアイメージの読み込み失敗イシュー

  • i2CとSPIの転送失敗

受講生Q&A

  • デバッグ、問題解決、カーネルコードの分析方法

  • ハードウェア関連の問題のデバッグ方法

  • オープンソースコミュニティ

[追加カリキュラム2] デバッグで学ぶRISC-Vアーキテクチャの構造

講義の目標

RISC-Vアーキテクチャのコア機能を100%理解し、それをもとに実務を開始することが講義の目標です:

  • 実務で活用されるRISC-Vアーキテクチャの核心機能を理解する。

  • TRACE32デバッガでアセンブリ命令をデバッグできる。

  • Trap(Exception)とInterrupt発生時の実行フローを正確に理解し、説明することができる。

  • レジスタ・アセンブリの観点からカーネルの動作を分析できる。

  • ブリングアップの問題およびクラッシュの問題に対して、一次分析を行うことができる。

受講対象

次のようなLinuxシステムソフトウェア開発者(新人およびジュニア開発者)です:

  • RISC-VベースのシステムでLinuxドライバーを開発するエンジニア

  • RISC-Vベースのシステムでシステムブリングアップ(ブートローダー、Linuxドライバー)を行おうとしているエンジニア

  • カーネルクラッシュ、ブート問題、Fault問題を分析し解決しなければならない開発者

  • ファームウェア–カーネル–ドライバ間の流れを理解する必要があるシステムエンジニア

  • RISC-Vアーキテクチャを理論ではなく実行の観点から理解したい実務開発者

講義の主な差別化ポイント

  • ArmアーキテクチャとRISC-Vの違いを比較しながら説明します。

  • TRACE32を活用(シミュレーターモード)して、現場で必ず活用されるRISC-Vアーキテクチャの主要機能(アセンブリ命令、エクセプション)を実習形式で進めます。

  • RISC-Vベースのチップセットのブートシーケンスと、実戦プロジェクトで発生するケーススタディを紹介します。

  • 実際のメモリダンプとカーネルログをデバッグしながら、RISC-Vアーキテクチャを実習(エクセプション)します。

講義カリキュラム

(1日目)

TRACE32実習環境(シミュレーターモード)のチェック

  • 基本命令、実習環境

RISC-Vアーキテクチャの主要機能および実行モデルの紹介

  • アセンブリ命令、レジスタ、イクセプションモデル

  • Opensbi, Calling convention, MMU

Privilege modeの構造と実行フロー

  • Boot Sequenceとマシンモード(Machine mode)

  • Privilege mode別のソフトウェアスタック

  • TRACE32によるPrivilege modeの実習

レジスタ構造および主要CSRレジスタ

  • デバッグの過程で主に使われるレジスタ

  • スタートアップコードで設定されるCSRレジスタの分析

  • TRACE32による主要レジスタの分析

アセンブリ命令と主要構造の分析

  • 主要なアセンブリ命令の分析

  • アセンブリ命令をC言語コードにリバースエンジニアリングしてみる

  • TRACE32によるアセンブリ命令デバッグ実習

Calling convention 分析

  • 主要レジスタと命令の分析

  • TRACE32によるCalling conventionデバッグ実習

(2日目)

例外と割り込みの実行フロー

  • 主要な実行フローと関連CSRsの分析

  • メモリダンプを活用したエクセプション実習 (TRACE32)

メモリ同期 (Memory synchronization)

  • 主要なアセンブリ命令

  • 主要ケーススタディの紹介

仮想メモリシステム

  • マルチレベルページ変換プロセスの分析 (SA39, SA48)

  • 主要なCSRレジスタ (satp)

  • TRACE32による仮想アドレス変換デバッグ実習

メモリダンプ解析実習

  • スタックCorruptionデバッグ、コールスタック復元(TRACE32を使用)

  • 主要なクラッシュシグネチャの分析

実習環境および適用されるArmアーキテクチャとLinuxカーネル

  • 実習講義で活用されるTRACE32はシミュレーターモードであり、Inflearnの「システムソフトウェア開発のためのArmアーキテクチャの構造と原理 - 1/2部 著者直講」からダウンロードできます。(講義の受講が必要)

  • 別途実習ボードは必要なく、ノートパソコンのみ必要です。

  • 実習講義で使用されるメモリダンプは別途提供され、メモリダンプのデバッグ実習はTRACE32シミュレータモードをベースに進行します。

  • 主にArmv8-Aの主要機能(Cortex-A53, Cortex-A78)について説明し、必要に応じてArmv9-A(Cortex-X2)やArmv7-A(Cortex-A9, A15)の内容まで説明可能です。

  • Linuxカーネルのバージョンはv6.1〜v6.6の間で進行します。以前のカーネルバージョン(v5.4〜v5.15)も対応可能であり、協議に応じることができます。


6월

21일

챌린지 시작일

2028년 6월 21일 오후 03:00

챌린지 종료일

2028년 6월 29일 오후 02:30

챌린지 커리큘럼

全体

31件

챌린지에서 배워요

  • 実際の現場で使用されるArmv8-Aアーキテクチャの核心を、実行フローに基づいて理解します。

  • TRACE32デバッガを活用して、アセンブリ命令単位でコードを追跡および分析することができます。

  • Exception / Interrupt発生時の実行フローを明確に理解し、動作原因を説明できます。

  • レジスタ・アセンブリの観点からLinuxカーネルの動作を分析できます。

  • ブリングアップ時の問題およびカーネルクラッシュ発生時、原因を追跡するための一次分析能力を確保します。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Armv8-AベースのLinuxドライバ開発を始めたばかり、または1〜3年目のエンジニア

  • Armv8-Aアーキテクチャを「理論」ではなく「デバッグの観点」で学びたい実務開発者

  • カーネルクラッシュ、起動失敗、Fault問題の分析が必要だが、アプローチ方法が分からず困っている開発者

  • ファームウェア、カーネル、ドライバー間の連携構造を明確に理解する必要があるシステムエンジニア

  • ログを確認するだけの段階から、実行フローの分析段階へとステップアップしたい方

前提知識、
必要でしょうか?

  • オペレーティングシステム

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

취소 및 환불 규정
챌린지는 지식공유자가 설정한 수업 최소 정원이 충족되지 않을 경우, 폐강 안내가 고지되며 결제 내역이 자동취소됩니다.

austinkimの他の講座

知識共有者の他の講座を見てみましょう!

¥69,908