강의

멘토링

커뮤니티

BEST
Security & Network

/

System

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

システムソフトウェアで最もよく使われる、最新のLinuxカーネル(v6.1)の最も進んだカーネルメモリダンプデバッグスキルを、「デバッグを通じて学ぶLinuxカーネルの構造と原理」の著者が正しく説明します。

  • austinkim
저자 직강
리눅스커널
임베디드리눅스
trace32
Linux
linux-kernel
Operating System
debugging

受講後に得られること

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

  • 実践プロジェクトを開発する過程で直面する可能性のある多様なケーススタディ

  • ブート時 ftrace トレーサー

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

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

<お知らせ>

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

受講生200名突破(Linuxカーネルの構造と原理)を記念して30%割引クーポンを発行します。ありがとうございます。先着200名です。

2. ロードマップ案内 🎯

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

体系的にLinuxカーネルを構成する主要機能を学びたい方は、ロードマップ(全講義30%割引)を活用されると良いでしょう。

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

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


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

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

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

✅ システム半導体、電気自動車分野(自律走行、インフォテインメント)を含むLinuxシステムソフトウェア分野でのジュニア開発者

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

✅ Linuxシステムソフトウェア分野(メモリ、ファイルシステム、オペレーティングシステム)の大学院進学希望者

✅ Linuxシステムソフトウェア分野にキャリア転換を目指す他分野の開発者

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

システム半導体、電気自動車分野を含む様々な分野に配置されているLinuxシステムソフトウェア開発者の皆さんは、Linuxカーネルをよく知ってこそ開発能力を向上させることができるという事実は知っています。しかし、Linuxカーネルをどのように学ぶべきか、そして何よりも実務でどのような内容をよく知っておくべきかを把握するのが難しい状況です。

Linuxシステムソフトウェア開発者が最も伸ばしたい開発能力は?

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

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

講義の差別化ポイント

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

1. 実戦開発に最も近いデバッグ方法を総網羅

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

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

最近、システム半導体業界が注目を集めています。グローバルシステム半導体企業の中で最高の技術力を持つQualcomm 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カーネルメモリダンプ提供

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

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

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

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

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

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

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

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

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

  • LG電子「Linuxカーネル」及び「Armv8アーキテクチャ」社内講師(国内及び海外開発者含む) - (2020年〜2024年)


国内で誰よりもLinuxカーネルを構成する主要機能をよく説明できる教育者だと自信を持って申し上げることができます。

受講前の参考事項

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

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

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

  • この講義のTRACE32教育用プログラムを使用していて質問事項があれば必ず教育者に質問してください。

実習環境と提供される講義資料

  • オペレーティングシステムおよびバージョン(OS):Raspberry Pi(Raspbian)、Linuxカーネル v6.1

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

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


前提知識および注意事項

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

  • 「Linuxカーネルの構造と原理:デバッグ - Basic [著者直講 1部-2]」の講義をできるだけ先に受講してからいらしていただけると良いです。

  • オペレーティングシステムやコンピュータアーキテクチャについて知っていれば、より楽に授業を受けることができます。

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

こんな方に
おすすめです

学習対象は
誰でしょう?

  • システム半導体、電気自動車分野(自動運転、インフォテインメント)を含むシステムソフトウェア分野でスキルを向上させたいジュニア開発者

  • システム半導体、電気自動車分野といったシステムソフトウェア開発をしたい就活生

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

  • システムソフトウェア分野へキャリア転換を考えている他分野のエンジニア

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

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

  • C言語

  • コンピュータ構造

こんにちは
です。

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

カリキュラム

全体

42件 ∙ (5時間 39分)

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

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

受講レビュー

全体

12件

5.0

12件の受講レビュー

  • aceoftop1975님의 프로필 이미지
    aceoftop1975

    受講レビュー 112

    平均評価 5.0

    5

    100% 受講後に作成

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

    • heecheolsong님의 프로필 이미지
      heecheolsong

      受講レビュー 4

      平均評価 5.0

      5

      31% 受講後に作成

      • redkyo008975님의 프로필 이미지
        redkyo008975

        受講レビュー 4

        平均評価 5.0

        5

        100% 受講後に作成

        • kdpark5057님의 프로필 이미지
          kdpark5057

          受講レビュー 2

          平均評価 5.0

          5

          100% 受講後に作成

          • ioniakim2638님의 프로필 이미지
            ioniakim2638

            受講レビュー 9

            平均評価 4.9

            5

            100% 受講後に作成

            ¥6,881

            austinkimの他の講座

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

            似ている講座

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