Linuxカーネルの構造と原理:割り込み [著者直講 第1部-5]

システムソフトウェアで最も多く使われる、最新のリナックスカーネル(v6.1)の割り込みの核心概念を「デバッグを通じて学ぶリナックスカーネルの構造と原理」の著者が詳しく解説します。

難易度 初級

受講期間 無制限

Operating System
Operating System
Linux
Linux
linux-kernel
linux-kernel
ARM Architecture
ARM Architecture
interrupt
interrupt
Operating System
Operating System
Linux
Linux
linux-kernel
linux-kernel
ARM Architecture
ARM Architecture
interrupt
interrupt

受講後に得られること

  • 割り込みの基本概念と動作方式

  • デバイスドライバの観点から見た割り込みの処理方式

  • Armアーキテクチャの観点から見た割り込み処理方式

  • 割り込みを管理するデータ構造

<お知らせ>

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

Linuxカーネル講義の受講生500名突破を記念して、30%割引クーポンを発行します。ありがとうございます。先着100名様限定です。

-30%割引クーポンリンク : https://inf.run/i3zsz  

2. ロードマップのご案内 🎯

今回の講義<リ눅스 커널의 구조와 원리: 인터럽트 [저자 직강 1부-5]>は、ロードマップ'시스템 소프트웨어 개발자를 위한 Linux kernel - basic course'に含まれている講義です。<linux kernel structure and principles: interrupts [author's lecture part 1-5]>.</linux>

体系的にリ눅스カーネルを構成する主要機能を学びたい方は、ロードマップ(全講義30%割引)を活用することをお勧めします。).

システム半導体、自動車分野など

システムソフトウェア開発者なら必ず知っておくべきリヌックスカーネル


すべてのIT機器で最も多く使用されているオペレーティングシステムは何でしょうか?それはリ눅ス(Linux)OSです。スマートフォン、デジタルテレビ、航空エンターテインメントシステム、およびサーバーに使用されています。システム半導体メーカーでは、リナックス(リナックスデバイスドライバ)を活用して、自社で設計したハードウェアを制御しています。また、電気自動車(Automotive)を構成するさまざまな部品(インフォテインメント、自動運転、テレマティクス)にもリナックスが多く活用されています。

Linuxオペレーティングシステムの核心はLinuxカーネルです。Armv8-Aアーキテクチャとともに、現在のシステムソフトウェア業界で最も必要とされる基礎知識がLinuxカーネルであると言えます。

Linuxシステムソフトウェア開発者、Linux組み込みシステム(BSP)プログラマー注目!

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

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

✅ リナックスシステムソフトウェア分野(メモリ、ファイルシステム、オペレーティングシステム)の大学院進学希望者 in the field of Linux system software (memory, file systems, operating systems)

✅ Linuxシステムソフトウェア分野へキャリアチェンジしようとしている他分野の開発者 to the Linux system software field

しかし、Linuxカーネルはシステムソフトウェア分野の初心者にとって、巨大な壁のような存在です。初心者はLinuxカーネルを学ぼうとして、何度も挫折した経験があるでしょう。ただでさえ難しいLinuxカーネルは、バージョンがアップグレードされるにつれて、ますます複雑に進化しています。2024年以降、Linuxカーネルのバージョンはv6.6以上にアップグレードされており、参入障壁はさらに高まっています。

システム半導体や電気自動車分野を含む、様々な分野で活躍しているリヌックスシステムソフトウェア開発者の方々は、リヌックスカーネルを熟知してこそ開発能力を高められるという事実は理解しています。しかし、リヌックスカーネルをどのように学ぶべきか、そして何より実務においてどのような内容を深く理解しておくべきか、掴みづらい状況にあります。

Linuxデバイスドライバ開発の核心である割り込み

初めてリナックスシステムソフトウェア開発者として入門すると、どのような仕事をするのでしょうか?プロジェクトの性質やミッションによって異なりますが、ほとんどの場合はリナックスデバイスドライバを開発します。リナックスデバイスドライバを開発する際、必ず実装し最適化しなければならない要素の一つが割り込み(インタラプト)です。また、割り込みはリナックスカーネルを構成する主要な機能と深く関連しています。割り込みのボトムハーフ処理、動的タイマー、プリエンプティブスケジューリング(Preemptive scheduling)、およびシグナル動作と深い関わりがあります。

