인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

신입 개발자를 위한 Armv8-A Architecture Overview (저자 직강)

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

Thumbnail

입문자를 위해 준비한
[임베디드 · IoT, ARM Architecture] 강의입니다.

이런 걸 배울 수 있어요

  • Arm 아키텍처와 Arm 프로세서의 특징

  • 레지스터와 어셈블리 명령어의 처리 방식

  • 익셉션 레벨(Exception)과 익셉션 레벨 별로 실행되는 소프트웨어 스택

  • 익셉션(Exception)의 종류와 동작 방식

  • 서브 루틴 호출을 위한 규약인 AAPCS (Arm 호출 규약)

  • TrustZone을 구성하는 논시큐어 월드와 시큐어 월드의 개념

  • 가상화와 하이퍼바이저의 동작 원리

  • 배리어, 캐시 그리고 가상 메모리 시스템의 동작 원리

<공지>

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

이번 강의 <신입 개발자를 위한 Armv8-A Architecture (저자 직강)>는 로드맵 '시스템 소프트웨어 개발자를 위한 Arm - basic course' 에 포함된 강의입니다.

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

시스템 소프트웨어 개발자의
필수 지식, Arm 아키텍처

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

9시간으로 끝내는
핵심 Armv8-A 아키텍처 입문


저는 Armv8-A 아키텍처를 설명하는 책을 집필했고, 인프런에 60시간 이상 분량의 강의도 제작했습니다.

하지만 60시간 이상의 강의는 처음 Arm 아키텍처를 배우려는 분이 소화하려면 3개월 이상의 시간이 소요됩니다. 물론 차근차근 강의를 듣고 Arm 아키텍처를 체계적으로 배우는 것이 가장 좋은 방법입니다. 하지만 현실적으로 취업 준비생 분들과 주니어 개발자 분들은 1~2 주 이내로 빠른 시일 내에 기술 면접을 준비해야 하는 경우가 많습니다. 이러한 수강생들의 니즈를 반영하여 컴팩트한 그러나 핵심은 놓치지 않은 Armv8-A 아키텍처 입문 강의를 런칭하게 되었습니다.

대상 수강생 💁‍♂

빠른 시간에 Armv8-A 아키텍처와 관련된 기술면접을 대비해야 하는 시스템SW분야 취준생

Armv8-A의 핵심적인 내용을 파악해서 실무를 빨리 익히고 싶은 신입 및 주니어 개발자

Armv8-A의 핵심적인 기능을 이해해 프로젝트를 관리하려는 시스템 소프트웨어 분야의 관리자

강의의 차별화 포인트

1⃣ 기술 면접에서 나올 수 있는 Armv8-A 아키텍처의 핵심 기능을 요약 정리

시스템 소프트웨어 개발자의 기술 면접에서 Armv8-A 아키텍처에 대한 질문할 가능성이 매우 높습니다. 대부분 국내 리눅스 시스템 소프트웨어 개발자(펩리스, 임베디드 개발)의 요구 조건으로 Arm 아키텍처를 명시하고 있습니다. 면접을 준비할 시간은 짧은데, 방대한 Arm 스펙 문서를 분석하기에는 큰 부담이 됩니다. 이번 강의를 들으면 Armv8-A 아키텍처를 구성하는 핵심 개념을 빠른 시간 내에 파악할 수 있습니다.

2⃣ 신입 개발자 입장에서 반드시 알아야 할 내용을 정리

현업 프로젝트를 진행하면 Arm 아키텍처(Arm Architecture)를 잘 알아야 합니다. 브링업을 하거나 디버깅을 할 때 Arm 아키텍처를 모르면 개발을 진행하기 어렵습니다.

Armv8-A 아키텍처를 구성하는 기능은 방대합니다. 관련 레퍼런스 문서는 2000 페이지가 넘고, 어떤 내용이 현업 프로젝트에서 활용되는지 알기 어렵습니다. 신입 개발자 관점에서 반드시 알아야 Armv8-A 아키텍처의 실용적인 기능을 잘 정리했습니다.

3⃣ 다양한 케이스 스터디 소개

Arm 아키텍처의 핵심 내용을 설명하면서 실전 프로젝트에서 어떤 방식으로 개발 업무를 진행하는지 다룹니다. 또한 배운 내용이 어떻게 현업 프로젝트에 활용되는지에 대해 다양한 케이스 스터디(실전 프로젝트 이슈)도 설명합니다. 또한 Arm 아키텍처의 주요 기능이 구현된 리눅스 커널이나 부트로더에 대해서도 다룹니다.


이번 강의를 잘 소화하시면 고급 시스템 소프트웨어 개발자로 성장하실 수 있습니다.

더 높은 연봉과 포지션에서 커리어를 업그레이드하시길 응원합니다.

이런 내용을 배워요 📕

시스템 반도체를 개발하는 과정을 설명하면서 Arm 프로세서에 대해 소개합니다. 또한 Armv8-A 아키텍처를 구성하는 기본적인 기능에 대해서 소개합니다.

레지스터의 구조를 설명하고 레지스터가 어떻게 사용되는지 다양한 예시를 들어 설명합니다.

