Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
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 CourseAdvanced 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アーキテクチャとLinuxカーネルのインタフェース(アセンブリ命令解析)をよく知ることで、Armアーキテクチャの詳細な動作をよりよく理解できます。理論で学んだ内容が実装されたソースコードを分析すれば、学んだ内容を内在化できるからです。

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

3⃣3番目に、レジスタ、アクセプションハンドリング、アセンブリ命令、信頼ゾーン、およびメモリ管理方法をLinuxカーネルに存在するソースコードで分析すると、Armアーキテクチャの成果とLinuxカーネルを一緒に学ぶことができます。

4⃣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アーキテクチャとLinuxカーネルのインターフェース」をよく説明できると自信があります。

こんな方におすすめです

システム半導体(ペプリス)、電気自動車分野(自律走行、インフォテインメント)を含むシステムSW分野の就労生およびジュニア開発者

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

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

受講後は

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

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

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

  • LinuxカーネルのシステムコールとExceptionハンドラの詳細な動作方法を理解する

  • 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アーキテクチャのExceptionレベル、Exception、AAPCS、Memory Management(MMU)です。

  • おおよそのLinuxがどのように動作するかを知っておくと良いでしょう。

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

こんな方に
おすすめです

学習対象は
誰でしょう?

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

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

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

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

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

  • コンピュータ構造

  • オーエス

こんにちは
です。

5,437

受講生

148

受講レビュー

84

回答

4.9

講座評価

21

講座

글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (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分)

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

受講レビュー

全体

5件

4.4

5件の受講レビュー

  • sunny75님의 프로필 이미지
    sunny75

    受講レビュー 94

    平均評価 5.0

    5

    100% 受講後に作成

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

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

      受講レビュー 2

      平均評価 4.0

      4

      100% 受講後に作成

      • ej3989님의 프로필 이미지
        ej3989

        受講レビュー 3

        平均評価 5.0

        5

        100% 受講後に作成

        • yjjung님의 프로필 이미지
          yjjung

          受講レビュー 2

          平均評価 5.0

          5

          32% 受講後に作成

          • 응애님의 프로필 이미지
            응애

            受講レビュー 5

            平均評価 3.4

            3

            96% 受講後に作成

            ¥6,054

            austinkimの他の講座

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

            似ている講座

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