
システムソフトウェア開発のためのArmアーキテクチャの構造と原理 - 1部 著者直講 (2024年版)
austinkim
システムソフトウェアの基本中の基本、最新Armアーキテクチャ(Armv8-A、Armv7-A)の核心を「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」の著者がしっかりと解説します!
初級
ARM Architecture, cortex-a, Embedded
システムソフトウェアで最も多く使われている、最新のリナックスカーネル(v6.1)の基本的なデバッグ機能と方法を、「デバッグを通じて学ぶリナックスカーネルの構造と原理」の著者が詳しく解説します。
受講生 436名
難易度 初級
受講期間 無制限


学習した受講者のレビュー
5.0
anhae11
難しい内容なのに、分かりやすく教えてくださいます!
5.0
kech611961
良い仕事だ!
5.0
sunny75
2024/07/30/火 15:35 講義はよく聞きました。デバッグの説明 よろしくお願いします。デバッグ講義を聞かずに、他の講義をまず聞きながら、分析するログがどのように見えるかと言いましたが、やはり教えてくれたロードマップのように順番に講義が聞くのが良いことがわかりました。デバッグでlinuxカーネルを分析することができます。良い講義を作ってくれてありがとう。
実際のプロジェクトにおいてデバッグが重要な理由と、実際のデバッグの手順
デバッグ能力を高める様々な方法と、実践プロジェクトで発生しうる問題のタイプ
printkとdump_stack()を活用してカーネルをデバッグする方法
printkを使用してデバイスドライバを設計し、デバッグパッチを作成する方法
Ftraceを活用する方法と設定方法
様々なイベントのFtraceメッセージを通じたLinuxカーネルの主な動作原理
受講生500名突破(リナックスカーネルの構造と原理)を記念して、30%割引クーポンを発行します。ありがとうございます。先着100名様限定です。
30%割引クーポンリンク : https://inf.run/pWjae
今回の講義<リ눅스 커널의 구조와 원리: 디버깅 - Basic [저자 직강 1부-2]>は、ロードマップ'시스템 소프트웨어 개발자를 위한 Linux kernel - basic course'に含まれている講義です。

体系的にリヌックスカーネルを構成する主要機能を学びたい方は、ロードマップ(全講義30%割引)を活用することをお勧めします。).
IT機器で最も多く使われているオペレーティングシステムは何でしょうか? それはLinuxオペレーティングシステムです。スマートフォン、デジタルテレビ、航空エンターテインメントシステム、およびサーバーで使用されています。システム半導体メーカーでは、Linux(Linuxデバイスドライバ)を活用して、自社で設計したハードウェアを制御しています。また、電気自動車(Automotive)を構成するさまざまな部品(インフォテインメント、自動運転、テレマティクス)にもLinuxが多く活用されています。
Linuxオペレーティングシステムの核心はLinuxカーネルです。Armv8-Aアーキテクチャとともに、現在のシステムソフトウェア業界で最も必要とされる基礎知識が求められる内容がLinuxカーネルであるとも言えます。
✅ システム半導体、電気自動車分野(自動運転、インフォテインメント)を含むリ눅스システムソフトウェア分野のジュニア開発者
✅ システム半導体、電気自動車分野などのリ눅スシステムソフトウェア開発分野で働きたい就職準備生
✅ リナックスシステムソフトウェア分野(メモリ、ファイルシステム、オペレーティングシステム)の大学院進学希望者 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カーネルの構造と原理'の第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言語
コンピュータ構成論
オペレーティングシステム
キャリア認証
6,693
受講生
276
受講レビュー
105
回答
4.9
講座評価
23
講座
グローバル著者 & リナックスシステムソフトウェア開発者 (Arm, RISC-V アーキテクチャ)
国内のシステムソフトウェア分野において前例のない!「Armアーキテクチャ(Armv8-A, Armv7-A)」と「Linuxカーネル」の本を執筆した著者(2冊とも大韓民国学術院の優秀図書に選定)であり、国内初めて海外出版社(Packt)を通じて「Reverse Engineering Armv8-A Systems」の本(英語)を執筆したグローバル著者です。何よりも最新のシステムソフトウェアトレンド(電気自動車、システム半導体-システムソフトウェア)を最も熟知している現役の開発者です。また、システムソフトウェア分野で最も活発に知識の普及活動を行っている教育者でもあります。"Reverse Engineering Armv8-A Systems" (bằng tiếng Anh) thông qua nhà xuất bản nước ngoài (Packt). Trên hết, ông là một nhà phát triển đang làm việc thực tế, người nắm rõ nhất các xu hướng phần mềm hệ thống mới nhất (xe điện, bán dẫn hệ thống - phần mềm hệ thống). Ngoài ra, ông còn là một nhà giáo dục hoạt động tích cực nhất trong việc truyền bá kiến thức trong lĩnh vực phần mềm hệ thống.
Professional 知識共有者およびコンサルタント
LG電子 Linuxカーネルオープンソースチーム勤務(〜2026年5月)
'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' 著書(英語) 著者、(Packt 出版社)
『システムソフトウェア開発のためのArmアーキテクチャの構造と原理』(2024年、大韓民国学術院 優秀図書賞)著者))
『デバッグを通じて学ぶLinuxカーネルの構造と原理』 (2021年、大韓民国学術院 優秀学術図書賞) 著者)
'Programmers Dev Course: リナックスシステムおよびカーネル専門家' メイン講師
韓国国内で誰よりもリヌックスカーネルとArmアーキテクチャ(Armv8-A, Armv7-A)を分かりやすく説明できる教育者であると、自信を持って申し上げます。
講義に関するお問い合わせ : austindh.kim@gmail.com
'システムソフトウェア開発者のための Arm - basic course'
'システムソフトウェア開発者のためのArm - advanced course'
システムソフトウェア開発者のための Linux kernel - basic course
全体
34件 ∙ (4時間 35分)
講座資料(こうぎしりょう):
全体
23件
4.7
23件の受講レビュー
受講レビュー 130
∙
平均評価 5.0
受講レビュー 1
∙
平均評価 5.0
受講レビュー 3
∙
平均評価 5.0
受講レビュー 2
∙
平均評価 5.0
受講レビュー 10
∙
平均評価 5.0
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!