Linuxカーネルの構造と原理:デバッグ - Advanced 実戦 [著者直講 第1部-3]

システムソフトウェアで最も多く使われている、最新のリナックスカーネル(v6.1)の最も高度なカーネルメモリダンプデバッグスキルを、『デバッグを通じて学ぶLinuxカーネルの構造と原理』の著者が詳しく解説します。

難易度 中級以上

受講期間 無制限

trace32
trace32
Linux
Linux
linux-kernel
linux-kernel
Operating System
Operating System
debugging
debugging
trace32
trace32
Linux
Linux
linux-kernel
linux-kernel
Operating System
Operating System
debugging
debugging

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

4.9

5.0

sunny75

100% 受講後に作成

2024/07/30/火 20:25 講義はよく聞きました。経験された話もたくさんしていただき、難しいlinux/armについて、簡単に説明していただきありがとうございます。 50(75年生まれ)ですね。年次を使って今講義を聞きました。急いでみなさん、もう一度聞かなければなりませんね。^^;いないから、私が感じた心を伝えることができませんね。 linuxについて少しずつ進んでいけると思います。

5.0

배근일

100% 受講後に作成

dddddgggggooood

5.0

이정훈

31% 受講後に作成

分かりやすく丁寧に説明してくださるので、無理なくついていけます。

受講後に得られること

  • TRACE32とCrash UtilityプログラムによるLinuxカーネルメモリダンプデバッグ

  • 実践プロジェクトを開発する過程で遭遇し得る、さまざまなケーススタディ

  • ブートタイム ftrace トレーサー

  • Crash Utilityプログラムを実行して、Linuxカーネルの主要なデータ構造をデバッグする

  • TRACE32プログラムを実行してLinuxカーネルの主要なデータ構造をデバッグ

<お知らせ>

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

受講生200名突破(リ눅스 커널의 구조와 원리)を記念して、30%割引クーポンを発行します。ありがとうございます。先着200名様限定です。

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

今回の講義<リナックスカーネルの構造と原理:デバッグ - Advanced 実戦 [著者直講 第1部-3]>は、ロードマップ'システムソフトウェア開発者のための Linux kernel - basic course'に含まれている講義です。

