Learning RISC-V Architecture Through Debugging - Part 2
austinkim
Explains the core concepts and practical tips of RISC-V, the latest open-source based CPU architecture, simply and in detail.
初級
cpu-architecture, cpu, riscv
Armアーキテクチャ(Armv8-A)とLinuxカーネルインターフェースの核心を、「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」の著者が的確に捉えます!
受講生 119名
Armアーキテクチャ(Armv8-A)を構成する主要な動作方式を把握できます。
ArmアーキテクチャとLinuxカーネルのインターフェース(プロセス、割り込みハンドリング、システムコール、メモリ管理)を理解できます。
Linuxカーネルを構成する主要な機能であるプロセス、割り込みハンドリング、システムコール、メモリ管理技術を学ぶことができます。
レジスタ、例外処理、アセンブリ命令、トラストゾーン、そしてメモリ管理方式を、Linuxカーネルに存在するソースコードから分析することができます。
受講生300人突破(1、2部)を記念して30%割引クーポンを発行します。ありがとうございます。先着順200名です。
30%割引クーポンリンク: https://inf.run/rjtAk
今回の講義
体系的にArmアーキテクチャ(Armv8-A、Armv7-A)を学びたい方はロードマップ(全体講義の30%割引)を活用してください。ちなみに、Armアーキテクチャロードマップ(作者直江全体)はBasic CourseとAdvanced Course 2つで構成されています。
スマートフォンはもちろん、AI用SoCシステム半導体、電気自動車Automotive(自動運転、インフォテインメント)、クラウドサーバーやMacBookで使用されるArmプロセッサは、すべてArmv8-Aベースの64ビットCortex-Aプロセッサ(Cortex-A53、Cortex-A57、Cortex-A72など)です。現在、システムソフトウェア業界で最も必要な基盤知識が求められる内容がArmv8-Aアーキテクチャと見なすことができます。
Armプロセッサとともに、 Linuxカーネルはスマートフォンを含むクラウドサーバー、そして電気自動車システムで使用されています。また、システム半導体業界(ペプリス)のシステムソフトウェア開発者は、ほとんどの場合、LinuxカーネルまたはLinuxデバイスドライバを使用して自分が設計したチップを制御するドライバプログラミングを行います。
もう一度まとめると! Armプロセッサ上で最も実行されているオペレーティングシステムのカーネルは、まさにLinuxカーネルです。
1⃣まず、ArmアーキテクチャとLinuxカーネルのインタフェース(アセンブリ命令解析)をよく知ることで、Armアーキテクチャの詳細な動作をよりよく理解できます。理論で学んだ内容が実装されたソースコードを分析すれば、学んだ内容を内在化できるからです。
2⃣第二に、Linuxカーネルを構成するコア機能であるプロセス、割り込みハンドリング、システムコール、メモリ管理技術は、CPUアーキテクチャのFeatureを活用して実装されました。 Arm アーキテクチャと Linux カーネルのインタフェースをよく知ることで、Linux カーネルの詳細な動作を深く把握できます。
3⃣3番目に、レジスタ、アクセプションハンドリング、アセンブリ命令、信頼ゾーン、およびメモリ管理方法をLinuxカーネルに存在するソースコードで分析すると、Armアーキテクチャの成果とLinuxカーネルを一緒に学ぶことができます。
4⃣4番目に、ArmプロセッサとLinuxカーネルは、システムソフトウェア業界の90%以上の製品で使用されています。 LinuxカーネルがArmプロセッサ上でどのように動作するのかを知ることで、学んだことをうまく活用できます。
最近開発されたほとんどのシステムソフトウェアは、ArmプロセッサとLinux環境で開発されているので、これに関する知識は必ず知っておく必要があります。
「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」 著者 直講を聞いた開発者の方は疑わしいかもしれません。今回のArmアーキテクチャ講師が突然Linuxカーネルについて話をするからです。しかし、私はArmアーキテクチャだけでなく、Linuxカーネルの本も書いた著者です。 Linuxカーネルに関する主な履歴は次のとおりです。
「デバッグを通じて学ぶLinuxカーネルの構造と原理」(2021年、大韓民国学術院優秀図書上)著者
「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」( 2024年、韓国学術院優秀図書上)著者
「プログラマスデブコース: Linuxシステムとカーネルの専門家」メインインストラクター
2022年6月、韓国コンピュータ総合学術大会(KCC2022) - チュートリアル発表
[ ftraceを使ってLinuxカーネルを征服する]
LG電子「Linuxカーネル」社内講師(国内および海外開発者を含む) - (2020年~現在)
今回の講師である私が誰よりも「ArmアーキテクチャとLinuxカーネルのインターフェース」をよく説明できると自信があります。
✅システム半導体(ペプリス)、電気自動車分野(自律走行、インフォテインメント)を含むシステムSW分野の就労生およびジュニア開発者
✅ Arm アーキテクチャの機能を活用して、実務でどのようにデバッグするかを知りたいシステムソフトウェア開発者
✅システムソフトウェア分野(メモリ、ファイルシステム、オペレーティングシステム)の大学院進学を目指す大学生
Armアーキテクチャの細かい動作原理を把握
Arm アーキテクチャの機能を活用して、Linux カーネルの主要な Subsystem がどのように実装されているかを把握
Linuxカーネルのコンテキストスケジューリングの実装方法を理解する
LinuxカーネルのシステムコールとExceptionハンドラの詳細な動作方法を理解する
Linuxカーネルのメモリシステムの実装方法を特定する
Linuxに慣れていない受講生のために、Linuxシステムの全体的な構造を紹介します。 Linuxカーネルで重要に扱う3つのリソースについて詳しく説明します。
Linuxカーネルのコアであるプロセス(ユーザースペースとカーネルスペース、ユーザープロセス、カーネルスレッド)について説明します。
Armアーキテクチャに依存するプロセスのデータ構造を説明します。具体的には、コンテキストスイッチに関連するレジスタを中心に動作原理を詳細に扱う。
Armアーキテクチャに依存するコンテキストスイッチングの動作をアセンブリ命令解析で詳細に説明します。
割り込み処理の流れを大きな図で説明します。割り込みの処理方法については、「Armv8アーキテクチャのアクセプションベクトルテーブル」の分析で詳しく説明します。
割り込みが処理されるフローは、2つのシナリオ(ユーザーアプリケーションの実行中に割り込みが発生し、カーネルコードが実行されているときに割り込みが発生した場合)に基づいて説明されます。次に、アクセプションハンドラコード(アセンブリコード)を詳細にレビューします。
システムコールの完全な実行フローをレビューし、システムコール関連の取り込みベクトルテーブルの内容を詳細に説明する。
ユーザー空間でシステムコールを引き起こしたときに実行されるSVC命令ルーチンを分析します。次に、システムコールが発生する過程でカーネル空間で実行されるアクセプションハンドラルーチンを詳細に説明する。
システムコールが発生した(SVC命令の実行)の後に、カーネル空間でシステムコールハンドラが呼び出されるプロセスに処理されるカーネルコアAPIについて説明します。また、システムコールハンドラのコアシンボル情報まで詳細に説明します。
Linuxカーネルでメモリ管理を行う主な機能を紹介し、Armアーキテクチャの観点から知る必要があるメモリ管理関連の機能について説明します。
Linuxカーネルで仮想アドレスの範囲を設定するコンフィグを紹介します。次に、Linuxカーネルでマルチレベルページテーブルに対応するインタフェースについて説明します。
Linuxカーネルでサポートされているインタフェースを使用して処理されるページルックアップの動作原理とfixupマクロの構造について詳しく説明します。
<システムソフトウェア開発のためのArmアーキテクチャの構造と原理 - 1/2部作者直講>
「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」作者の直講講義(1/2部)をまず聞いて来ることをお勧めします。
プレイヤーの知識は、ArmアーキテクチャのExceptionレベル、Exception、AAPCS、Memory Management(MMU)です。
おおよそのLinuxがどのように動作するかを知っておくと良いでしょう。
Linuxカーネルに関する深い選手の知識は必要ありません。
学習対象は
誰でしょう?
システムソフトウェア分野の就活生及びジュニア開発者
Armアーキテクチャの機能を活用したデバッグ方法を知りたいシステムSW開発者
システムソフトウェア分野へキャリアを転換しようとしている他分野の開発者
システムソフトウェア分野の大学院進学を目標とする大学生
前提知識、
必要でしょうか?
コンピュータ構造
オーエス
5,438
受講生
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'
全体
25件 ∙ (3時間 51分)
全体
5件
4.4
5件の受講レビュー
受講レビュー 94
∙
平均評価 5.0
5
2024/07/30/Tue 10:40 I listened to the lecture well. I learned a lot from the roadmap (Arm basic/advanced) you gave me. All the lectures are good. I felt "Wow~~" while listening to it. Thank you. Now I will listen to the remaining lectures and listen to the roadmap you gave me. Thank you.
受講レビュー 2
∙
平均評価 4.0
受講レビュー 3
∙
平均評価 5.0
受講レビュー 2
∙
平均評価 5.0
受講レビュー 5
∙
平均評価 3.4
¥6,067
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!