스페셜 레지스터를 설명하고 관련 레지스터가 변경되는 실행 흐름을 다룹니다.

부팅 과정을 소개하면서 어셈블리 명령어가 실전 프로젝트에서 어떻게 활용되는지 설명합니다. 이어서 어셈블리 명령어의 기본 포멧과 명령어 루틴을 분석합니다.


다양한 방식으로 어셈블리 명령어를 상세하게 분석하고 명령어의 문법(Syntax)을 알기 쉽게 설명합니다.


실전 디버깅 프로그램인 TRACE32를 사용해 어셈블리 명령어를 디버깅합니다. 어셈블리 명령어를 분석하면서 레지스터가 어떻게 사용되는지 상세히 설명합니다.

익셉션 레벨과 Privilege level의 개념을 알기 쉽게 설명합니다.

익셉션 레벨 별로 소프트웨어가 어떻게 실행되는지 다양한 사례를 들어서 설명합니다.

부팅하는 과정에서 익셉션 레벨이 설정되는 과정을 상세히 설명합니다. 익셉션 레벨을 확인하는 방법을 어셈블리 명령어를 통해서 설명합니다.

익셉션 벡터 테이블과 익셉션이 처리되는 실행 흐름을 상세히 설명합니다.

인터럽트는 Armv8-A 아키텍처에서는 익셉션의 한 종류로 처리합니다. 다양한 실행 흐름을 통해서 IRQ 인터럽트 익셉션이 처리되는 쉽게 설명합니다.

시스템 콜이 실행하는 과정에서 익셉션이 유발되는 과정을 설명합니다. 또한 익셉션 벡터 테이블과 함께 익셉션의 실행 흐름을 설명합니다.

TRACE32 디버깅 실습으로 익셉션이 유발되면 Arm 코어가 익셉션 벡터 주소로 분기하는 동작을 상세하게 설명합니다.

함수와 같은 서브 루틴으로 분기하는 방법을 명시한 AAPCS에 대해서 기본 핵심 개념과 실행 흐름을 설명합니다.

소프트웨어 관점으로 스택이 사용되는 방식과 실전 프로젝트에 바로 적용할 수 있는 최적화 방안에 대해 설명합니다.


TrustZone의 핵심 개념(논시큐어 월드, 시큐어 월드)과 실행 흐름에 대해서 이해하기 쉽게 설명합니다.

TRACE32 디버깅 실습으로 Secure monitor call의 동작 원리를 설명합니다. SMC 명령어를 EL1에서 실행하면 EL3로 진입하는 동작을 상세하게 설명하고 이 과정에서 유발되는 익셉션의 동작 방식도 상세하게 분석합니다.

전기 자동차(Automotive) 개발에서 많이 활용되는 하이퍼바이저의 구조와 Virtualization(가상화) 기능에 대해 설명합니다.

가상화 기법의 핵심인 Hypervisor call을 통해 게스트 OS에서 하이퍼바이저로 진입하는 과정을 설명합니다. 또한 익셉션을 하이퍼바이저에서 받아서 처리하는 실행 흐름을 설명합니다.


TRACE32 디버깅 실습으로 HVC 명령어를 EL1(게스트 OS)에서 실행하면 EL2(하이퍼바이저)로 진입하는 동작을 상세하게 설명합니다. 이 과정에서 유발되는 익셉션의 동작 방식도 쉽게 설명합니다.

캐시의 기본 개념을 설명하고 멀티 레벨 캐시의 기본 구조와 정책에 대해 알기 쉽게 설명합니다.


메모리 모델과 메모리 배리어에 대해서 알기 쉽게 설명합니다.

가상 메모리 시스템을 구성하는 요소와 가상 주소가 처리되는 실행 흐름을 설명합니다.

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

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

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' (2024년, 대한민국 학술원 우수도서상) 저자

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

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사 (1~2차수)

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

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

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

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

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

수강 전 참고 사항

선수 지식 및 유의사항

  • 이번 강의는 선수 지식이 없어도 무난하게 따라올 수 있는 강의입니다.

  • 운영체제나 컴퓨터에 대한 구조를 알고 있으면 강의를 이해하는데 도움이 됩니다.

  • 강의에서 C 언어의 기본 문법은 알고 있다고 가정하고 예제 코드를 소개하고 설명합니다.

  • 이번 강의에서 진행하는 TRACE32 프로그램은 제공하지 않습니다.

    TRACE32 교육용 실습 프로그램을 내려 받으셔서 상세하게 어셈블리 명령어를 디버깅하시려면, 이미 배포된 시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부/2부 저자 직강 강의를 수강하세요.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

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

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

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

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

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

선수 지식,
필요할까요?

  • 마이크로프로세서

  • CPU

  • 임베디드

  • c언어

  • 운영체제

  • 컴퓨터구조

안녕하세요
김동현 (Austin Kim)입니다.

4,340

수강생

79

수강평

74

답변

4.9

강의 평점

18

강의

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

더보기

커리큘럼

전체

71개 ∙ (8시간 31분)

강의 게시일: 
마지막 업데이트일: 

수강평

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