Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
BEST
Security & Network

/

System

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

システムソフトウェアで最もよく使われる、最新リナックスカーネル(v6.1)の基本的なデバッグ機能と方法を、「디버깅을 통해 배우는 리눅스 커널의 구조와 원리」の著者が適切に説明します。

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

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

こんなことが学べます

  • 実践プロジェクトでデバッグが重要な理由と、実際のデバッグ過程

  • デバッグ能力を高める様々な方法と実戦プロジェクトで発生しうるイシューの類型

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

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

  • Ftraceの活用方法と設定方法

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

<お知らせ>

1.500人突破30%割引クーポン発行

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

2.ロードマップ案内🎯

今回の講義<Linuxカーネルの構造と原理: デバッグ - Basic [著者直講 1部-2]> 「システムソフトウェア開発者向けのLinuxカーネル - basic course」に含まれる講義。

体系的にLinuxカーネルを構成する主な機能を学びたい方は、ロードマップ(全講義の30%割引)を活用してください。

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

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


ITデバイスで最も一般的なオペレーティングシステムは何ですか?それはLinuxオペレーティングシステムです。スマートフォン、デジタルテレビ、航空エンターテイメントシステム、サーバーに使用されています。システム半導体メーカーで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システム開発者は、問題を解決する過程で最も苦労しています。その理由は何ですか?

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

Web開発を含むさまざまなソフトウェア分野では、デバッグのための開発環境が比較的充実しています。また、入門者のための講義や本も多く、デバッグ方法を学ぶときに多くの試行錯誤を受けることはありません。しかし、Linuxシステムソフトウェア開発ではデバッグに関する資料はありますが、入門者が消化しにくい開発用文書がほとんどです。

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

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

3. なぜデバッグをするのか分からない

分野を問わず、ほとんどの問題解決能力を育成するための重要な能力がデバッグであるという事実は知っています。しかし、就労生はもちろん、ジュニアLinuxシステムソフトウェアも本番プロジェクトでデバッグをなぜするのか分からないことが多いです。また、デバッグをうまく行うために何を準備する必要があるのか分かりにくく、苦しくなります。しかし、実戦プロジェクトを進めてバグや問題を割り当てられれば、分析をどのように始めるのか分からず試行錯誤を繰り返す可能性が高いです。結局、絶え間ない夜勤につながり、自分がLinuxシステムソフトウェア分野に適性が不足すると自ら自責をするようになります。

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

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

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

このようなことを学びます。

本番プロジェクトでデバッグが重要な理由と実際のデバッグを行うプロセスについて詳しく説明します。

デバッグ能力を高めるさまざまな方法と、本番プロジェクトに出てくる問題の種類を紹介します。

本番プロジェクトと最も類似したケースを参考にカーネルデバッグを行う過程を詳しく説明します。

printk と dump_stack() を活用してカーネルをデバッグする方法を詳しく説明します。関連する参照コードも一緒に説明します。

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

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

Linuxカーネルが提供するコアデバッグ機能であるFtraceについて説明します。具体的には、Ftraceの活用方法と設定方法について詳しく説明します。

Ftrace メッセージについて詳しく説明します。特に、関数の呼び出しフローを把握できるスタックトレースを詳細に分析します。

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

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


本の執筆/講義の経歴に基づいて
誰よりも深く詳細に!

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

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

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

  • 「プログラマスデブコース: Linuxシステムとカーネルの専門家」メインインストラクター

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

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


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

受講前の注意

練習環境

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

選手の知識と注意事項

  • おおよそのLinuxがどのように動作するかを知っておくと良いでしょう。

  • オペレーティングシステムやコンピュータの構造について知っていれば、より簡単にクラスを聴くことができます。

  • Linuxカーネルに関する深いプレーヤーの知識は必要ありません。

こんな方に
おすすめです

学習対象は
誰でしょう?

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

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

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

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

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

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

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

  • C言語

  • コンピュータ構造

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

こんにちは
です。

5,437

受講生

148

受講レビュー

84

回答

4.9

講座評価

21

講座

글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (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

カリキュラム

全体

34件 ∙ (4時間 35分)

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

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

受講レビュー

全体

11件

4.8

11件の受講レビュー

  • 박규동님의 프로필 이미지
    박규동

    受講レビュー 1

    平均評価 5.0

    5

    62% 受講後に作成

    • 염재영님의 프로필 이미지
      염재영

      受講レビュー 2

      平均評価 5.0

      5

      100% 受講後に作成

      • 이현진님의 프로필 이미지
        이현진

        受講レビュー 12

        平均評価 5.0

        5

        32% 受講後に作成

        • anhae11님의 프로필 이미지
          anhae11

          受講レビュー 1

          平均評価 5.0

          5

          62% 受講後に作成

          어려운 내용인데 쉽게 가르쳐주십니다!

          • 홍승석님의 프로필 이미지
            홍승석

            受講レビュー 2

            平均評価 3.0

            3

            97% 受講後に作成

            ¥4,034

            austinkimの他の講座

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

            似ている講座

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