강의

멘토링

커뮤니티

Hardware

/

Embedded IoT

ArmアーキテクチャとLinuxカーネルインターフェース - 著者直講

Armアーキテクチャ(Armv8-A)とLinuxカーネルインターフェースの核心を、「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」の著者が的確に捉えます!

  • austinkim
저자 직강
이론 중심
arm-linux
리눅스커널
운영체제
어셈블리어
Linux
linux-kernel
armv8
ARM Architecture
assembly-language

受講後に得られること

  • Armアーキテクチャ(Armv8-A)を構成する主要な動作方式を把握できます。

  • ArmアーキテクチャとLinuxカーネルのインターフェース(プロセス、割り込みハンドリング、システムコール、メモリ管理)を理解できます。

  • Linuxカーネルを構成する主要な機能であるプロセス、割り込みハンドリング、システムコール、メモリ管理技術を学ぶことができます。

  • レジスタ、例外処理、アセンブリ命令、トラストゾーン、そしてメモリ管理方式を、Linuxカーネルに存在するソースコードから分析することができます。

1. 300名突破30%割引クーポン発行

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

2. ロードマップ案内 🎯

今回の講義のロードマップ'システムソフトウェア開発者のためのArm - advanced course'に含まれる講義です。


体系的にArmアーキテクチャ(Armv8-A、Armv7-A)を学びたい方は、ロードマップ(全講義30%割引)をご活用いただくと良いでしょう。なお、Armアーキテクチャロードマップ(著者直講全体)はBasic Course上級コース2つで構成されています。


最新システムソフトウェアで最も重要な
ArmアーキテクチャとLinuxカーネル

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

電気自動車、システム半導体で
最も多く実行されるオペレーティングシステムカーネル

Armプロセッサと共にLinuxカーネルはスマートフォンをはじめとするクラウドサーバー、そして電気自動車システムで使用されています。またシステム半導体業界(ファブレス)にいるシステムソフトウェア開発者は、ほとんどがLinuxカーネルやLinuxデバイスドライバーを使用して自分が設計したチップを制御するドライバープログラミングを行います。

もう一度整理すると!Armプロセッサ上で最も多く実行されるオペレーティングシステムのカーネルは、まさにLinuxカーネルです。

'ArmアーキテクチャとLinuxカーネルのインターフェース'を
学ぶべき4つの理由

1⃣ 第一に、Armアーキテクチャとリナックスカーネルのインターフェース(アセンブリ命令語分析)をよく知っていれば、Armアーキテクチャの詳細な動作方式をより良く理解することができます。理論で学んだ内容が実装されたソースコードを分析すれば、学んだ内容を内在化することができるからです。

2⃣ 第二に、Linuxカーネルを構成する核心機能であるプロセス、割り込みハンドリング、システムコール、メモリ管理技法は、CPUアーキテクチャのFeatureを活用して実装されています。ArmアーキテクチャとLinuxカーネルのインターフェースをよく知っていれば、Linuxカーネルの詳細な動作を深く把握することができます。

3⃣ 第三に、レジスタ、例外処理、アセンブリ命令、トラストゾーン、そしてメモリ管理方式をLinuxカーネルに存在するソースコードで分析することで、Armアーキテクチャを構成する内容とLinuxカーネルを一緒に学ぶことができます。

4⃣ 第四に、ArmプロセッサとLinuxカーネルは、システムソフトウェア業界の90%以上の製品で使用されています。LinuxカーネルがArmプロセッサ上でどのような方式で動作するかを把握すれば、学んだ内容をうまく活用できます。

最近開発されるほとんどのシステムソフトウェアは、ArmプロセッサとLinux環境で開発されるため、これに関連する知識は必ず知っておく必要があります。

書籍執筆・講義経験をもとに
誰よりも深く詳細に!

「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」著者の直接講義を受けた開発者の方々は疑問に思うかもしれません。今回のArmアーキテクチャ講師が突然Linuxカーネルについて話をするからです。しかし、私はArmアーキテクチャだけでなく、Linuxカーネルの本も書いた著者です。Linuxカーネル関連の主要な経歴は以下の通りです

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

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

  • 'プログラマース デブ コース: Linuxシステム及びカーネル専門家' メイン講師

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


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


今回のコースの講師である私が、誰よりも「Armアーキテクチャとリナックスカーネルのインターフェース」をよく説明できると自信を持って言えます。

こんな方におすすめです

システム半導体(ファブレス)、電気自動車分野(自動運転、インフォテインメント)を含むシステムSW分野の就活生及びジュニア開発者

Armアーキテクチャの機能を活用して実務でどのようにデバッグするかを知りたいシステムソフトウェア開発者

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

受講後には

  • Armアーキテクチャの詳細な動作原理を把握

  • Armアーキテクチャの機能を活用してLinuxカーネルの主要Subsystemがどのように実装されているかを把握

  • Linuxカーネルのコンテキストスケジューリング実装方式の理解

  • Linuxカーネルのシステムコールと例外ハンドラーの詳細動作方式の理解

  • Linuxカーネルのメモリシステム実装方式の把握

こんな内容を学びます

Linuxに慣れていない受講生のために、Linuxシステムの全体構造を紹介します。Linuxカーネルで重要に扱われる3大リソースを詳しく説明します。

Linuxカーネルの核心であるプロセス(ユーザー空間およびカーネル空間、ユーザープロセス、カーネルスレッド)について説明します。

