인프런 영문 브랜드 로고
인프런 영문 브랜드 로고
Security & Network

/

System

Linuxカーネルの構造と原理:デバッグ - Advanced本番

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

trace32
Linux
linux-kernel
Operating System
debugging

中級者のための講座です。

こんなことが学べます

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

  • 実戦プロジェクトの開発過程で出会える様々なケーススタディ

  • boot-time ftrace tracer

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

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

<お知らせ>

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

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

  • クーポン: 17873-9e03bdec4cc4

2. ロードマップ案内🎯

今回の講義<Linuxカーネルの構造と原理:デバッグ 「システムソフトウェア開発者向けの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システムソフトウェア開発者が最も学びたい実践スキルは何ですか?まさにデバッグスキルです。デバッグは問題解決能力に比例するので、デバッグ能力を増やしたいです。 Linuxカーネルに関するブログや資料はたくさんありますが、最新のデバッグ技術を活用して問題を体系的に解決する方法はほとんど扱いません。

それで、私が書いた「デバッグを通して学ぶLinuxカーネルの構造と原理」の第3章では、「デバッグとコード学習」のデバッグについて説明しています。

講義の差別化ポイント

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

1.本番開発に最も近いデバッグ方法総網羅

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

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

近年、システム半導体業界が浮上している。グローバルシステム半導体メーカーの中で最高の技術力を持つQualcomm LinuxカーネルBSP開発者はどのようにLinuxカーネルドライバをデバッグしますか?

今回の講義でこの内容を取り上げます。 LinuxカーネルメモリダンプをTRACE32シミュレータを使用してカーネルのデータ構造をデバッグしながら、クラッシュユーティリティでメモリダンプをロードしてカーネルの主な動作を分析します。

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

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

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

Linuxシステムソフトウェアの開発全体に、TRACE32デバッガとプログラムは広く使用されています。 TRACE32 プログラムは、ライセンスが必要な場合に実行できます。この講義を受講すると、教育用TRACE32シミュレータプログラムを「インフラストラクチャ講義資料」からダウンロードし、直接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カーネルダンプをデバッグしながら、関連機能の詳細な動作原理を説明します。


実戦プロジェクトを開発する過程で出会える様々なケーススタディを紹介します。関連カーネルログとカーネルの動作原理を詳細に分析します。また、デバッグで問題を解決する方法についても説明します。


本番プロジェクトの開発中に遭遇する可能性があるスタック汚染とメモリーリック問題のケーススタディについて説明します。

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

本で紹介したTRACE32の主な命令(メモリアドレスキャスト)について説明します。直接TRACE32プログラムで関連命令を使用する方法を詳細に説明します。

システムコールテーブルのシンボル情報を記述し、TRACE32コマンド(dv%y.ll sys_call_table)を使用してシステムコールハンドラ関数情報を確認します。次のレッスンでは、TRACE32の主要な命令とともに、Linuxカーネルのコアデータ構造も説明します。

本番プロジェクトの進行中に利用される実用的な命令(%lオプション:レジスタ情報の出力)について詳しく説明します。

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

今回の講義では、Linuxシステムソフトウェア業界で最も先進的な(Advanced)デバッグ方式である -グローバルトップレベルシステム半導体メーカーである、クアルコムLinuxカーネル開発者がデバッグする- Linuxカーネルメモリダンプをデバッグする方法を紹介します。 TRACE32やクラッシュユーティリティなどのデバッグプログラムを活用して、「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):ラズベリーパイ(ラズビアン)、Linuxカーネルv6.1

  • TRACE32教育用プログラムおよび設置ガイド文書(講義)

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


選手の知識と注意事項

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

  • 「Linux カーネルの構造と原理: デバッグ - Basic [著者直講 1部-2]」 講義をなるべく先に聞いてきてください。

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

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

こんな方に
おすすめです!

学習対象は
誰でしょう?

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

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

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

  • システムソフトウェア分野にキャリアを切り替えたい他の分野の開発者

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

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

  • C言語

  • コンピュータ構造

こんにちは
です。

4,734

受講生

89

受講レビュー

75

回答

4.9

講座評価

19

講座

국내 시스템 소프트웨어 분야에서 전무후무한! 'Arm 아키텍처(Armv8-A, Armv7-A)'와 '리눅스 커널' 책을 쓴 저자(2권의 책 모두 대한민국 학술원 우수도서에 선정)이며, 최신 시스템 소프트웨어 트렌드(전기자동차, 시스템 반도체- 시스템 소프트웨어)를 가장 잘 알고 있는 현업 개발자입니다. 또한 시스템 소프트웨어 분야에서 가장 지식 전파 활동을 활발하게 하는 교육자입니다. 

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리'(2024년, 대한민국 학술원 우수도서상) 저자

  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사

  • 2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]

  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~현재)

국내에서 어느 누구보다 리눅스 커널과 Arm 아키텍처(Armv8-A, Armv7-A)를 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다.

주요 로드맵 🎯

'시스템 소프트웨어 개발자를 위한 Arm - basic course'

'시스템 소프트웨어 개발자를 위한 Arm - advanced course'

 

시스템 소프트웨어 개발자를 위한 Linux kernel - basic course

체계적으로 Arm 아키텍처(Armv8-A, Armv7-A)와 리눅스 커널을 배우시려는 분은 로드맵(전체 강의 30% 할인)을 활용하시면 좋습니다.

カリキュラム

全体

42件 ∙ (5時間 39分)

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

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

受講レビュー

まだ十分な評価を受けていない講座です。
みんなに役立つ受講レビューを書いてください!