そこで、私が執筆した書籍『Linuxカーネルの構造と原理』の第5章で割り込みについて説明しています。読者の皆さんがftraceデバッグの実習を通じて、さまざまな方法で割り込みを学べるように構成しました。

講義の差別化ポイント

今回の講義は、これまでYouTubeやどの講義プラットフォームでも扱われたことのないコンテンツで構成されています! インタラプトの動作方式と関連するデータ構造を、リヌックスカーネルメモリダンプを通じてデバッグします。この講義を受講される方は、教育用プログラム(TRACE32)をダウンロードして直接実習することができます。

1. TRACE32シミュレータプログラム(教育用)と6つのLinuxカーネルダンプを提供

Linuxシステムソフトウェア開発全般において、TRACE32デバッガとプログラムは広範囲に使用されています。TRACE32プログラムはライセンスがないと実行できません。この講義を受講すると、教育用TRACE32シミュレータプログラムを「Inflearn講義資料」からダウンロードして、直接TRACE32シミュレータプログラムを活用し、メモリダンプをデバッグすることができます。また、割り込みの多様な動作(割り込みハンドラの呼び出し、Preemption)をデバッグできる6つのカーネルメモリダンプをダウンロードして実習することができます。

2. 割り込みの基本概念を分かりやすく詳細に説明

Linuxカーネルを学ぶ際、カーネルソースを分析します。しかし、カーネルソースを分析する過程で多くの障害に直面します。該当する関数がどのような流れで呼び出されるのか、分析しているルーチンのデータ構造が実際にどのような値なのかを確認するのは困難です。本講義では、これらすべての障害を取り除きます。

割り込みに関連するLinuxカーネルソースを、TRACE32プログラムのコールスタックや詳細なデータ構造とともに分析します。独学でLinuxカーネルを学ぶよりも、はるかに効率的に割り込みについて学ぶことができます。また、メモリダンプから抽出したftraceメッセージまで分析するため、多角的に割り込みの動作原理を詳細に把握することができます。

3. グローバルシステム半導体企業のLinuxカーネルBSP開発者が行うデバッグ手法の紹介

最近、システム半導体業界が注目を集めています。グローバルシステム半導体企業の中でも最高の技術力を誇るクアルコムのLinuxカーネルBSP開発者は、どのような方法でLinuxカーネルドライバをデバッグしているのでしょうか?

今回の講義では、この内容を扱います。LinuxカーネルのメモリダンプをTRACE32シミュレータを使用して、割り込みに関連するカーネルのデータ構造をデバッグしながら、crash-utilityでメモリダンプをロードしてカーネルの主要な動作を分析します。

こんな内容を学びます

まず、割り込みを処理する方式を説明し、さまざまな観点から割り込みが処理される流れを説明します。

Linuxカーネルとユーザーアプリケーションで割り込みが発生した際の全体の実行フローを、Armv8アーキテクチャの観点から詳細に説明します。

Linuxカーネルで割り込みが発生した際のArmv8の例外ベクトルテーブルを分析します。続いて処理される例外ハンドラールーチンを詳細に分析します。

ユーザーアプリケーションで割り込みが発生した際のArmv8の例外ベクトルテーブルを分析します。続いて処理される例外ハンドラルーチンを、アセンブリ命令レベルまで詳細に分析します。

割り込みが処理される流れを全体像で分析し、IRQサブシステム(Armアーキテクチャに依存しない)で実行される関数を詳細に説明します。

TRACE32とCrash-utilityデバッグプログラムを使用して、中断(インターラプト)に関連するデータ構造を分析します。

TRACE32で割り込みハンドラであるbcm2835_mmc_irq()関数をデバッグします。コールスタックと関連するデータ構造とともに、割り込みハンドラのソースコードを詳細に分析します。

割り込みコンテキストを紹介し、割り込みコンテキストを確認できる例示コードを説明します。

割り込みコンテキストを活性化するカーネルソースコードを分析します。割り込みコンテキストでスリープに移行するカーネル関数を呼び出してはいけない理由を説明し、例としてミューテックスを取得する際の例外処理コードを紹介します。

割り込みサービスルーチンの実行を終えた後に処理されるプリエンプション(Preemption)の動作方式を詳細に説明します。また、プリエンプションが発生する際の動作をTRACE32デバッグプログラムで詳細にデバッグします。

割り込みの動作をトレースするftraceイベントの設定方法を紹介します。ftraceメッセージを詳細に分析しながら、割り込みハンドラの実行フローと割り込みコンテキストの条件について説明します。

