Arm 아키텍처와 리눅스 커널 인터페이스 - 저자직강

59

이 수강하고 있어요.

Thumbnail

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

Arm 아키텍처(Armv8-A)와 리눅스 커널 인터페이스의 핵심을 "시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리"의 저자가 제대로 잡아드립니다!

이런 걸
배워요!

  • Arm 아키텍처(Armv8-A)를 이루는 주요 동작 방식을 파악할 수 있습니다.

  • Arm 아키텍처와 리눅스 커널의 인터페이스(프로세스, 인터럽트 핸들링, 시스템 콜, 메모리 관리)를 이해할 수 있습니다.

  • 리눅스 커널을 이루는 핵심 기능인 프로세스, 인터럽트 핸들링, 시스템 콜, 메모리 관리 기법을 배울 수 있습니다.

  • 레지스터, 익셉션 핸들링, 어셈블리 명령어, 트러스트존 그리고 메모리 관리 방식을 리눅스 커널에 존재하는 소스 코드로 분석할 수 있습니다.

로드맵 안내 🎯

이번 강의 <Arm 아키텍처와 리눅스 커널 인터페이스 - 저자직강>는 로드맵 '시스템 소프트웨어 개발자를 위한 Arm - advanced 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 프로세서와 함께 리눅스 커널은 스마트 폰을 비롯한 클라우드 서버, 그리고 전기 자동차 시스템에서 사용되고 있습니다. 또한 시스템 반도체 업계(펩리스)에 있는 시스템 소프트웨어 개발자는 대부분 리눅스 커널이나 리눅스 디바이스 드라이버를 사용해 자신이 설계한 칩을 제어하는 드라이버 프로그래밍을 합니다.

다시 한번 정리하면! Arm 프로세서 위에서 가장 많이 실행되는 운영체제의 커널은, 바로 리눅스 커널입니다.

'Arm 아키텍처와 리눅스 커널의 인터페이스'를
배워야 하는 4가지 이유

1⃣ 첫째, Arm 아키텍처와 리눅스 커널의 인터페이스(어셈블리 명령어 분석)를 잘 알면, Arm 아키텍처의 세부 동작 방식을 더 잘 이해할 수 있습니다. 이론으로 배운 내용이 구현된 소스 코드를 분석하면 배운 내용을 내재화할 수 있기 때문입니다.

2⃣ 둘째, 리눅스 커널을 이루는 핵심 기능인 프로세스, 인터럽트 핸들링, 시스템 콜, 메모리 관리 기법은 CPU 아키텍처의 Feature를 활용해 구현됐습니다. Arm 아키텍처와 리눅스 커널의 인터페이스를 잘 알면 리눅스 커널의 세부 동작을 깊이있게 파악할 수 있습니다.

3⃣ 셋째, 레지스터, 익셉션 핸들링, 어셈블리 명령어, 트러스트존 그리고 메모리 관리 방식을 리눅스 커널에 존재하는 소스 코드로 분석하면 Arm 아키텍처를 이루는 내용과 리눅스 커널을 함께 배울 수 있습니다.

4⃣ 넷째, Arm 프로세서와 리눅스 커널은 시스템 소프트웨어 업계의 90% 이상 제품에 사용됩니다. 리눅스 커널이 Arm 프로세서 위에서 어떤 방식으로 동작하는지 파악하면 배운 내용을 잘 활용할 수 있습니다.

최근에 개발되는 대부분 시스템 소프트웨어는 Arm 프로세서와 리눅스 환경에서 개발되므로 이와 관련된 지식은 반드시 알고 있어야 합니다.

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

'시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' 저자 직강을 들은 개발자 분들은 의아할 수 있습니다. 이번 Arm 아키텍처 강사가 갑자기 리눅스 커널에 대한 이야기를 하기 때문입니다. 하지만 저는 Arm 아키텍처 뿐만 아니라 리눅스 커널 책도 쓴 저자입니다. 리눅스 커널 관련 주요 이력은 아래와 같습니다

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

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

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

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

이번 코스의 강사인 제가 어느 누구보다 'Arm 아키텍처와 리눅스 커널의 인터페이스'를 잘 설명할 수 있다고 자신할 수 있습니다.

이런 분들께 추천해요

시스템 반도체(펩리스), 전기 자동차 분야(자율주행, 인포테인먼트)를 포함한 시스템 SW분야 취준생 및 주니어 개발자

