![리눅스 소개와 리눅스 커널 Overview [저자직강 1부-1]강의 썸네일](https://cdn.inflearn.com/public/courses/333097/cover/8e09c5df-0571-462e-878c-39ddf13549b6/333097.png?w=420)
리눅스 소개와 리눅스 커널 Overview [저자직강 1부-1]
김동현 (Austin Kim)
시스템 소프트웨어에서 가장 많이 쓰이는, 리눅스 운영체제의 핵심인 최신 리눅스 커널(v6.1)의 기본 개념을 "디버깅을 통해 배우는 리눅스 커널의 구조와 원리"의 저자가 제대로 잡아드립니다!
입문
Linux, 운영체제, linux-kernel
システムソフトウェアの基本中の基本、最新のArmアーキテクチャ(Armv8-A, Armv7-A)の核心を「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」の著者がしっかりと捉えてご説明します!
受講生 389名

Arm プロセッサ紹介
Arm アーキテクチャ学習方法
レジスター
アセンブリ命令
Armv7: 動作モード
Armv8: 例外レベル
システムソフトウェアの基本中の基本、
最新Armアーキテクチャの核心!
0. 受講生300名突破30%割引クーポン発行
受講生300名突破(1、2部)を記念して30%割引クーポンを発行いたします。ありがとうございます。先着順100名です。
最新のArmアーキテクチャの機能と実戦プロジェクトにすぐに適用できる有益なコンテンツを発掘して、以下の講義を追加しました。
講義は継続的にリニューアルされる予定です。
今回の講義<システムソフトウェア開発のためのArmアーキテクチャの構造と原理 - 1部 著者直講>は、ロードマップ「システムソフトウェア開発者のためのArm - basic course」に含まれている講義です。
体系的に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アーキテクチャであるArmv8-AとArmv7-Aアーキテクチャがあまりにも難しく感じられましたか?。
システム半導体、電気自動車分野(自律走行、インフォテインメント)を含むシステムソフトウェア分野で能力を向上させたいジュニア開発者
システム半導体、電気自動車分野のようなシステムソフトウェア開発をしたい就職準備生
システムソフトウェア分野(メモリ、ファイルシステム、オペレーティングシステム)の大学院進学を目標とする大学生
システムソフトウェア分野にキャリア転換しようとする他分野の開発者
多くのLinux組み込み開発者を志望する方々は、コンピュータアーキテクチャやオペレーティングシステムを学びます。そしてCS理論もある程度勉強します。最近注目されているシステム半導体と電気自動車システムソフトウェア開発者は、Linuxデバイスドライバ、RTOSまたはブートローダを分析します。しかしそれだけでは何か物足りないということを自ら感じます。専門システムソフトウェア開発者になるために必ずArmアーキテクチャを知らなければならないという事実を知っていますが、いざArmスペック文書を開いた瞬間、簡単ではない道のりであり独学は困難だという判断をすることになります。
システムソフトウェア開発の核心は、CPUおよびコンピュータアーキテクチャと言っても過言ではありません。IT業界で最も必要とされるCPUプロセッサである、最新Armアーキテクチャ(Armv8-A、Armv7-A)に関する核心理論を分かりやすく説明しました!
Armアーキテクチャが難しい理由は、Armアーキテクチャをハードウェアプロセッサの観点からのみ学ぶからです。この講義は、コード分析と具体的な事例紹介により、Armアーキテクチャを構成する内容が実際にどのように使用されるかを説明します。この講義が実力のあるシステムソフトウェア開発者になるための中枢的な役割を果たします。
Armアーキテクチャを学ぶ近道は何でしょうか?直接デバッグをしながら実習してみることです。
この講義を受講すると、教育用TRACE32シミュレータープログラムを'Inflearn講義資料'からダウンロードして、直接TRACE32シミュレータープログラムを活用し、講義で説明するデバッグ過程(アセンブリ命令語を含む)を直接追いかけてデバッグすることができます。カリキュラムにある関連デバッグ講義は以下の通りです:
また、動作モード、例外レベルに関連するデバッグも一緒に行うことができます。
書籍『Armアーキテクチャの構造と原理』の内容だけでなく、書籍では扱われていないArmアーキテクチャに関するデバッグ実習および様々な事例を具体的に説明します。
システム半導体を開発する過程とともにArmプロセッサとArmアーキテクチャを紹介します。Armプロセッサのプロファイルとファミリーについて説明します。
Armv7-Aアーキテクチャのレジスタを紹介し、それぞれの特徴を説明します。
汎用レジスタ(Armv7-A)の中でバンクドレジスタについて詳細に扱います。プロセスの状態情報を格納しているCPSRレジスタを構成する主要フィールドを詳細に説明します。
Armv8-Aアーキテクチャで定義されたレジスタを分かりやすく詳細に説明します。
TRACE32プログラムでレジスタをデバッグします。Armv7-AとArmv8-Aアーキテクチャで定義されたレジスタの値を直接変更しながら、レジスタの動作原理を詳細に説明します。もちろん受講生の皆さんが直接フォローしてデバッグできるように説明します。
アセンブリ命令語の基本構造を説明し、それぞれのアセンブリ命令語を詳細に説明します。
アセンブリ命令の文法説明にとどまらず、アセンブリ命令が実際のプロジェクトでどのように活用されるかを詳細に説明します。
TRACE32プログラムでアセンブリ命令を直接デバッグしながら説明します。算術命令(例:MOV、ADD、SUB)からブランチ命令、ビット演算命令、そしてロジカル命令(AND、ORR、EOR)まで受講生の皆さんが一緒にデバッグできるように説明します。
Armv7-Aの基盤となる動作モードを紹介し、それぞれの特徴について詳細に説明します。動作モード別にどのようなソフトウェアが実行されるかを説明します。
動作モードに関連するPrivilegeレベルについて説明し、動作モードを確認できるCPSRレジスターのビットフィールドについて詳細に分析します。
TRACE32プログラムで動作モードを変更するコマンドを直接デバッグします。また、例外を引き起こすコマンドを直接実行して例外が発生する過程を直接デバッグ過程で説明します。受講生の皆さんが一緒に従ってデバッグできるように説明します。
Armv8-Aアーキテクチャの核心機能の一つである例外レベルの概念を簡単かつ詳細に説明します。
仕様書分析を通じて例外レベルを詳細にレビューし、例外レベル別に実行されるソフトウェアスタックについて説明します。
TRACE32プログラムでエクセプションレベルを読む実習を進行します。また、SVC、HVC命令語を直接実行してエクセプションレベルが変わる過程を直接デバッグしながら説明します。受講生の皆さんはTRACE32プログラムをダウンロードして一緒にデバッグしながら進めることができます。
Armプロセッサの動作原理を把握する近道は、Armスペック文書を直接読んで理解することです。
初心者には決して簡単ではありません。どんなに有益な内容であっても、理解するのが困難だからです。この講義は、難しいArmアーキテクチャの理論により簡単にアプローチできるよう道を開くために企画されました。
国内システムソフトウェア分野で前代未聞!「Armアーキテクチャ(Armv8-A、Armv7-A)」と「Linuxカーネル」の本を執筆した著者(2冊の本がいずれも大韓民国学術院優秀図書に選定)であり、国内初として海外出版社(Packt)を通じて「Reverse Engineering Armv8-A Systems」という本(英語)を執筆したグローバル著者です。何よりも最新システムソフトウェアトレンド(電気自動車、システム半導体-システムソフトウェア)を最もよく知っている現役開発者です。また、システムソフトウェア分野で最も知識普及活動を活発に行っている教育者です。
国内で誰よりもArmアーキテクチャ(Armv8-A、Armv7-A)を構成する主要機能をよく説明できる教育者だと自信を持って申し上げることができます。
Q. システムソフトウェア開発者になるには、Armアーキテクチャを必ず学ぶ必要がありますか?
はい、必ず学ぶべきです。IT業界で最も多く使用されているCPUがArmプロセッサです。ハードウェアを制御するプログラミングを行うシステムソフトウェア開発者は、Armアーキテクチャに関連する内容をきちんと理解していなければ問題解決が可能な場合が多いからです。Armアーキテクチャをよく知らなければ、単純なシステム設定作業だけを行う可能性があります。
Q. 非専攻者ですが、Armアーキテクチャを学ぶことはできるでしょうか?
非専攻者でもこの講義の内容をしっかり聞けば、Armアーキテクチャの基本原理を十分に理解することができます。「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」本のベータリーダーの中にも非専攻者が多数いました。最初はArmアーキテクチャの内容を読んですぐに理解するのは難しかったですが、本を2〜3回読んで大部分のArmアーキテクチャを理解しました。この講義は本の内容をより詳しく具体的に説明するので、この講義を聞けば非専攻者でもArmアーキテクチャをよく理解できるでしょう。
Q. セキュリティソフトウェア開発者になるには、この講義を受講する必要がありますか?
V3のようなソフトウェアを開発したいなら、CPUアーキテクチャに関する理論は必須です。カーネルドライバー開発者に進んだ後、ArmアーキテクチャのようなCPUアーキテクチャは必ず知っておく必要があります。リバーシングをはじめ、各種攻撃・防御技法の核心を学ぶには、Armアーキテクチャの理論を知らずには試すことすら困難です。
Q. C言語、データ構造程度しか勉強していません。それでもこの講義を受講できますか?
はい、聞くことができます。この講義を聞くのに特別な前提知識は必要ありません。前提知識よりも次のような態度の方が重要かもしれません。
ただし、オペレーティングシステムやRTOSについての知識を既にお持ちの場合、本講義の理解に役立つ可能性があります。
学習対象は
誰でしょう?
システム半導体(ファブレス)、電気自動車分野(自動運転、インフォテインメント)を含むシステムソフトウェア分野で力量を培いたいジュニア開発者
システムソフトウェア分野へのキャリア転換を希望する他分野の開発者
システム半導体(ファブレス)、電気自動車の分野でシステムソフトウェア開発をしたい就活生
システムソフトウェア分野(メモリ、ファイルシステム、オペレーティングシステム)の大学院進学を目指す大学生
Armアーキテクチャの機能を活用して実務でどのようにデバッグするのか知りたいシステムソフトウェア開発者(システム半導体、電気自動車)
システム半導体でArmv8-AベースのArmプロセッサがどのように動作するのか知りたいシステムソフトウェア開発者
Armベースのシステムで卒業課題を準備中の卒業学年の学生
研究室のプロジェクトをArmプロセッサ環境で進めている大学院生
前提知識、
必要でしょうか?
コンピュータ構造
オペレーティングシステム
6,018
受講生
200
受講レビュー
89
回答
4.9
講座評価
22
講座
글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (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'
全体
165件 ∙ (22時間 9分)
講座資料(こうぎしりょう):
4. 1.0 システム半導体とArm
07:42
5. 1.1 Arm プロセッサの歴史
10:48
6. 1.1.1 エーコンの設立
02:59
7. 1.1.2 Arm社の設立
05:00
16. 1.5.3 Arm コアとは
01:18
17. 1.6 この本の構成
12:41
全体
25件
5.0
25件の受講レビュー
受講レビュー 4
∙
平均評価 5.0
5
강의를 듣고 나니 머리가 맑아지고 무엇인가 체한게 내려간 듯한 느낌입니다. 그 동안 막연했던 ARM의 주요 개념이 명확히 정리된 것이 신기합니다. 강의를 듣고 달라진 제 모습이 조금 놀라웠습니다. ARM 스펙을 읽을 때 마다 새로웠는데, 이제는 ARM 스펙 문서를 술술 읽게 됐습니다. 프로젝트에 바로 적용할 만한 내용은 것도 신기해 주위 동료 개발자에게도 추천했습니다. 인생 강의를 듣게 되어 기쁘고 더 많은 강의가 업로드됐으면 좋겠습니다. 훌륭하고 유익한 강의 너무 감사합니다.
좋은 평가와 격려 감사합니다. 혹시 궁금한 점이 있으면 언제든지 Q/A로 남겨주세요. 앞으로 제 강의를 "정말 잘 들었다"라는 확신을 드리기 위해 계속 최선을 다하겠습니다.
受講レビュー 4
∙
平均評価 5.0
5
ARM 역사부터 시작해서, ARM instruction, 레지스터, exception level 까지, ARM 구조 이해의 꼭 필요한 기초 베이스를 아주 자세하면서 깊게 설명해 줘서 고맙습니다! 이런 내용의 서적은 최소 국내에서는 못 봤습니다. 리눅스 커널과 관련된 업무를 진행하거나 ARM 에 관심 있는 분들께 꼭 추천드리고 싶습니다!
좋은 평가와 격려 감사합니다. 혹시 궁금한 점이 있으면 언제든지 Q/A로 남겨주세요. 앞으로 제 강의를 "정말 잘 들었다"라는 확신을 드리기 위해 계속 최선을 다하겠습니다.
受講レビュー 4
∙
平均評価 5.0
5
TRACE32, 리눅스 커널 소스, XEN 하이퍼바이저 소스 등 실제로 적용된 예시들을 통해 ARM 아키텍처를 배우니 이론들이 머리에 더 오래 남아있고 흥미롭게 강의를 볼 수 있었습니다. 3부 강의도 얼렁 보고 싶고 이론뿐만 아니라 실제로 프로그래밍을 하는 실습 강의도 개설되었으면 좋겠습니다. 좋은 강의 감사합니다.
좋은 평가 감사합니다. 특히 시스템 소프트웨어의 다양한 분야에 활용될 수 있는 실습 예시가 많이 포함되어 있어 실무에 많은 도움이 될 것이라 예상됩니다. 나중에 실습으로 진행하는 강의를 제작할 예정입니다. 3부 강의는 1월달 초에 출간될 예정이니 참고하세요. 감사합니다. ^^
受講レビュー 8
∙
平均評価 5.0
受講レビュー 2
∙
平均評価 5.0
¥16,390
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!