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

システムソフトウェアで最も多く使われている、最新のリナックスカーネル(v6.1)の基本的なデバッグ機能と方法を、「デバッグを通じて学ぶリナックスカーネルの構造と原理」の著者が詳しく解説します。

難易度 初級

受講期間 無制限

Linux
Linux
linux-kernel
linux-kernel
Operating System
Operating System
debugging
debugging
ftrace
ftrace
Linux
Linux
linux-kernel
linux-kernel
Operating System
Operating System
debugging
debugging
ftrace
ftrace

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

4.6

5.0

anhae11

62% 受講後に作成

難しい内容なのに、分かりやすく教えてくださいます!

5.0

kech611961

32% 受講後に作成

良い仕事だ!

5.0

sunny75

100% 受講後に作成

2024/07/30/火 15:35 講義はよく聞きました。デバッグの説明 よろしくお願いします。デバッグ講義を聞かずに、他の講義をまず聞きながら、分析するログがどのように見えるかと言いましたが、やはり教えてくれたロードマップのように順番に講義が聞くのが良いことがわかりました。デバッグでlinuxカーネルを分析することができます。良い講義を作ってくれてありがとう。

受講後に得られること

  • 実際のプロジェクトにおいてデバッグが重要な理由と、実際のデバッグの手順

  • デバッグ能力を高める様々な方法と、実践プロジェクトで発生しうる問題のタイプ

  • printkとdump_stack()を活用してカーネルをデバッグする方法

  • printkを使用してデバイスドライバを設計し、デバッグパッチを作成する方法

  • Ftraceを活用する方法と設定方法

  • 様々なイベントのFtraceメッセージを通じたLinuxカーネルの主な動作原理

<お知らせ>

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

受講生500名突破(リナックスカーネルの構造と原理)を記念して、30%割引クーポンを発行します。ありがとうございます。先着100名様限定です。

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

今回の講義<リ눅스 커널의 구조와 원리: 디버깅 - Basic [저자 직강 1부-2]>は、ロードマップ'시스템 소프트웨어 개발자를 위한 Linux kernel - basic course'に含まれている講義です。

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

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

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


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

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

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

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

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

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

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

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

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

新入あるいはジュニア組み込みリナックスシステム開発者の現実

新入社員やジュニアレベルの組み込みLinuxシステム開発者は、問題を解決する過程で最も苦労します。その理由は何でしょうか?

1. デバッグ関連資料の不足

Web開発をはじめとする様々なソフトウェア分野では、デバッグのための開発環境が比較的整っています。また、入門者向けの講義や本も多く、デバッグ方法を学ぶ際に多くの試行錯誤を経験することはありません。しかし、リヌックスシステムソフトウェアの開発では、デバッグに関する資料はあるものの、入門者が消化するには難しい開発用文書がほとんどです。

2. デバッグに関する助けを得るのが難しい

Linuxシステムソフトウェア関連のプロジェクトで、デバッグはどのように行うのでしょうか?ほとんどの場合、カーネルログやメモリダンプを分析します。ログやダンプを正しく分析するには、どのような能力が求められるでしょうか?Linuxカーネルのソースコードを読んで理解したり、プロセスや割り込みといった動作原理を把握する能力が必要です。しかし、実戦プロジェクトでこのような能力を持つ先輩開発者は稀であり、運良くデバッグが得意な開発者がいたとしても、大抵は非常に多忙で、詳細かつ丁寧に説明してもらうのは難しいのが現実です。

3. デバッグを行う理由が分かりにくい

分野を問わず、ほとんどの人が問題解決能力を高めるための核心的な能力がデバッグであるという事実は知っています。しかし、就職活動中の学生はもちろん、ジュニアレベルのリナックスシステムソフトウェア開発者も、実戦プロジェクトでなぜデバッグを行うのか分からないケースが多いです。また、デバッグを上手に行うために何を準備すべきか分からず、もどかしさを感じています。しかし、実戦プロジェクトの進行中にバグや課題を割り当てられると、分析をどのように始めるべきかさえ分からず、試行錯誤を繰り返す可能性が高いです。結局、終わりのない残業につながり、自分がリナックスシステムソフトウェア分野に向いていないのではないかと自責することになります。

