BEST
하드웨어

/

임베디드 · IoT

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)

시스템 소프트웨어의 기본 중의 기본, 최신 Arm 아키텍처(Armv8-A, Armv7-A)의 핵심을 "시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리"의 저자가 제대로 잡아드립니다!

(4.9) 수강평 11개

수강생 258명

Thumbnail

초급자를 위해 준비한
[임베디드 · IoT, 시스템 · 운영체제] 강의입니다.

이런 걸
배워요!

  • Arm 프로세서 소개

  • Arm 아키텍처 학습 방법

  • 레지스터

  • 어셈블리 명령어

  • Armv7: 동작 모드

  • Armv8: 익셉션 레벨

시스템 소프트웨어 기본 중의 기본, 
최신 Arm 아키텍처의 핵심!

<공지>

1. 2024년 최신 강의 리뉴얼  

최신 Arm 아키텍처의 기능과 실전 프로젝트에 바로 적용할 수 있는 유익한 콘텐츠를 발굴해 아래 강의를 추가했습니다.

  • TRACE32 프로그램 디버깅 콘텐츠: 교육용 TRACE32 시뮬레이터 프로그램을 '인프런 강의 강의 자료'에서 내려 받을 수 있습니다. 직접 TRACE32 시뮬레이터 프로그램을 활용해 강의에서 설명드리는 디버깅 과정(어셈블리 명령어포함)를 직접 따라서 디버깅할 수 있습니다.
  • 추가된 디버깅 실습 강의: 레지스터 실습(50분), 어셈블리 명령어(60분), 동작 모드와 익셉션 레벨 (60분) 

계속 강의는 리뉴얼될 예정입니다.

2. Arm 아키텍처 전체 저자 직강 강의 로드맵 

이번 강의 <시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강>는 로드맵 '시스템 소프트웨어 개발자를 위한 Arm - basic course' 에 포함된 강의입니다.

체계적으로 Arm 아키텍처(Armv8-A, Armv7-A)을 배우시려는 분은 로드맵(전체 강의 30% 할인)을 활용하시면 좋습니다. 참고로 Arm 아키텍처 로드맵(저자 직강 전체)은 Basic Course Advanced Course 2가지로 구성되어 있습니다.


시스템 반도체, 자동차 분야 등
시스템 소프트웨어 개발자라면 
꼭 알아야 할 Arm 아키텍처.

스마트폰은 물론 AI용 SoC 시스템 반도체, 전기자동차 Automotive(자율주행, 인포테인먼트) 그리고 클라우드 서버 및 맥북에서 사용되는 Arm 프로세서는 모두 Armv8-A 기반 64비트 Cortex-A 프로세서 (Cortex-A53, Cortex-A57, Cortex-A72 등...) 입니다. 현재 시스템 소프트웨어 업계에서 가장 많이 필요한 기반 지식이 요구되는 내용이 Armv8-A 아키텍처라고 볼 수 있어요.

그런데, 최신 Arm 아키텍처인 Armv8-A와 Armv7-A 아키텍처가 너무 어렵게만 느껴지셨나요?.


시스템 소프트웨어 개발자, 임베디드 시스템(BSP) 프로그래머 주목!

시스템 반도체, 전기 자동차 분야(자율주행, 인포테인먼트)를 포함한 시스템 소프트웨어 분야에서 역량을 키우고 싶은 주니어 개발자   

시스템 반도체, 전기 자동차 분야와 같은 시스템 소프트웨어 개발을 하고 싶은 취업 준비생 

시스템 소프트웨어 분야(메모리, 파일 시스템, 운영체제)의 대학원 진학을 목표로 하는 대학생

시스템 소프트웨어 분야로 커리어를 전환하려는 다른 분야의 개발자 

많은 리눅스 임베디드 개발자를 희망하는 분들이라면 컴퓨터 구조나 운영체제를 배웁니다. 그리고 CS 이론도 어느 정도 공부합니다. 최근에 떠오르고 있는 시스템 반도체와 전기 자동차 시스템 소프트웨어 개발자는 리눅스 디바이스 드라이버, RTOS 혹은 부트로더를 분석합니다. 하지만 그것만으로는 무엇인가 부족하다는 것을 스스로 느낍니다. 전문 시스템 소프트웨어 개발자가 되기 위해 반드시 Arm 아키텍처를 알아야 한다는 사실을 알고 있지만, 막상 Arm 스펙 문서를 펼치는 순간 쉽지 않은 길이며 독학은 어렵겠다는 판단을 하게 됩니다.  


