システムソフトウェア開発のためのArmアーキテクチャの構造と原理 - 第2部 著者直講(2024年版)

システムソフトウェアの基本中の基本、最新Armアーキテクチャ(Armv8-A、Armv7-A)の核心を『システムソフトウェア開発のためのArmアーキテクチャの構造と原理』の著者がしっかりとお教えします!

難易度 初級

受講期間 無制限

Hardware Hacking
Hardware Hacking
Embedded
Embedded
ARM Architecture
ARM Architecture
cpu-architecture
cpu-architecture
cortex-a
cortex-a
Hardware Hacking
Hardware Hacking
Embedded
Embedded
ARM Architecture
ARM Architecture
cpu-architecture
cpu-architecture
cortex-a
cortex-a

学習した受講者のレビュー

学習した受講者のレビュー

5.0

5.0

ym0914

5% 受講後に作成

エクセプション、割り込み、呼び出し規約まで大きな絵を描きにくい内容を簡単に説明していただき、現業でもお手伝いをいただいております。

5.0

토끼야놀자

82% 受講後に作成

単に理論を注入するのではなく、理論が適用された実際のカーネルコードの例と講師が実務で経験した事例を通じて講義していただき、理解も上手くなり、頭にも知識が長く残りました。良い講義を通して、多くの組込み開発者が生まれてくれるように努力していただきありがとうございます。

5.0

간절한개발자

51% 受講後に作成

システムソフトウェア開発者としてARMプロセッサを知る必要があり、仕様文書を見てグーグルをしました。不慣れな用語がわからず、ARMプロセッサが難しすぎて学ぶことを何度もあきらめました。ところで、この講義を聞いてみると、全く違う世界に出会った感じです。説明を簡単にして知らなかったすべての用語や流れが理解し、ぎっしり詰まった部分がまとめられました。 ARMを学ぼうとする開発者にこの講義を強くします!

受講後に得られること

  • Armアーキテクチャ(Armv8-A, Armv7-A)の基本動作原理を把握することができます。

  • Armアーキテクチャ(Armv8-A、Armv7-A)の例外の詳細な動作原理について、深く把握することができます。

  • Armv7-A/Armv8-Aで定義されたAAPCSをよく理解できます。

  • 例外とAAPCSを活用して、メモリアボート関連の問題をデバッグする方法を理解できます。

📢 受講前のご案内

本講義はシステムソフトウェア開発のためのArmアーキテクチャの構造と原理 第1部講義に続く2番目の講義です。スムーズな理解のために、最初の講義から順次受講されることをおすすめします。

<お知らせ>

0. 受講生300人突破 30%割引クーポン発行    

受講生300名突破(1、2部)を記念して、30%割引クーポンを発行いたします。ありがとうございます。先着100名様限定です。

1. 2024年最新講義リニューアル  

最新のArmアーキテクチャの機能と、実務プロジェクトにすぐ適用できる有益なコンテンツを発掘し、以下の講義を追加しました。(3時間30分追加)

  • TRACE32 プログラムデバッグコンテンツ: 教育用 TRACE32 シミュレータプログラムを「Inflearn 講義資料」からダウンロードできます。実際に TRACE32 シミュレータプログラムを活用して、講義で説明するデバッグプロセス(アセンブリ命令を含む)を直接たどりながらデバッグすることができます。

  • デバッグ実習講義: Armv7-A エクセプション(35分)、Armv8-A エクセプション(2時間)、AAPCS(60分)

  • メモリダンプ: 例外デバッグ用として3件提供

今後も受講生の皆様に役立つコンテンツを発掘し、カリキュラムをアップデートしていく予定です。

2. Armアーキテクチャ全体 著者直伝講義ロードマップ

今回の講義<システムソフトウェア開発のためのArmアーキテクチャの構造と原理 - 2部 著者直伝>は、ロードマップ'システムソフトウェア開発者のためのArm - basic course'に含まれている講義です。


