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

(5.0) 수강평 5

수강생 101

Thumbnail

초급자를 위해 준비한
[임베디드 · IoT, 컴퓨터 구조] 강의입니다.

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

이런 걸
배워요!

  • Arm 아키텍처(Armv8-A, Armv7-A)의 기본 동작 원리를 파악할 수 있습니다.

  • Arm 아키텍처(Armv8-A, Armv7-A)의 익셉션의 세부 동작 원리에 대해 깊이있게 파악할 수 있습니다.

  • Armv7-A/Armv8-A에서 정의된 AAPCS를 잘 이해할 수 있습니다.

  • 익셉션과 AAPCS를 활용해 메모리 어보트 성 이슈를 디버깅하는 방법을 이해할 수 있습니다.

📢 수강 전 안내사항

본 강의는 시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 1부 강의에 이어지는 두 번째 강의입니다. 원활한 이해를 위해 첫 번째 강의부터 순차적으로 수강하시는 걸 추천드립니다

<공지>

1. 100명 돌파 30% 할인 쿠폰 발행 

수강생 100명 돌파(1,2부)를 기념하여 30% 할인 쿠폰을 발행합니다. 감사합니다. 선착순 100명입니다.

  • 쿠폰 : 15563-585eed980f06 

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

이번 강의 <시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강>는 로드맵 '시스템 소프트웨어 개발자를 위한 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 architecture인 Armv8-A와 Armv7-A 아키텍처가 너무 어렵게만 느껴지셨나요?


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

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

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

시스템 소프트웨어 분야(메모리, 파일 시스템, 운영체제)의 대학원 진학 희망자

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

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

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

  • 1⃣ Arm 아키텍처의 핵심 중 핵심인 익셉션과 함수 호출 규약인 AAPCS에 대한 핵심 이론을 이해할 수 있습니다.  

  • 2⃣ Arm 아키텍처를 이루는 주요 내용을 코드 수준에서 다시 경험하며 Arm 아키텍처에 대한 이해 수준이 훨씬 더 높아집니다.

  • 3⃣ Arm 아키텍처가 지원하는 다양한 기능을 적극 활용함으로써 높은 안정성과 성능을 보장받는 시스템 프로그램(드라이버, 부트로더)을 개발할 수 있습니다. 

  • 4⃣ 실전 프로젝트 개발에 필요한 각종 이론 및 사례를 스스로 이해할 수 있습니다. 

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

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

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

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

  • 40%: 책의 핵심 내용

  • 40%: Arm 아키텍처 관련 주요 케이스 스터디, 코드 리뷰 

  • 20%: 디버깅 실습 - TRACE32 

강의내용 📕

어려운 익셉션 벡터 테이블(Arm 스펙)을 상세히 분석하고 쉽게 풀어서 설명합니다. 

<Armv7 아키텍처 익셉션 벡터 테이블 설명>

Arm 스펙으로 정의된 내용이 소프트웨어로 어떻게 구현됐는지 상세히 설명합니다.

<익셉션 핸들러 코드 리뷰>

큰 그림으로 전체 실행 흐름(Armv8 익셉션)을 상세히 설명합니다.

<Armv8의 Synchronous 익셉션의 실행 흐름>

실제 익셉션(Armv8 아키텍처)이 유발된 사례를 케이스 스터디로 설명합니다.

<Armv8에서 Synchronous 익셉션이 처리되는 케이스 스터디>

GIC(Generic Interrupt Controller)가 큰 그림으로 어떻게 인터럽트를 처리하는지 설명합니다.

<GIC의 전체 실행 흐름 설명>

TRACE32를 사용해 디버깅을 직접 하면서 Arm의 주요 기능을 알아보고, 해당 기능이 어떻게 활용되는지 설명합니다.

<Armv7: AAPCS 동작 원리 - TRACE32 디버깅 실습>

<Armv8: AAPCS 동작 원리 - TRACE32 디버깅 실습>


Arm의 원리를 이해하는 지름길은
스펙문서를 직접 읽고 이해하는 것!

입문자에게 Arm은 결코 쉽지 않습니다. 아무리 유익한 내용이라도 이해하기 어렵기 때문입니다. 이 강의는 어려운 Arm 아키텍처 이론에 보다 쉽게 다가갈 수 있도록 길을 열어 드리기 위해 기획되었습니다. 


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

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

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리'(2023년) 저자

  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사

  • 2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]

  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~2024) 


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

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