Arm 아키텍처의 핵심을 
이해하기 쉽게 설명해드립니다!

  • 1️⃣ Arm 아키텍처의 레지스터와 어셈블리 명령어에 대한 이해와 동작 모드와 익셉션 레벨 등 핵심 이론을 이해할 수 있습니다.  
  • 2️⃣ Arm 아키텍처를 이루는 주요 내용을 코드 수준에서 다시 경험하며 Arm 아키텍처에 대한 이해 수준이 훨씬 더 높아집니다.
  • 3️⃣ Arm 아키텍처가 지원하는 다양한 기능을 적극 활용함으로써 높은 안정성과 성능을 보장받는 시스템 프로그램(드라이버, 부트로더)을 개발할 수 있습니다. 
  • 4️⃣ TRACE32 디버깅 프로그램으로 직접 실습을 진행하면서, 어셈블리 명령어와 관련 기능을 직접 디버깅할 수 있습니다. 실전 프로젝트 개발에 필요한 각종 이론 및 사례를 스스로 이해할 수 있습니다. 

시스템 소프트웨어 개발의 핵심은 CPU 및 컴퓨터 구조라 해도 과언이 아닙니다. IT 업계에서 가장 필요로 하는 CPU 프로세서인, 최신 Arm 아키텍처(Armv8-A, Armv7-A)에 관한 핵심 이론을 쉽게 설명했습니다!

Arm 아키텍처가 어려운 이유는 Arm 아키텍처를 하드웨어 프로세서 관점으로만 배우기 때문입니다. 이 강의는 코드 분석과 구체적인 사례 소개로 Arm 아키텍처를 구성하는 내용이 실제 어떻게 사용되는지 설명합니다. 이 강의가 실력있는 시스템 소프트웨어 개발자가 될 수 있는 중추적인 역할을 해드릴 것입니다.   


TRACE32 시뮬레이터 프로그램(교육용)  제공

Arm 아키텍처를 배우는 지름길은 무엇일까요? 직접 디버깅을 하면서 실습해 보는 것입니다. 

이 강의를 수강하시면 교육용 TRACE32 시뮬레이터 프로그램을 '인프런 강의 강의 자료'에서 내려 받아 직접 TRACE32 시뮬레이터 프로그램을 활용해 강의에서 설명드리는 디버깅 과정(어셈블리 명령어포함)를 직접 따라서 디버깅할 수 있습니다. 커리큐럼에 있는 관련 디버깅 강의는 아래와 같습니다:

  • TRACE32 - 레지스터 실습 (2024 version) 
  • TRACE32 - 동작 모드 디버깅 실습 (2024 version) 
  • TRACE32 - 어셈블리 명령어 디버깅 실습 (2024 version) 
  • TRACE32 - 익셉션 레벨 디버깅 실습 (2024 version)

또한 동작 모드, 익셉션 레벨과 관련된 디버깅도 함께 따라서 하실 수 있습니다. 


저자 직강! 책에 없는 내용까지 
구체적으로 설명합니다.

『Arm 아키텍처의 구조와 원리』의 내용뿐만 아니라 책에서 다루지 않는 Arm 아키텍처에 대한 디버깅 실습 및 다양한 사례를 구체적으로 설명합니다. 

  • ✅ 40%: 책의 핵심 내용
  • ✅ 40%: Arm 아키텍처 관련 주요 케이스 스터디, 코드 리뷰 
  • ✅ 20%: 디버깅 실습 - TRACE32 

주요 강의 내용 

시스템 반도체를 개발하는 과정과 함께 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 명령어를 직접 실행해서 익셉션 레벨이 바뀌는 과정을 직접 디버깅을 하면서 설명합니다. 수강생분들은 TRAC32 프로그램을 내려받아 따라하면서 디버깅할 수 있습니다.


Arm 프로세서의 동작 원리를 파악하는 지름길은 Arm 스펙 문서를 직접 읽고 이해하는 것입니다. 
입문자에게는 결코 쉽지 않습니다. 아무리 유익한 내용이라 하더라도 이해하기가 어렵기 때문입니다. 이 강의는 어려운 Arm 아키텍처의 이론들에 보다 쉽게 다가갈 수 있도록 길을 열어 드리고자 기획되었습니다.  


책 집필/강의경력을 바탕으로
누구보다 깊고 상세하게!

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

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' (2024년, 대한민국 학술원 우수도서상) 저자
  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자
  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사
  • 2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]
  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~2024) 

국내에서 어느 누구보다 Arm 아키텍처(Armv8-A, Armv7-A)를 이루는 주요 기능을 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다. 


학습자들이 남긴 생생한 수강평


Q&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 프로세서 환경에서 진행 중인 대학원생

선수 지식,
필요할까요?

  • 컴퓨터구조

  • 운영체제

국내 시스템 소프트웨어 분야에서 전무후무한! '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% 할인)을 활용하시면 좋습니다.

커리큘럼

전체

164개 ∙ (22시간 3분)

수업 자료

가 제공되는 강의입니다.

강의 게시일: 2023년 07월 25일
마지막 업데이트일: 2024년 09월 29일

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!