体系的にArmアーキテクチャ(Armv8-A、Armv7-A)を学びたい方は、ロードマップ(全講義30%割引)を活用することをお勧めします。ちなみに、Armアーキテクチャのロードマップ(著者直伝全編)はBasic CourseAdvanced Courseの2つで構成されています。


最新のシステムソフトウェアにおいて
最も重要なArmアーキテクチャ

スマートフォンはもちろん、AI用SoCシステム半導体、電気自動車Automotive(自動運転、インフォテインメント)、そしてクラウドサーバーやMacBookで使用されているArmプロセッサは、すべてArmv8-Aベースの64ビットCortex-Aプロセッサ(Cortex-A53、Cortex-A57、Cortex-A72など...)です。現在のシステムソフトウェア業界で最も必要とされる基礎知識が、Armv8-Aアーキテクチャであると言えます。

ところで、最新のArmアーキテクチャであるArmv8-AとArmv7-Aアーキテクチャが、あまりにも難しく感じられましたか?


システムソフトウェア開発者、組み込みシステム(BSP)プログラマー必見!🙋‍♂

✅ システム半導体、電気自動車分野(自動運転、インフォテインメント)を含むシステムソフトウェア分野のジュニア開発者

✅ システム半導体、電気自動車分野などのシステムソフトウェア開発分野で働きたい就職準備生

✅ システムソフトウェア分野(メモリ、ファイルシステム、オペレーティングシステム)の大学院進学希望者

✅ システムソフトウェア分野へキャリアを転換しようとしている他分野の開発者

多くのリナックス・組み込み開発者志望の方々は、コンピュータ構成やオペレーティングシステムを学びます。そしてCS理論もある程度勉強します。最近注目されているシステム半導体や電気自動車のシステムソフトウェア開発者は、リナックスデバイスドライバ、RTOS、あるいはブートローダーを分析します。しかし、それだけでは何かが足りないということを自ら感じています。専門的なシステムソフトウェア開発者になるためには、必ずArmアーキテクチャを知らなければならないという事実は分かっていますが、いざArmのスペック文書を開いた瞬間、それは容易な道ではなく、独学は難しいだろうと判断することになります。

Armアーキテクチャの核心を
分かりやすく解説します!

  • 1⃣ Armアーキテクチャの核心中の核心であるエクセプションと、関数呼び出し規約であるAAPCSに関する核心的な理論を理解することができます。

  • 2⃣ Armアーキテクチャを構成する主要な内容をコードレベルで再体験することで、Armアーキテクチャに対する理解度がさらに深まります。

  • 3⃣ Armアーキテクチャが提供する様々な機能を積極的に活用することで、高い安定性とパフォーマンスが保証されたシステムプログラム(ドライバ、ブートローダー)を開発することができます。

  • 4⃣ 実践プロジェクトの開発に必要な各種理論や事例を自ら理解することができます。

システムソフトウェア開発の核心は、CPUおよびコンピュータ構造だと言っても過言ではありません。IT業界で最も必要とされているCPUプロセッサである、最新のArmアーキテクチャ(Armv8-A、Armv7-A)に関する核心的な理論を分かりやすく解説しました!

Armアーキテクチャが難しい理由は、Armアーキテクチャをハードウェアプロセッサの観点からのみ学んでいるからです。この講義では、コード分析と具体的な事例紹介を通じて、Armアーキテクチャを構成する内容が実際にどのように使用されているかを説明します。この講義が、実力のあるシステムソフトウェア開発者になるための中心的な役割を果たすことでしょう。

著者直伝!本にはない内容まで
具体的に解説します。

書籍『Armアーキテクチャの構造と原理』(2024年大韓民国学術院優秀図書賞選定)の内容だけでなく、本では扱っていないArmアーキテクチャに関するデバッグ実習や様々な事例を具体的に説明します。

  • ✅ 40%: 本の核心内容

  • ✅ 40%: Armアーキテクチャ関連の主要ケーススタディ、コードレビュー

  • ✅ 20%: デバッグ実習 - TRACE32

