inflearn logo
知識共有
inflearn logo

Linuxカーネルの構造と原理:プロセス [著者直講 第1部-4]

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

難易度 初級

受講期間 無制限

trace32
trace32
Linux
Linux
linux-kernel
linux-kernel
Operating System
Operating System
Computer Architecture
Computer Architecture
trace32
trace32
Linux
Linux
linux-kernel
linux-kernel
Operating System
Operating System
Computer Architecture
Computer Architecture

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

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

5.0

5.0

염재영

97% 受講後に作成

詳細で復習レベルの講義内容がとても良いと思います!😊 実際のBSP業務を見ながらカーネルログ分析やTRACE32を利用したCRASH問題分析及び追跡を多くするのですが、そういうことを考えてみた時に良い講義だと思います!

5.0

김건우

30% 受講後に作成

いいね

5.0

sunny75

100% 受講後に作成

2024/07/13/土 21:07 linuxの講義は本当によく聞きました。 ありがとうございます。

受講後に得られること

  • Linuxカーネルにおけるプロセスの役割

  • プロセスの基本的な動作方式

  • プロセスのスタックの構造

  • TRACE32でプロセスの多様な実行フローをデバッグする方法

  • マルチコアシステム構造におけるプロセスの動作方式

<お知らせ>

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

Linuxカーネル講義の受講生500名突破を記念して、30%割引クーポンを発行いたします。ありがとうございます。先着100名様限定です。

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

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

体系的にLinuxカーネルを構成する主要機能を学びたい方は、ロードマップ(全講座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

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

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

入門者がリ눅스カーネルで一番最初に学ぶプロセス

入門者はリヌックスカーネルを学ぶ際、どのトピックから学ぶのでしょうか?ほとんどの場合、プロセスを学びます。'リヌックスカーネル'の本はプロセスから始まります。また、プロセスはファイルシステムやメモリシステムと並んで、必ず知っておくべきトピックだとも言われています。

入門者がプロセスの学習を始めると、どのような感じでしょうか? プロセスは必ず知っておくべき内容だと思われがちですが、すぐに飽きてしまいます。その理由は何でしょうか? 実践プロジェクトですぐに適用できるような内容がないからだと思います。また、プロセスは漠然とした内容が多く、退屈に感じてしまいます。結局、一生懸命勉強しても、学んだ内容が長く記憶に残りません。

そこで、私が執筆した書籍「Linuxカーネルの構造と原理」では、読者の皆様がftraceデバッグの実習を通じて、さまざまな方法でプロセスを学べるように構成しました。

講義の差別化ポイント

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

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

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

2. プロセスの基本概念を分かりやすく詳細に説明

Linuxカーネルを学ぶ際、カーネルソースを分析します。しかし、カーネルソースを分析する過程で多くの障害に直面します。該当する関数がどのような流れで呼び出されるのか、分析しているルーチンのデータ構造が実際にどのような値なのかを確認するのは困難です。本講義では、これらすべての障害を解消します。

プロセスに関連するLinuxカーネルのソースコードを、TRACE32プログラムのコールスタックや詳細なデータ構造とともに分析します。独学でLinuxカーネルを学ぶよりも、はるかに効率的にプロセスについて学ぶことができます。また、メモリダンプから抽出したftraceメッセージまで分析するため、プロセスの動作原理を多角的に把握することができます。

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

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

今回の講義では、この内容を扱います。LinuxカーネルのメモリダンプをTRACE32シミュレータを使用して、プロセスに関連するカーネルのデータ構造をデバッグしながら、crash-utilityでメモリダンプをロードしてカーネルの主要な動作を分析します。特に、プロセスのスタックが破損したり、スタックオーバーフローが発生したりした際のデバッグ方法は、トップクラスのファブレス企業の開発者でもあまり知らない内容です。

こんな内容を学びます

Linuxシステムの3大リソースの一つであるプロセスについて説明し、なぜプロセスを学ぶ必要があるのかを解説します。プロセスの基本概念について分かりやすく紹介します。

プロセスを実行する空間について説明し、プロセスを知っておくべき理由を説明します。

プロセスンの基本動作をCrash-UtilityとTRACE32デバッグプログラムを使用して分析します。

プロセスの属性情報を保存および管理するtask_struct構造体を、TRACE32とCrash-Utilityデバッグプログラムを使用して分析します。

リナックスカーネルの様々な機能やサブシステムで多用されるcurrentマクロについて説明します。カーネルソースコードを

アセンブリコードレベルまで詳細に分析します。

マルチコアシステムの構造において、プロセスが実行される流れを説明します。これに関連するデータ構造についても説明します。

TRACE32プログラムを使用して、プロセスが生成または終了される動作を詳細にデバッグします。プロセスのデータ構造と関数呼び出しのフローを詳細に説明します。(受講生の方々は、本講義にアップロードされたTRACE32プログラムとカーネルメモリダンプをダウンロードして、実際に手を動かしながら実習することができます。)

TRACE32プログラムを使用して、割り込みハンドラが実行されるプロセスの割り込みコンテキスト情報について詳細に分析します。Crash-utilityプログラムから抽出したftraceメッセージを分析しながら、割り込みコンテキストについて説明します。

ダンプのデータ構造とコールスタックを、リヌックスカーネルのソースコードと共に分析します。


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

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

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

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

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

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

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

  • 'システムソフトウェア開発のためのArmアーキテクチャの構造と原理'(2023年) 著者

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

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

  • LG電子「リ눅스 커널(Linuxカーネル)」および「Armv8 아키텍처(Armv8アーキテクチャ)」社内講師(国内および海外開発者を含む) - (2020年〜2024年)


国内の誰よりも、リ눅스カーネルを構成する主要な機能を分かりやすく説明できる教育者であると、自信を持って申し上げます。

受講前のご参考事項

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

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

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

  • 今回の講義のTRACE32教育用プログラムを使用中に不明な点があれば、必ず教育担当者に質問してください。

実習環境および提供される講義資料

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

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

  • 8個のリナックスカーネルメモリダンプ(vmcore)

前提知識および注意事項

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

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

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

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

こんな方に
おすすめです

学習対象は
誰でしょう?

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

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

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

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

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

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

  • コンピュータ構成論

  • C言語

こんにちは
austinkimです。

6,316

受講生

241

受講レビュー

96

回答

4.9

講座評価

22

講座

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

もっと見る

カリキュラム

全体

71件 ∙ (9時間 21分)

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

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

受講レビュー

全体

9件

5.0

9件の受講レビュー

  • wodud0432886님의 프로필 이미지
    wodud0432886

    受講レビュー 3

    平均評価 5.0

    5

    97% 受講後に作成

    詳細で復習レベルの講義内容がとても良いと思います!😊 実際のBSP業務を見ながらカーネルログ分析やTRACE32を利用したCRASH問題分析及び追跡を多くするのですが、そういうことを考えてみた時に良い講義だと思います!

    • redkyo008975님의 프로필 이미지
      redkyo008975

      受講レビュー 4

      平均評価 5.0

      5

      100% 受講後に作成

      • ioniakim2638님의 프로필 이미지
        ioniakim2638

        受講レビュー 9

        平均評価 4.9

        5

        100% 受講後に作成

        • heecheolsong님의 프로필 이미지
          heecheolsong

          受講レビュー 21

          平均評価 5.0

          5

          100% 受講後に作成

          • nexgedu18614님의 프로필 이미지
            nexgedu18614

            受講レビュー 1

            平均評価 5.0

            5

            30% 受講後に作成

            austinkimの他の講座

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

            似ている講座

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

            ¥7,028