体系的にリナックスカーネルを構成する主要機能を学びたい方は、ロードマップ(全講義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システムソフトウェア開発者が最も高めたい開発能力とは?

Linuxシステムソフトウェア開発者が最も学びたい実務スキルは何でしょうか?それはまさにデバッグスキルです。デバッグは問題解決能力に比例するため、デバッグ能力を高めたいと考えています。Linuxカーネルに関するブログや資料は多いですが、最新のデバッグ技法を活用して問題を体系的に解決する方法はほとんど扱われていません。

そこで、私が執筆した'デバッグを通じて学ぶLinuxカーネルの構造と原理'の第3章「デバッグとコード学習」で、デバッグに関する内容を扱っています。

講義の差別化ポイント

今回の講義は、これまでYouTubeや他の講義プラットフォームで一度も扱われたことのないコンテンツで構成されています! 最新のLinuxカーネルデバッグ手法と、多様なケーススタディを扱います。また、Linuxカーネルのメモリダンプを通じてカーネルのデータ構造をデバッグする方法を紹介します。この講義を受講される方は、教育用プログラム(TRACE32)をダウンロードして、直接実習を行うことができます。

1. 実践開発に最も近いデバッグ手法を網羅

就職準備生や新人開発者が最も知りたがっている業務スキルは、どのようなデバッグツールを活用して、どのようにデバッグするかです。今回の講義では、最も高度なデバッグ手法である「カーネルメモリダンプ」を活用して、カーネルのデータ構造をデバッグする方法を紹介します。

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

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

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

3. 最新のftraceデバッグ手法「boot-time tracer」の紹介

Linuxカーネルのバージョンがアップグレードされるにつれ、デバッグ手法も進化しています。ftraceでは、簡単な設定を変更するだけでブート過程におけるカーネルの動作をトレースできる「boot-time tracer」機能が提案されました。今回の講義では、「boot-time tracer」を活用する様々な方法を紹介します。

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

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

こんな内容を学びます

実戦プロジェクトでダンプ解析が必要な理由について説明します。実戦プロジェクトでよく活用されるCrash-UtilityとTRACE32について紹介します。

Crash-UtilityとTRACE32を使用して、実際のプロジェクトでどのような方法でデバッグを行うのかを詳細に説明します。

TRACE32を解説する本の内容を説明しながら、TRACE32を実際に動かしてデバッグを行います。授業を聞きながら、教育用TRACE32プログラム(教育用:シミュレータ用)をダウンロードして一緒に進めながら実習を行うことができます。

「講義資料」にアップロードされたTRACE32(教育用、シミュレータ)プログラムをインストールして実行する方法を説明します。また、「講義資料」にアップロードされたカーネルメモリダンプをダウンロードし、TRACE32プログラムでカーネルメモリダンプをロードする方法を詳細に説明します。


ftraceを設定する3つの方法を紹介し、boot-time ftrace tracerが必要な理由について詳細に説明します。

boot-time ftrace tracerを設定する方法を説明し、関連するカーネルソースコードを詳細に分析します。

ブートコマンドラインを設定する方法を紹介し、関連するftraceログを詳細に分析します。カーネルログをftraceログとして抽出する方法と、関連するメッセージを分析する方法を紹介します。

ftraceメッセージを詳細に分析し、関連する動作原理を説明します。また、initcallに関連するカーネルソースコードも詳しく分析します。

Crash Utilityプログラムを実行して、Linuxカーネルの主要なデータ構造をデバッグします。関連するカーネルドライバのソースコードも併せて分析しながら、動作原理を詳細に説明します。


Crash Utilityプログラムでリナックスカーネルダンプをデバッグしながら、関連機能の詳細な動作原理を説明します。


実戦プロジェクトを開発する過程で遭遇する可能性のある、さまざまなケーススタディを紹介します。関連するカーネルログとカーネルの動作原理を詳細に分析します。また、デバッグを通じてどのように問題を解決するかについても説明します。


実戦プロジェクトの開発過程で遭遇する可能性のあるスタック汚染やメモリリークの問題に関するケーススタディを説明します。

Linuxカーネルのメモリシステムのデータ構造と構成について、Crash Utilityデバッグを通じて説明します。

本で紹介されたTRACE32の主要コマンド(メモリアドレスのキャスティング)について説明します。実際にTRACE32プログラムで関連コマンドを使用する方法を詳しく説明します。

システムコールテーブルのシンボル情報を説明し、TRACE32のコマンド(d.v %y.ll sys_call_table)を使用してシステムコールハンドラ関数の情報を確認します。続く講義では、TRACE32の主要なコマンドとともに、Linuxカーネルの核心的なデータ構造についても説明します。

実際のプロジェクトを進める過程で活用される実用的なコマンド(%lオプション:レジスタ情報の出力)を詳しく説明します。

教育用TRACE32プログラムと3つのLinuxカーネルメモリダンプを提供

今回の講義では、リヌックスシステムソフトウェア業界で最も進んだ(Advanced)デバッグ方式である - グローバル最高水準のシステム半導体企業である、クアルコムのリヌックスカーネル開発者たちがデバッグする - リヌックスカーネルメモリダンプをデバッグする方法を紹介します。TRACE32やCrash utilityのようなデバッグプログラムを活用し、&#39;リヌックスカーネルメモリを&#39;デバッグできる高度なデバッグ方法を提供します。

✅ 教育用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およびバージョン(OS): ラズベリーパイ(ラズビアン)、リナックスカーネル v6.1

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

  • 3つのLinuxカーネルメモリダンプ(vmcore)


前提知識および注意事項

  • おおよそリ눅스가どのように動作するのかを知っておくと良いです。

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

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

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

こんな方に
おすすめです

学習対象は
誰でしょう?

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

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

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

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

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

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

  • C言語

  • コンピュータ構成論

こんにちは
austinkimです。

6,444

受講生

252

受講レビュー

99

回答

4.9

講座評価

23

講座

グローバル著者 & リナックスシステムソフトウェア開発者 (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

もっと見る

カリキュラム

全体

42件 ∙ (5時間 39分)

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

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

受講レビュー

全体

16件

4.9

16件の受講レビュー

  • geunilbae3588님의 프로필 이미지
    geunilbae3588

    受講レビュー 1

    平均評価 5.0

    5

    100% 受講後に作成

    dddddgggggooood

    • aceoftop1975님의 프로필 이미지
      aceoftop1975

      受講レビュー 121

      平均評価 5.0

      5

      100% 受講後に作成

      2024/07/30/火 20:25 講義はよく聞きました。経験された話もたくさんしていただき、難しいlinux/armについて、簡単に説明していただきありがとうございます。 50(75年生まれ)ですね。年次を使って今講義を聞きました。急いでみなさん、もう一度聞かなければなりませんね。^^;いないから、私が感じた心を伝えることができませんね。 linuxについて少しずつ進んでいけると思います。

      • leejh5088님의 프로필 이미지
        leejh5088

        受講レビュー 5

        平均評価 5.0

        5

        31% 受講後に作成

        分かりやすく丁寧に説明してくださるので、無理なくついていけます。

        • jangshik8251님의 프로필 이미지
          jangshik8251

          受講レビュー 1

          平均評価 5.0

          5

          100% 受講後に作成

          • yerinjeon9731님의 프로필 이미지
            yerinjeon9731

            受講レビュー 3

            平均評価 5.0

            5

            62% 受講後に作成

            austinkimの他の講座

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

            似ている講座

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