講義内容 📕

CPUアーキテクチャにおけるエクセプション(例外)とは何かを紹介し、Armのスペックをレビューしながらエクセプションの基本的な動作方式を説明します。

実際のプロジェクトでArmアーキテクチャのエクセプションを知っておくべき理由を詳しく説明します。

Armv7アーキテクチャのエクセプション実行フローを段階別に説明し、エクセプションをソフトウェアで処理する方式まで詳細に分析します。

Armv7アーキテクチャのメモリアボート(PrefetchまたはData Abort)が処理される動作を詳細に説明します。IRQ中断例外を処理する実行フローを説明します。

Armv7アーキテクチャでSVC命令を実行した際に誘発されるスーパーバイザーコール(ソフトウェア割り込み)エクセプションの実行フローを説明します。エクセプションの全体的な実行フローをまとめます。

実際の Data Abort と Undefined Instruction エクセプションが誘発される動作を、全体像として詳細に説明します。

Armv8アーキテクチャで定義された例外の特徴を紹介します。Armv8アーキテクチャにおける例外の種類と分類体系を説明します。

Armv8アーキテクチャにおいてSynchronous(同期)エクセプションが処理されるフローを説明します。

Armv8アーキテクチャにおいて、各段階別に割り込みが処理される実行フローを大きな流れで説明します。この過程で更新されるレジスタと、エクセプションハンドラについて説明します。

Interrupt Controllerを紹介し、GICの全体構造を説明します。

GICの全体構造を大きな図解で説明し、GICのバージョン別の主な機能について説明します。

GICで定義された割り込みソースとタイプを説明し、SMP(マルチコアシステム)における割り込みの処理方式について説明します。

ソフトウェア開発の観点から設計されたGICのプログラマモデルを説明し、物理的なGICの構造について説明します。

ディストリビュータの構造と、ディストリビュータを制御する際に使用されるシステムレジスタについて説明します。CPUインターフェースの構造と、CPUインターフェースを制御する際に使用されるシステムレジスタについて説明します。

IRQとFIQの核心概念を説明し、実行フローまで詳細に説明します。

GICをソフトウェアで制御するGICハンドラールーチン(Linuxカーネル、XENハイパーバイザー)について説明します。

CPUアーキテクチャにおける関数呼び出し規約と、AAPCSを構成する主要な機能を紹介します。

Armv7-Aアーキテクチャ:AAPCSの核心であるPUSH命令とPOP命令の動作方式を詳細に説明します。

Armv7-A アーキテクチャ:AAPCSの核心であるBL命令の実行フローと関連するアセンブリ命令を詳細に説明します。

Armv8-Aアーキテクチャ:AAPCSの核心であるSTP命令の動作方式とBLアセンブリの動作方式を詳細に説明します。

Armv8-A: AAPCSに関連する知識を活用し、実際のプロジェクトで問題を解決する方法を紹介します。スタックオーバーフローやスタック汚染を防止できるスキルを詳細に説明します。



Armの原理を理解する近道は、
仕様書を直接読んで理解すること!

初心者にとってArmは決して容易ではありません。どんなに有益な内容であっても、理解するのが難しいためです。この講義は、難解なArmアーキテクチャの理論により簡単にアプローチできるよう、道を開くために企画されました。


執筆・講義の経験を活かし、
誰よりも深く詳細に!