Armアーキテクチャに依存するプロセスのデータ構造について説明します。特にコンテキストスイッチに関連するレジスタを中心に動作原理を詳細に扱います。

Armアーキテクチャに依存的なコンテキストスイッチングの動作をアセンブリ命令語分析で詳細に説明します。

割り込みが処理される流れを大きな図で説明します。割り込みを処理する方式を「Armv8アーキテクチャの例外ベクターテーブル」分析で詳細に説明します。

割り込みが処理される流れを2つのシナリオ(ユーザーアプリケーション実行中の割り込み発生、カーネルコード実行中の割り込み発生)を基準に説明します。続いて例外ハンドラーコード(アセンブリコード)を詳細にレビューします。

システムコールの全体実行フローをレビューし、システムコール関連例外ベクターテーブルの内容を詳細に説明します。

ユーザー空間でシステムコールを引き起こす際に実行されるSVC命令ルーチンを分析します。続いて、システムコールが引き起こされる過程でカーネル空間で実行される例外ハンドラルーチンを詳細に説明します。

システムコールが発生した(SVC命令語実行)後にカーネル空間でシステムコールハンドラが呼び出される過程で処理されるカーネル核心APIを説明します。また、システムコールハンドラの核心シンボル情報まで詳細に扱います。

Linuxカーネルにおけるメモリ管理を構成する主要機能を紹介し、Armアーキテクチャの観点から知っておくべきメモリ管理関連フィーチャーを説明します。

Linuxカーネルで仮想アドレスの範囲を設定するコンフィグを紹介します。続いて、Linuxカーネルでマルチレベルページテーブルのためにサポートするインターフェースを説明します。

Linuxカーネルでサポートされているインターフェースを使用して処理されるページルックアップの動作原理とfixupマクロの構造について詳しく説明します。

学習者が残した生々しい受講レビュー

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


受講前の参考事項

前提知識および注意事項📢

  • 「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」著者直講講義(1/2部)を先に受講されることをお勧めします。

  • 前提知識はArmアーキテクチャの例外レベル、例外、AAPCS、メモリ管理(MMU)です。

  • 大まかにLinuxがどのように動作するかご存知であれば良いです。

  • Linuxカーネルに関する深い前提知識は必要ありません。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • システムソフトウェア分野の就活生及びジュニア開発者

  • Armアーキテクチャの機能を活用したデバッグ方法を知りたいシステムSW開発者

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

  • システムソフトウェア分野の大学院進学を目標とする大学生

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

  • コンピュータ構造

  • オーエス

こんにちは
です。

6,018

受講生

200

受講レビュー

89

回答

4.9

講座評価

22

講座

글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (Arm, RISC-V 아키텍처)

국내 시스템 소프트웨어 분야에서 전무후무한! 'Arm 아키텍처(Armv8-A, Armv7-A)'와 '리눅스 커널' 책을 쓴 저자(2권의 책 모두 대한민국 학술원 우수도서에 선정)이며, 국내 최초로 해외 출판사(Packt)를 통해 "Reverse Engineering Armv8-A Systems" 책(영어)을 집필한 글로벌 저자입니다. 무엇보다 최신 시스템 소프트웨어 트렌드(전기자동차, 시스템 반도체- 시스템 소프트웨어)를 가장 잘 알고 있는 현업 개발자입니다. 또한 시스템 소프트웨어 분야에서 가장 지식 전파 활동을 활발하게 하는 교육자입니다. 

  • 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' 책(영어) 저자, (Packt 출판사)

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리'(2024년, 대한민국 학술원 우수도서상) 저자

  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사

  • 2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]

  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~현재)

국내에서 어느 누구보다 리눅스 커널과 Arm 아키텍처(Armv8-A, Armv7-A)를 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다.

강의문의 : austindh.kim@gmail.com

주요 로드맵 🎯

'시스템 소프트웨어 개발자를 위한 Arm - basic course'

'시스템 소프트웨어 개발자를 위한 Arm - advanced course'

시스템 소프트웨어 개발자를 위한 Linux kernel - basic course

カリキュラム

全体

25件 ∙ (3時間 51分)

講座掲載日: 
最終更新日: 

受講レビュー

全体

6件

4.5

6件の受講レビュー

  • sunny75님의 프로필 이미지
    sunny75

    受講レビュー 112

    平均評価 5.0

    5

    100% 受講後に作成

    2024/07/30/화 10:40 강의 잘 들었습니다. 알려 주신 로드맵( Arm basic/advanced )으로 많은 것을 배웠습니다. 모든 강의가 다 좋네요. 들으면서 "와~~" 라고 혼자 엄청 느꼈습니다. 감사합니다. 이젠 남은 강의를 다 들어서, 알려주신 로드맵을 다 들으려고 합니다. 감사합니다.

    • jangmh님의 프로필 이미지
      jangmh

      受講レビュー 4

      平均評価 5.0

      5

      32% 受講後に作成

      • 김현문님의 프로필 이미지
        김현문

        受講レビュー 2

        平均評価 4.0

        4

        100% 受講後に作成

        • ej3989님의 프로필 이미지
          ej3989

          受講レビュー 4

          平均評価 5.0

          5

          100% 受講後に作成

          • yjjung님의 프로필 이미지
            yjjung

            受講レビュー 2

            平均評価 5.0

            5

            32% 受講後に作成

            ¥6,345

            austinkimの他の講座

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

            似ている講座

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