Linuxシステムソフトウェア開発者が最も高めたい開発能力とは?

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

そこで、私が執筆した'デバッグを通じて学ぶLinuxカーネルの構造と原理'の第3章「デバッグとコード学習」で、デバッグに関する内容を扱っています。この講義は'デバッグを通じて学ぶLinuxカーネルの構造と原理'の著者による直講義で、本の第3章の内容を扱います。 加えて、本では扱っていない実用的なデバッグ方法についても説明します。

このような内容を学びます

実戦プロジェクトにおいてデバッグが重要な理由と、実際のデバッグプロセスの詳細を詳しく説明します。

デバッグ能力を高めるための様々な方法と、実戦プロジェクトで発生しうる問題のタイプを紹介します。

実際のプロジェクトに最も近い事例を参考に、カーネルデバッグを行う過程を詳細に説明します。

printkとdump_stack()を活用してカーネルをデバッグする方法を詳細に説明します。関連するリファレンスコードも併せて解説します。

実際のラズベリーパイでカーネルログを確認し、分析する実習を行います。また、メモリダンプをCrash Utilityプログラムでロードしてカーネルログを開き、詳細に分析します。

printkを使用してデバイスドライバを設計し、デバッグパッチを作成する方法を詳細に説明します。

Linuxカーネルが提供する核心的なデバッグ機能であるFtraceについて説明します。特に、Ftraceを活用する方法と設定方法を詳細に説明します。

Ftraceメッセージを詳細に説明します。特に、関数の呼び出しフローを把握できるstack traceを詳細に分析します。

Ftraceメッセージを通じてカーネルソースを分析する方法と、さまざまなFtraceイベントについて説明します。

ラズベリーパイで直接Ftraceを設定しながら、Ftraceの設定方法について説明します。また、Ftraceログを抽出した後、さまざまなイベントのFtraceメッセージを分析します。


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

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

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

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

  • 'プログラマーズ・デブコース:Linuxシステムおよびカーネルエキスパート' メイン講師

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

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


国内で誰よりも「Linuxカーネルのデバッグ機能」と「トラブルシューティング方法」を分かりやすく説明できる教育者であると、自信を持って申し上げます。

受講前のご注意事項

実習環境

  • OSおよびバージョン(OS): Raspberry Pi (Raspbian), Linuxカーネル v6.1

事前知識および注意事項

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

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

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

こんな方に
おすすめです

学習対象は
誰でしょう?

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

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

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

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

  • Linuxシステムソフトウェア開発者として、デバッグ能力を高めたい開発者

  • Linuxシステムソフトウェアに関連する問題解決プロセスを知りたい開発者

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

  • C言語

  • コンピュータ構成論

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

こんにちは
austinkimです。

6,473

受講生

254

受講レビュー

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: 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

もっと見る

カリキュラム

全体

34件 ∙ (4時間 35分)

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

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

受講レビュー

全体

17件

4.6

17件の受講レビュー

  • kech6119610648님의 프로필 이미지
    kech6119610648

    受講レビュー 3

    平均評価 5.0

    5

    32% 受講後に作成

    良い仕事だ!

    • aceoftop1975님의 프로필 이미지
      aceoftop1975

      受講レビュー 121

      平均評価 5.0

      5

      100% 受講後に作成

      2024/07/30/火 15:35 講義はよく聞きました。デバッグの説明 よろしくお願いします。デバッグ講義を聞かずに、他の講義をまず聞きながら、分析するログがどのように見えるかと言いましたが、やはり教えてくれたロードマップのように順番に講義が聞くのが良いことがわかりました。デバッグでlinuxカーネルを分析することができます。良い講義を作ってくれてありがとう。

      • anhae119607님의 프로필 이미지
        anhae119607

        受講レビュー 1

        平均評価 5.0

        5

        62% 受講後に作成

        難しい内容なのに、分かりやすく教えてくださいます!

        • euna90166345님의 프로필 이미지
          euna90166345

          受講レビュー 1

          平均評価 5.0

          5

          32% 受講後に作成

          • seonulee8829님의 프로필 이미지
            seonulee8829

            受講レビュー 1

            平均評価 5.0

            5

            62% 受講後に作成

            austinkimの他の講座

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

            似ている講座

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