<시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1/2부 저자 직강>


Q&A 💬

Q. 시스템 소프트웨어 개발자가 되려면 Arm 아키텍처를 반드시 배워야 하나요?

네, 반드시 배워야 합니다. IT 업계에서 가장 많이 사용되는 CPU가 Arm 프로세서입니다. 하드웨어를 제어하는 프로그래밍을 하는 시스템 소프트웨어 개발자는 Arm 아키텍처와 관련된 내용을 제대로 알고 있어야 문제 해결이 가능한 경우가 많기 때문입니다. Arm 아키텍처를 잘 모르면 단순한 시스템 설정 작업만 할 확률이 있습니다. 

Q. 비전공자인데 Arm 아키텍처를 배울 수 있을까요? 

비전공자도 이 강의의 내용을 잘 들으시면 Arm 아키텍처의 기본 원리를 충분히 이해할 수 있습니다. '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' 책의 베타 리더 중에 비전공자들도 다수 있었습니다. 처음에 Arm 아키텍처의 내용을 읽고 바로 이해하기는 힘들었지만, 책을 2~3번 읽고 대부분 Arm 아키텍처를 이해했습니다. 이 강의는 책의 내용을 더 자세하고 구체적으로 설명하므로 이 강의를 들으시면 비전공자도 Arm 아키텍처를 잘 이해할 수 있을 것입니다.

Q. 보안 소프트웨어 개발자가 되려면 이 강의를 들어야 하나요?

만일 V3같은 소프트웨어를 개발하고 싶다면 cpu-architecture에 대한 이론은 필수입니다. 커널 드라이버 개발자로 넘어간 다음에 Arm 아키텍처와 같은 CPU 아키텍처는 반드시 알아야 합니다. 리버싱을 비롯해 각종 공격/방어 기법의 핵심을 배우려면 Arm 아키텍처의 이론을 모르고는 시도조차 하기 어렵습니다. 

Q. C언어, 자료구조 정도만 공부했습니다. 그래도 이 강의를 들을 수 있나요?

네, 들을 수 있습니다. 이 외에 운영체제나 RTOS에 대한 내용을 알고 있으면 강의를 빠르게 학습하는데 도움이 될 수 있습니다. 다만 본 강의는 선수지식이 없더라도 수강에 어려움이 없도록 차근차근 안내합니다.

선수지식보다는 다음과 같은 태도가 더 중요합니다.

  • 꾸준히 강의를 듣는 노력

  • 잘 모르는 내용을 들으면 고민하고 생각하는 훈련

  • 꾸준히 복습하는 습관

이런 분들께
추천드려요!

학습 대상은
누구일까요?

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

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

  • 시스템 반도체(펩리스), 전기 자동차 분야에서 시스템 소프트웨어 개발을 하고 싶은 취준생

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

  • Arm 아키텍처의 기능을 활용해 실무에서 어떻게 디버깅하는지 알고 싶은 시스템 소프트웨어 개발자(시스템 반도체, 전기 자동차)

선수 지식,
필요할까요?

  • 컴퓨터구조

  • 운영체제

  • c언어

  • 임베디드

  • CPU

  • 마이크로프로세서

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

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리'(2023년) 저자

  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사

  • 2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]

  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~현재)

국내에서 어느 누구보다 리눅스 커널과 Arm 아키텍처(Armv8-A, Armv7-A)를 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다.

주요 로드맵 🎯

'시스템 소프트웨어 개발자를 위한 Arm - basic course'

'시스템 소프트웨어 개발자를 위한 Arm - advanced course'

로드맵_이미지_스킨.png

 

시스템 소프트웨어 개발자를 위한 Linux kernel - basic course

image

체계적으로 Arm 아키텍처(Armv8-A, Armv7-A)와 리눅스 커널을 배우시려는 분은 로드맵(전체 강의 30% 할인)을 활용하시면 좋습니다.

커리큘럼

전체

92 ∙ 16시간 9분

  • 수업 자료

강의 게시일: 2023년 12월 13일
마지막 업데이트일: 2024년 05월 08일

수강평

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