Arm 아키텍처의 기능을 활용해 실무에서 어떻게 디버깅하는지 알고 싶은 시스템 소프트웨어 개발자

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

수강 후에는

  • Arm 아키텍처의 세세한 동작 원리를 파악

  • Arm 아키텍처의 기능을 활용해 리눅스 커널의 주요 Subsystem이 어떻게 구현되어 있는지 파악

  • 리눅스 커널의 컨텍스트 스케줄링 구현 방식 이해

  • 리눅스 커널의 시스템 콜과 익셉션 핸들러의 세부 동작 방식 이해

  • 리눅스 커널의 메모리 시스템 구현 방식 파악

이런 내용을 배워요

리눅스에 익숙하지 않은 수강생을 위해 리눅스 시스템의 전체 구조를 소개합니다. 리눅스 커널에서 중요하게 다루는 3대 리소스를 상세히 설명합니다.

리눅스 커널의 핵심인 프로세스(유저 공간 및 커널 공간, 유저 프로세스, 커널 스레드)에 대해 설명합니다.

Arm 아키텍처에 의존적인 프로세스의 자료 구조를 설명합니다. 특히 컨텍스트 스위치와 관련된 레지스터를 중심으로 동작 원리를 상세히 다룹니다.

Arm 아키텍처에 의존적인 컨텍스트 스위칭의 동작을 어셈블리 명령어 분석으로 상세히 설명합니다.

인터럽트가 처리되는 흐름을 큰 그림으로 설명합니다. 인터럽트를 처리하는 방식을 'Armv8 아키텍처의 익셉션 벡터 테이블' 분석으로 상세히 설명합니다.

인터럽트가 처리되는 흐름을 2가지 시나리오(유저 애플리케이션 실행 도중 인터럽트 발생, 커널 코드 실행 도중 인터럽트 발생) 기준으로 설명합니다. 이어서 익셉션 핸들러 코드(어셈블리 코드)를 상세하게 리뷰합니다.

시스템 콜의 전체 실행 흐름을 리뷰하고, 시스템 콜 관련 익셉션 벡터 테이블의 내용을 상세하게 설명합니다.

유저 공간에서 시스템 콜을 유발할 때 실행되는 SVC 명령어 루틴을 분석합니다. 이어서 시스템 콜이 유발되는 과정에서 커널 공간에서 실행되는 익셉션 핸들러 루틴을 상세히 설명합니다.

시스템 콜이 유발된(SVC 명령어 실행) 다음에 커널 공간에서 시스템 콜 핸들러가 호출되는 과정에 처리되는 커널 핵심 API를 설명합니다. 또한 시스템 콜 핸들러의 핵심 심벌 정보까지 상세하게 다룹니다.

리눅스 커널에서 메모리 관리를 이루는 주요 기능을 소개하고, Arm 아키텍처 관점으로 알아야 할 메모리 관리 관련 피쳐를 설명합니다.

리눅스 커널에서 가상 주소의 범위를 설정하는 컨피그를 소개합니다. 이어서 리눅스 커널에서 멀티 레벨 페이지 테이블을 위해 지원하는 인터페이스를 설명합니다.

리눅스 커널에서 지원하는 인터페이스를 사용해 처리되는 페이지 룩업의 동작 원리와 fixup 매크로의 구조에 대해 상세히 설명합니다.

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

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

수강 전 참고 사항

선수 지식 및 유의사항 📢

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' 저자 직강 강의(1/2부)를 먼저 듣고 오시길 권장합니다.

  • 선수 지식은 Arm 아키텍처의 익셉션 레벨, 익셉션, AAPCS, 메모리 관리(MMU)입니다.

  • 대략적으로 리눅스가 어떻게 동작하는지 아시면 좋습니다.

  • 리눅스 커널에 대한 깊이 있는 선수 지식은 필요하지 않습니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 시스템 소프트웨어 분야 취준생 및 주니어 개발자

  • Arm 아키텍처의 기능을 활용한 디버깅 방법을 알고 싶은 시스템 sw개발자

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

  • 시스템 소프트웨어 분야 대학원 진학을 목표로 하는 대학생

선수 지식,
필요할까요?

  • 컴퓨터구조

  • 운영체제

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

커리큘럼

전체

25 ∙ 3시간 51분

강의 게시일: 2024년 01월 25일
마지막 업데이트일: 2024년 01월 25일

수강평

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