
システムソフトウェア開発のすべて - システム半導体と電気自動車中心
austinkim
システムソフトウェア開発者になるために何を準備し、何を知るべきかを説明する講義です。システムソフトウェア開発プロセスを詳細に説明し、必要な力量を紹介します。IT業界で最も高い年俸を得るシステム半導体、電気自動車分野のシステムソフトウェア開発プロセスと開発エコシステムを詳細に扱います。
入門
Embedded
システムソフトウェアで最も多く使われる、最新のリナックスカーネル(v6.1)の割り込みの核心概念を「デバッグを通じて学ぶリナックスカーネルの構造と原理」の著者が詳しく解説します。
受講生 271名
難易度 初級
受講期間 無制限


割り込みの基本概念と動作方式
デバイスドライバの観点から見た割り込みの処理方式
Armアーキテクチャの観点から見た割り込み処理方式
割り込みを管理するデータ構造
Linuxカーネル講義の受講生500名突破を記念して、30%割引クーポンを発行します。ありがとうございます。先着100名様限定です。
-30%割引クーポンリンク : https://inf.run/i3zsz
今回の講義<リ눅스 커널의 구조와 원리: 인터럽트 [저자 직강 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カーネルであると言えます。
✅ システム半導体、電気自動車分野(自動運転、インフォテインメント)を含むリ눅스システムソフトウェア分野のジュニア開発者
✅ システム半導体、電気自動車分野などのリ눅스システムソフトウェア開発分野で働きたい就職準備生
✅ リナックスシステムソフトウェア分野(メモリ、ファイルシステム、オペレーティングシステム)の大学院進学希望者 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以上にアップグレードされており、参入障壁はさらに高まっています。
システム半導体や電気自動車分野を含む、様々な分野で活躍しているリヌックスシステムソフトウェア開発者の方々は、リヌックスカーネルを熟知してこそ開発能力を高められるという事実は理解しています。しかし、リヌックスカーネルをどのように学ぶべきか、そして何より実務においてどのような内容を深く理解しておくべきか、掴みづらい状況にあります。
初めてリナックスシステムソフトウェア開発者として入門すると、どのような仕事をするのでしょうか?プロジェクトの性質やミッションによって異なりますが、ほとんどの場合はリナックスデバイスドライバを開発します。リナックスデバイスドライバを開発する際、必ず実装し最適化しなければならない要素の一つが割り込み(インタラプト)です。また、割り込みはリナックスカーネルを構成する主要な機能と深く関連しています。割り込みのボトムハーフ処理、動的タイマー、プリエンプティブスケジューリング(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メッセージを出力するカーネルソースコードを詳細に分析します。

今回の講義では、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教育用プログラムは、Windows環境でのみ実習可能です。
TRACE32教育用プログラムは、あくまで「教育用」としてのみ活用でき、商業的な目的での修正や配布はできません。
今回の講義のTRACE32教育用プログラムを使用中に不明な点があれば、必ず教育担当者に質問してください。
オペレーティングシステムおよびバージョン(OS): ラズベリーパイ(ラズビアン)、リナックスカーネル v6.1
TRACE32 教育用プログラムおよびインストールガイド文書(講義)
6個のリナックスカーネルメモリダンプ(vmcore)
おおよそリヌックスがどのように動作するのかを知っておくと良いです。
'リナックスカーネルの構造と原理:デバッグ - Basic [著者直講 第1部-2]' 講義をできるだけ先に受講してから来られることをお勧めします。
OSやコンピュータ構成について知っていると、よりスムーズに受講することができます。
Linuxカーネルに関する深い予備知識は必要ありません。
学習対象は
誰でしょう?
システム半導体、電気自動車分野(自動運転、インフォテインメント)を含むシステムソフトウェア分野で、自らの能力を高めていきたいジュニア開発者
システム半導体、電気自動車分野などのシステムソフトウェア開発を志望している就職準備生
システムソフトウェア分野(メモリ、ファイルシステム、オペレーティングシステム)の大学院進学を目指す大学生
システムソフトウェア分野へキャリアチェンジしようとしている他分野の開発者
前提知識、
必要でしょうか?
C言語
コンピュータ構成論
オペレーティングシステム
キャリア認証
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件の受講レビュー
受講レビュー 127
∙
平均評価 5.0
受講レビュー 19
∙
平均評価 4.9
受講レビュー 24
∙
平均評価 5.0
受講レビュー 2
∙
平均評価 5.0
受講レビュー 9
∙
平均評価 4.9
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!