国内のシステムソフトウェア分野において前例のない!「Armアーキテクチャ(Armv8-A, Armv7-A)」と「Linuxカーネル」の本を執筆した著者(2冊とも大韓民国学術院の優秀図書に選定であり、国内初めて海外出版社(Packt)を通じて"Reverse Engineering Armv8-A Systems"の本(英語)を執筆したグローバル著者です。何より最新のシステムソフトウェアトレンド(電気自動車、システム半導体-システムソフトウェア)を最も熟知している現役の開発者です。また、システムソフトウェア分野で最も活発に知識共有活動を行っている教育者でもあります。

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

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

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

  • 'プログラマーズ・デブコース:Linuxシステムおよびカーネルエキスパート' メイン講師

  • 2022年6月、韓国コンピューター総合学術大会 (KCC2022) - チュートリアル発表 [ftraceを利用してリナックスカーネルを征服する]

  • LG電子「Linuxカーネル」および「Armv8アーキテクチャ」社内講師(国内および海外開発者を含む) - (2020年〜2024年)


国内の誰よりも、Armアーキテクチャ(Armv8-A、Armv7-A)を構成する主要な機能を分かりやすく説明できる教育者であると、自信を持って申し上げられます。

受講生たちが残したリアルな受講レビュー

<システムソフトウェア開発のためのArmアーキテクチャの構造と原理 - 第1/2部 著者直伝講座>


Q&A 💬

Q. システムソフトウェア開発者になるには、Armアーキテクチャを必ず学ばなければなりませんか?

はい、必ず学ぶ必要があります。IT業界で最も多く使用されているCPUがArmプロセッサです。ハードウェアを制御するプログラミングを行うシステムソフトウェア開発者は、Armアーキテクチャに関連する内容を正しく理解していなければ、問題解決ができないケースが多いからです。Armアーキテクチャをよく知らないと、単純なシステム設定作業しかできない可能性があります。

Q. 非専門家ですが、Armアーキテクチャを学ぶことはできますか?

非専門家の方でも、この講義の内容をしっかり聴けば、Armアーキテクチャの基本原理を十分に理解することができます。「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」という本のベータリーダーの中にも、非専門家の方が多数いらっしゃいました。最初はArmアーキテクチャの内容を読んで、すぐに理解するのは難しかったようですが、本を2〜3回読み返すことで、ほとんどの方がArmアーキテクチャを理解されました。この講義は本の内容をより詳しく具体的に説明しているため、この講義を聴けば非専門家の方でもArmアーキテクチャを十分に理解できるはずです。

Q. セキュリティソフトウェア開発者になるには、この講義を受ける必要がありますか?

もしV3のようなソフトウェアを開発したいのであれば、CPUアーキテクチャに関する理論は必須です。カーネルドライバ開発者に進むなら、ArmアーキテクチャのようなCPUアーキテクチャは必ず知っておかなければなりません。リバーシングをはじめ、各種攻撃・防御手法の核心を学ぶには、Armアーキテクチャの理論を知らずに試みることさえ困難です。

Q. C言語、データ構造程度しか勉強していません。それでもこの講義を受講できますか?

はい、受講可能です。この他にオペレーティングシステム(OS)やRTOSに関する知識があれば、講義をよりスムーズに学習する助けになります。ただし、本講義は予備知識がなくても受講に支障がないよう、順を追って丁寧に案内します。

先修知識よりも、次のような姿勢の方が重要です。

  • 継続的に講義を聴く努力

  • よく分からない内容を聞いたときに、悩み、考える訓練

  • コツコツと復習する習慣

こんな方に
おすすめです

学習対象は
誰でしょう?

  • システム半導体(ファブレス)、電気自動車分野(自動運転、インフォテインメント)を含むシステムソフトウェア分野で、自らの能力を高めていきたいジュニア開発者

  • システムソフトウェア分野へキャリアチェンジしようとしている他分野の開発者

  • システム半導体(ファブレス)、電気自動車分野でシステムソフトウェア開発を志望している就活生

  • システムソフトウェア分野(メモリ、ファイルシステム、オペレーティングシステム)の大学院進学を目指す大学生

  • Armアーキテクチャの機能を活用して、実務でどのようにデバッグを行うかを知りたいシステムソフトウェア開発者(システム半導体、電気自動車)

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

  • コンピュータ構成論

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

  • C言語

  • 組み込み

  • CPU

  • マイクロプロセッサ

こんにちは
austinkimです。

6,316

受講生

241

受講レビュー

96

回答

4.9

講座評価

22

講座

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

国内のシステムソフトウェア分野において前例のない!「Armアーキテクチャ(Armv8-A, Armv7-A)」と「Linuxカーネル」の本を執筆した著者(2冊とも大韓民国学術院の優秀図書に選定であり、国内初めて海外出版社(Packt)を通じて「Reverse Engineering Armv8-A Systems」の本(英語)を執筆したグローバル著者です。何よりも最新のシステムソフトウェアトレンド(電気自動車、システム半導体-システムソフトウェア)を最も熟知している現役エンジニアです。また、システムソフトウェア分野で最も活発に知識共有活動を行っている教育者でもあります。

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

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

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

  • 「Programmers Dev Course:Linuxシステムおよびカーネル専門家」メイン講師

  • 2022年6月、韓国コンピューター総合学術大会 (KCC2022) - チュートリアル発表 [ftraceを利用してリ눅스カーネルを攻略する]

  • LG電子「Linuxカーネル」および「Armv8アーキテクチャ」社内講師(国内および海外開発者を含む) - (2020年〜現在)

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

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

主要ロードマップ 🎯

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

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

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

もっと見る

共同知識共有者

カリキュラム

全体

130件 ∙ (20時間 37分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

17件

5.0

17件の受講レビュー

  • mikeseohyungjin5975님의 프로필 이미지
    mikeseohyungjin5975

    受講レビュー 4

    平均評価 5.0

    5

    5% 受講後に作成

    1. ARMアーキテクチャについて驚くほど深い知識に感銘を受けました。 2. ARMスペックがとても難解で難しいのですが、講義に出てくるようにlinux kernelコードを見ながら身につけて理解が上手ですね。 全体的に開発者への愛情が感じられてよかったです。

    • austinkim
      知識共有者

      良い評価と励ましありがとうございます。もし気になる点があれば、いつでもQ/Aとして残してください。 これから私の講義を "本当によく聞いた"という確信を差し上げるために最善を尽くします。

  • jazzpiano85181275님의 프로필 이미지
    jazzpiano85181275

    受講レビュー 4

    平均評価 5.0

    5

    60% 受講後に作成

    理解しやすいように難しい内容を噛み砕いて説明してくださり、重要な部分を繰り返すことで学習者の記憶に残るよう努めてくださって、本当にありがとうございました!

    • 16267551265님의 프로필 이미지
      16267551265

      受講レビュー 10

      平均評価 4.9

      5

      30% 受講後に作成

      • grapesgun0624님의 프로필 이미지
        grapesgun0624

        受講レビュー 5

        平均評価 5.0

        5

        82% 受講後に作成

        単に理論を注入するのではなく、理論が適用された実際のカーネルコードの例と講師が実務で経験した事例を通じて講義していただき、理解も上手くなり、頭にも知識が長く残りました。良い講義を通して、多くの組込み開発者が生まれてくれるように努力していただきありがとうございます。

        • austinkim
          知識共有者

          良い評価ありがとうございます。もし気になる点があれば、いつでもQ/Aとして残してください。 今後私の講義を "本当によく聞いた"という確信を差し上げるために最善を尽くします。

      • rousalome6394님의 프로필 이미지
        rousalome6394

        受講レビュー 4

        平均評価 5.0

        5

        51% 受講後に作成

        システムソフトウェア開発者としてARMプロセッサを知る必要があり、仕様文書を見てグーグルをしました。不慣れな用語がわからず、ARMプロセッサが難しすぎて学ぶことを何度もあきらめました。ところで、この講義を聞いてみると、全く違う世界に出会った感じです。説明を簡単にして知らなかったすべての用語や流れが理解し、ぎっしり詰まった部分がまとめられました。 ARMを学ぼうとする開発者にこの講義を強くします!

        • austinkim
          知識共有者

          良い評価ありがとうございます。もし気になる点があれば、いつでもQ/Aとして残してください。

      austinkimの他の講座

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

      似ている講座

      同じ分野の他の講座を見てみましょう!

      ¥16,832