割り込みの動作をトレースするftraceメッセージを出力するカーネルソースコードを詳細に分析します。

教育用TRACE32プログラムと6つのリナックスカーネルメモリダンプを提供

今回の講義では、Linuxシステムソフトウェア業界で最も高度な(Advanced)デバッグ方式である、グローバル最高水準のシステム半導体企業であるクアルコムのLinuxカーネル開発者たちがデバッグするLinuxカーネルメモリダンプをデバッグする方法を紹介します。TRACE32やCrash utilityなどのデバッグプログラムを活用して、割り込みの主要なデータ構造をデバッグすることができます。

✅ 教育用TRACE32プログラム(シミュレーター版)を講義カリキュラムからダウンロードできます。受講生はTRACE32プログラムで、今回の講義で提供されるカーネルメモリダンプをロードし、一緒に進めながらデバッグすることができます。

✅ オープンソースプロジェクトとして運営されているCrash Utilityを直接ダウンロードし、カーネルメモリダンプをローディングしてデバッグすることができます。Crash Utilityでサポートされている様々な機能を活用し、カーネルのデータ構造やコールスタックを直接デバッグすることができます。

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

国内のシステムソフトウェア分野において前例のない!「Linuxカーネル」本と「Armアーキテクチャ(Armv8-A, Armv7-A)」本を執筆した著者です。また、最新のシステムソフトウェアトレンド(電気自動車、システム半導体-システムソフトウェア)を最も熟知している現役の開発者であり、システムソフトウェア分野で最も活発に知識共有活動を行っている教育者でもあります。

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

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

  • 'Programmers Dev Course: Linuxシステムおよびカーネルエキスパート' メイン講師

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

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


国内の誰よりも、リ눅스カーネルを構成する主要な機能を分かりやすく説明できる教育者であると、自信を持って申し上げられます。

受講前のご参考事項

TRACE32プログラムを使用する際の注意事項

  • TRACE32教育用プログラムは、Windows環境でのみ実習可能です。

  • TRACE32教育用プログラムは、あくまで「教育用」としてのみ活用でき、商業的な目的での修正や配布はできません。

  • 今回の講義のTRACE32教育用プログラムを使用中に不明な点があれば、必ず教育担当者に質問してください。

実習環境および提供される講義資料

  • オペレーティングシステムおよびバージョン(OS): ラズベリーパイ(ラズビアン)、リナックスカーネル v6.1

  • TRACE32 教育用プログラムおよびインストールガイド文書(講義)

  • 6個のリナックスカーネルメモリダンプ(vmcore)

前提知識および注意事項

  • おおよそリヌックスがどのように動作するのかを知っておくと良いです。

  • 'リナックスカーネルの構造と原理:デバッグ - Basic [著者直講 第1部-2]' 講義をできるだけ先に受講してから来られることをお勧めします。

  • OSやコンピュータ構成について知っていると、よりスムーズに受講することができます。

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

こんな方に
おすすめです

学習対象は
誰でしょう?

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

  • システム半導体、電気自動車分野などのシステムソフトウェア開発を志望している就職準備生

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

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

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

  • C言語

  • コンピュータ構成論

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

こんにちは
austinkimです。

キャリア認証

6,580

受講生

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

 

もっと見る

カリキュラム

全体

56件 ∙ (6時間 13分)

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

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

受講レビュー

全体

7件

4.7

7件の受講レビュー

  • aceoftop1975님의 프로필 이미지
    aceoftop1975

    受講レビュー 127

    平均評価 5.0

    5

    100% 受講後に作成

    2024/07/14/日 15:27 講義は本当によく聞きました。 ありがとうございます。

    • dlrbcnvk님의 프로필 이미지
      dlrbcnvk

      受講レビュー 19

      平均評価 4.9

      5

      60% 受講後に作成

      • heecheolsong님의 프로필 이미지
        heecheolsong

        受講レビュー 24

        平均評価 5.0

        5

        30% 受講後に作成

        • lord8465님의 프로필 이미지
          lord8465

          受講レビュー 2

          平均評価 5.0

          5

          31% 受講後に作成

          • ioniakim2638님의 프로필 이미지
            ioniakim2638

            受講レビュー 9

            平均評価 4.9

            5

            100% 受講後に作成

            austinkimの他の講座

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

            似ている講座

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