![리눅스 소개와 리눅스 커널 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)
₩33,000
입문 / Linux, 운영체제, linux-kernel
4.9
(37)
시스템 소프트웨어에서 가장 많이 쓰이는, 리눅스 운영체제의 핵심인 최신 리눅스 커널(v6.1)의 기본 개념을 "디버깅을 통해 배우는 리눅스 커널의 구조와 원리"의 저자가 제대로 잡아드립니다!
입문
Linux, 운영체제, linux-kernel



디버깅을 통해 Armv8-A 아키텍처의 핵심 기능을 100% 이해해 시스템 소프트웨어 개발의 기반을 다집니다. 이 강의를 통해서 바로 실무 업무를 시작할 수 있습니다.


31개 수업 학습
지식공유자와 멘토링 혜택!
무제한 복습, 내 것으로 만들어요.
6,338
명
수강생
242
개
수강평
96
개
답변
4.9
점
강의 평점
23
개
강의
글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (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'
안녕하세요. 시스템 소프트웨어와 임베디드 리눅스 실무를 디버깅 관점에서 풀어내는 엔지니어이자, 지식 공유자인 김동현(Austin Kim)입니다.
저는 15년 이상 Arm, RISC-V 시스템에서 리눅스 커널과 다양한 디바이스 드라이버를 개발하며, 부팅 실패, 커널 크래시(Exception, 와치독 리셋) 문제를 현장에서 직접 분석해 온 시스템 소프트웨어 엔지니어입니다. 다양한 활동을 통해서 유익한 지식을 개발자 분들께 공유하는 활동을 꾸준히 해 왔습니다.
이번 강의를 통해 복잡하게 느껴지는 Armv8-A 아키텍처의 기능 중에서, 실무에서 꼭 필요한 내용을 엄선해서 전해드립니다. Arm 아키텍처를 실전 디버깅 실습을 하면서 스스로 이해할 수 있도록 진행합니다.
시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 — 대한민국 학술원 우수 도서상(2024년)
디버깅을 통해 배우는 리눅스 커널의 구조와 원리 — 대한민국 학술원 우수 도서상(2021년)
Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis (Packt Publishing, 2025) — 글로벌 출판사 영어 도서
텔레칩스(Telechips) 대상 Armv8-A 크래시 디버깅 (초정 세미나): 2025년 1월
프로그래머스 데브코스 : 리눅스 시스템 및 커널 전문가 과정 메인 강사 (2023~2024년) (1~2차수)
현) LG전자 오픈 소스 팀 근무
개발 도메인: Automotive(전기 자동차), 스마트 폰, Chipset BSP
Armv8-A 아키텍처의 핵심 기능을 100% 이해하고, 이를 기반으로 실무 업무를 시작하는 것이 강의의 목표입니다:
실제 현업에서 사용하는 Armv8-A 아키텍처 핵심 기능을 실행 흐름 기준으로 이해한다.
TRACE32 디버거를 활용해 어셈블리 명령어 단위로 코드를 추적하고 분석할 수 있다.
Exception / Interrupt 발생 시의 실행 흐름을 명확히 이해하고, 동작 원인을 설명할 수 있다
레지스터·어셈블리 관점에서 Linux 커널 동작을 분석할 수 있다.
브링업 이슈 및 커널 크래시 발생 시, 원인을 추적하기 위한 1차 분석을 할 수 있다.
아래와 같은 리눅스 시스템 소프트웨어 개발자(신입 및 주니어 개발자)입니다:
Armv8-A 기반 시스템에서 Linux 드라이버를 개발하는 엔지니어
커널 크래시, 부팅 이슈, Fault 문제를 분석하고 해결해야 하는 개발자
펌웨어–커널–드라이버 간 흐름 이해가 필요한 시스템 엔지니어
Armv8-A 아키텍처를 이론이 아닌 실행 관점으로 이해하고 싶은 실무 개발자
TRACE32를 활용해서 현업에서 반드시 활용되는Armv8-A 아키텍처의 주요 기능(어셈블리 명령어, 익셉션)을 실습으로 진행합니다.
Arm 기반 칩셋의 부팅 시퀀스와 실전 프로젝트에서 발생하는 케이스 스터디를 소개합니다.
실제 메모리 덤프와 커널 로그를 디버깅하면서 Armv8-A 아키텍처를 실습(익셉션)합니다.
(1일차)
TRACE32 실습 환경(시뮬레이터 모드) 체크
기본 명령어, 실습 환경
Armv8-A 아키텍처 핵심 피쳐 및 실행 모델
어셈블리 명령어, 레지스터, 익셉션 모델
AAPCS, 하이퍼바이저, 트러스트존, MMU
Exception Level (EL0~EL3) 구조와 실행 흐름
Boot Sequence와 익셉션 레벨
익셉션 레벨 별 소프트웨어 스택
TRACE32로 익셉션 레벨 실습
레지스터 구조 및 주요 시스템 레지스터
디버깅 과정에서 주로 사용되는 레지스터
스타트업 코드에서 설정되는 시스템 레지스터 분석
TRACE32로 주요 레지스터 분석
어셈블리 명령어와 주요 구조 분석
주요 어셈블리 명령어 분석
어셈블리 명령어를 C 코드로 리버싱해보기
TRACE32로 어셈블리 명령어 디버깅 실습
Calling convention 분석
주요 레지스터와 명령어 분석
TRACE32로 Calling convention 디버깅 실습
(2일차)
익셉션과 인터럽트의 실행 흐름
주요 실행 흐름과 관련 시스템 레지스터 분석
메모리 덤프를 활용한 익셉션 실습 (TRACE32)
TrustZone
시큐어 월드와 논시큐어 월드의 개념
Secure OS의 디버깅 방법 (익셉션, 와치독 리셋)
Arm Trusted Firmware 주요 스택 분석
Arm Virtualization(하이퍼바이저)
Virtualization 주요 명령어와 하이퍼바이저 스택 분석
XEN 하이퍼바이저의 익셉션 핸들러 분석
TRACE32로 주요 시스템 레지스터 분석
가상 메모리 시스템
멀티 레벨 페이지 변환 과정 분석 (VA39, VA48)
주요 시스템 레지스터 (TCR_EL1, TTBR1_EL0)
TRACE32로 가상 주소 변환 디버깅 실습
Armv9-A 확장 기능 소개
Memory Tag Extensions (MTE )
PAC, BTI feature
실무 개발에서 활용되는 리눅스 커널의 주요 기능을 이해해, 빠른 시간에 리눅스 디바이스 드라이버(칩셋 개발자, 제품 개발자)를 개발하는 것이 주된 목표입니다. 또한 실무에서 발생하는 다양한 문제를 스스로 해결할 수 있는 역량 확보도 주요 목표입니다:
리눅스 커널의 부팅 흐름과 디바이스 드라이버의 초기화 과정을 단계별로 이해한다.
리눅스에서 제공하는 다양한 디버깅 기능을 잘 활용(debugfs, ftrace)해서 다양한 디바이스 드라이버의 이슈를 해결할 수 있다.
리눅스 커널의 핵심인 프로세스, 인터럽트, 커널 동기화 기법, 가상 메모리에 대한 개념을 익혀서 커널 API에 익숙해진다.
바이너리 덤프를 분석해서 커널의 주요 자료 구조를 분석할 수 있다.
커널 로그, 메모리 덤프를 기반으로 크래시 및 브링업 이슈에 대한 1차 분석을 스스로 수행할 수 있다.
아래와 같은 리눅스 시스템 소프트웨어 개발자(신입 및 주니어 개발자)입니다:
Arm 기반 SoC에서 Linux 커널 및 디바이스 드라이버를 개발하는 엔지니어
리눅스 디바이스(커널 빌드, 디바이스 트리 분석, 부트로더 최적화)를 단기간에 개발해야 하는 엔지니어
빠른 시간 내에 디바이스 드라이버를 customize하려는 엔지니어
리눅스 커널의 디버깅 기능을 파악해, 부팅 실패, 커널 패닉, 커널 크래시, 워치독 리셋 등의 이슈를 분석해야 하는 개발자
펌웨어 부트로더와 커널 드라이버 간 전체 실행 흐름을 이해해야 하는 시스템 엔지니어
디바이스 드라이버를 개발하는데 필요한 다양한 기능을 디버깅하는 (디바이스 트리, 커널 컨피그, 디바이스 드라이버)를 패치를 직접 제작합니다.
실습에서는 현업에서 직접 사용(빅 테크 업체 사용: 퀄컴, 엔비디아)하는 Crash utility와 TRACE32를 활용합니다.
리눅스 커널의 주요 자료 구조(프로세스, 인터럽트, 태스크 스케줄링, 가상 메모리 시스템)를 메모리 덤프 실습으로 분석합니다.
Arm 기반 칩셋(혹은 RISC-V)의 부팅 시퀀스와 실전 프로젝트에서 발생하는 케이스 스터디를 소개합니다.
(1일차)
TRACE32 실습 환경(시뮬레이터 모드) 체크 + 보드 환경
기본 명령어, 실습 환경
리눅스 커널을 배워야 하는 이유
디바이스 드라이버를 효율적으로 개발
프로젝트의 다양한 이슈를 해결
안정된 코드 작성하는 기반
리눅스 커널을 이해하는데 필요한 Arm 아키텍처(Armv8, AArch64 기준)
익셉션 레벨, 익셉션 벡터 테이블, 레지스터(General Purpose)
(필요 시) RISC-V 까지 설명: Privilege mode과 트랩 핸들러
커널 주요 디버그 피쳐
printk, debugfs, ftrace, kdump
메모리 덤프와 커널 로그 분석 방법
디버깅 패치 작성 방법
Crash utility 사용 방법
디바이스 드라이버의 핵심 피쳐
sysfs와 플렛폼 디바이스의 구조
디바이스 트리의 구조와 관련 커널 핵심 API 분석
디바이스 트리 디버깅 방법
주요 디바이스 드라이버의 핵심 구조 설명
프로세스
프로세스의 기본 개념, 프로세스의 생성과 종료 과정 분석
struct task_struct, thread_info 자료 구조 분석
프로세스와 스택의 구조 분석
프로세스 생성과 종료 과정에서 도출되는 주요 이슈 분석
메모리 덤프 분석으로 주요 자료 구조 분석
(2일차)
IRQ와 bottom Half
인터럽트 벡터(Armv8 관점) 핸들러 분석
인터럽트 컨텍스트와 in_interrupt() 소개
인터럽트 디스크립터(struct irq_desc) 자료 구조 분석
메모리 덤프 분석으로 주요 자료 구조 분석
Bottom half
주요 Bottom half 기법(threaded irq, 워크큐, soft irq) 소개
인터럽트 관련 주요 이슈 디버깅 방법 (IRQ Storm, 디바이스 드라이버 주요 이슈)
디바이스 드라이버 주요 bottom half 이슈
동적 타이머
jiffies와 HZ의 기본 개념
동적 타이머 핸들러 작성 방법
실행 시간의 흐름을 디버깅하는 방법
시스템 콜과 시그널
시스템 콜의 기본 개념과 실행 흐름
시스템 콜과 디바이스 드라이버의 실행 흐름
시그널의 기본 동작
실전 프로젝트에서 알아야 하는 주요 시그널
메모리 덤프 분석으로 주요 자료 구조 분석
Task Scheduling
스케줄링과 컨텍스트 스위칭의 개념 이해
우선 순위와 프로세스 상태 파악
자료구조: 런큐, 스케줄러 클래스
preemption의 시점과 preemption enable/disable
sched_switch, sched_wake_up: ftrace 분석
Task scheduling 연관된 주요 성능 이슈 소개
메모리 덤프 분석으로 주요 자료 구조 분석
(3일차)
Synchronization
race와 critical section 소개
spinlock: 큐드 스핀락, 티겟 스핀락
뮤텍스의 동작 원리와 주요 자료 구조 소개
atomic operation
실전 프로젝트 주요 race 이슈 소개
메모리 덤프 분석으로 주요 자료 구조 분석
VFS(Virtual File System)
VFS의 전체 구조와 실행 흐름 소개
VFS 관련 자료 구조
핵심 파일 시스템 소개 - ext4, fat
파일 시스템 관련 주요 실전 이슈
메모리 덤프 분석으로 주요 자료 구조 분석
Memory Management
가상 메모리 맵과 가상 메모리 시스템의 구조 설명
struct zone와 node 분석
주요 메모리 할당자 (SLUB allocator)
kmalloc와 gfp_flags
Memory 관련 주요 이슈와 디버그 피쳐
메모리 덤프 분석으로 주요 자료 구조 분석
주요 디바이스 드라이버 이슈 케이스 스터디
디바이스 노드 등록 안됨
인터럽트 등록이 안되는 이슈 및 인터럽트 Storm 이슈
펌웨어 이미지 로딩 실패 이슈
i2C와 spi 전송 실패
수강생 Q/A
디버깅, 문제 해결, 커널 코드 분석 방법
하드웨어 관련된 이슈 디버깅 방법
오픈 소스 커뮤니티
RISC-V 아키텍처의 핵심 기능을 100% 이해하고, 이를 기반으로 실무 업무를 시작하는 것이 강의의 목표입니다:
실무에 활용되는 RISC-V 아키텍처의 핵심 기능을 이해한다.
TRACE32 디버거로 어셈블리 명령어를 디버깅할 수 있다.
Trap(Exception)과 Interrupt 발생 시 실행 흐름을 정확히 이해하고 설명할 수 있다.
레지스터·어셈블리 관점에서 커널 동작을 분석할 수 있다.
브링업 이슈 및 크래시 이슈에 대한 1차 분석을 할 수 있다.
아래와 같은 리눅스 시스템 소프트웨어 개발자(신입 및 주니어 개발자)입니다:
RISC-V 기반 시스템에서 Linux 드라이버를 개발하는 엔지니어
RISC-V 기반 시스템에서 시스템 브링업(부트로더, 리눅스 드라이버)하려는 엔지니어
커널 크래시, 부팅 이슈, Fault 문제를 분석하고 해결해야 하는 개발자
펌웨어–커널–드라이버 간 흐름 이해가 필요한 시스템 엔지니어
RISC-V 아키텍처를 이론이 아닌 실행 관점으로 이해하고 싶은 실무 개발자
Arm 아키텍처와 RISC-V의 차이점을 비교하면서 설명합니다.
TRACE32를 활용(시뮬레이터 모드)해서 현업에서 반드시 활용되는RISC-V 아키텍처의 주요 기능(어셈블리 명령어, 익셉션)을 실습으로 진행합니다.
RISC-V 기반 칩셋의 부팅 시퀀스와 실전 프로젝트에서 발생하는 케이스 스터디를 소개합니다.
실제 메모리 덤프와 커널 로그를 디버깅하면서 RISC-V 아키텍처를 실습(익셉션)합니다.
(1일차)
TRACE32 실습 환경(시뮬레이터 모드) 체크
기본 명령어, 실습 환경
RISC-V 아키텍처 핵심 피쳐 및 실행 모델 소개
어셈블리 명령어, 레지스터, 익셉션 모델
Opensbi, Calling convention, MMU
Privilege mode 구조와 실행 흐름
Boot Sequence와 머신 모드(Machine mode)
Privilege mode별 소프트웨어 스택
TRACE32로 Privilege mode 실습
레지스터 구조 및 주요 CSR 레지스터
디버깅 과정에서 주로 사용되는 레지스터
스타트업 코드에서 설정되는 CSR 레지스터 분석
TRACE32로 주요 레지스터 분석
어셈블리 명령어와 주요 구조 분석
주요 어셈블리 명령어 분석
어셈블리 명령어를 C 코드로 리버싱해보기
TRACE32로 어셈블리 명령어 디버깅 실습
Calling convention 분석
주요 레지스터와 명령어 분석
TRACE32로 Calling convention 디버깅 실습
(2일차)
익셉션과 인터럽트의 실행 흐름
주요 실행 흐름과 관련 CSRs 분석
메모리 덤프를 활용한 익셉션 실습 (TRACE32)
메모리 synchronization
주요 어셈블리 명령어
주요 케이스 스터디 소개
가상 메모리 시스템
멀티 레벨 페이지 변환 과정 분석 (SA39, SA48)
주요 CSR 레지스터 (satp)
TRACE32로 가상 주소 변환 디버깅 실습
메모리 덤프 분석 실습
스택 Corruption 디버깅, 콜 스택 복원 (TRACE32 사용)
주요 크래시 시그니처 분석
실습 강의에서 활용되는 TRACE32는 시뮬레이터 모드이며, 인프런 '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1/2부 저자 직강'에서 내려 받을 수 있습니다. (강의 수강 필요)
따로 실습 보드가 필요하지 않으며, 노트북만 필요합니다.
실습 강의에서 사용되는 메모리 덤프는 따로 제공하며 메모리 덤프 디버깅 실습은 TRACE32 시뮬레이터 모드를 기반으로 진행합니다.
주로 Armv8-A 주요 기능(Cortex-A53, CortexA78) 을 설명하며, 필요 시 Armv9-A(Cortex-X2)와 Armv7-A (Cortex-A9, A15)에 대한 내용까지 설명 가능합니다.
리눅스 커널 버전은 v6.1~v6.6 사이로 진행합니다. 이전 커널 버전(v5.4~v5.15)도 진행 가능하며, 협의될 수 있습니다.
3월
31일
챌린지 시작일
2026년 3월 31일 오후 03:00
챌린지 종료일
2026년 4월 22일 오후 02:30
전체
31개
실제 현업에서 사용하는 Armv8-A 아키텍처 핵심을 실행 흐름 기준으로 이해합니다.
TRACE32 디버거를 활용해 어셈블리 명령어 단위로 코드를 추적하고 분석할 수 있습니다.
Exception / Interrupt 발생 시의 실행 흐름을 명확히 이해하고, 동작 원인을 설명할 수 있습니다.
레지스터·어셈블리 관점에서 Linux 커널 동작을 분석할 수 있습니다.
브링업 이슈 및 커널 크래시 발생 시, 원인을 추적하기 위한 1차 분석 역량을 확보합니다.
학습 대상은
누구일까요?
Armv8-A 기반 Linux 드라이버 개발을 시작했거나 1~3년 차 엔지니어
Armv8-A 아키텍처를 ‘이론’이 아니라 ‘디버깅 관점’으로 배우고 싶은 실무 개발자
커널 크래시, 부팅 실패, Fault 이슈를 분석해야 하지만 접근 방법이 막막한 개발자
펌웨어–커널–드라이버 간의 연결 구조를 명확히 이해해야 하는 시스템 엔지니어
로그만 보던 단계에서 실행 흐름 분석 단계로 도약하고 싶은 분
선수 지식,
필요할까요?
운영체제
취소 및 환불 규정
챌린지는 지식공유자가 설정한 수업 최소 정원이 충족되지 않을 경우, 폐강 안내가 고지되며 결제 내역이 자동취소됩니다.
지식공유자님의 다른 강의를 만나보세요!
모집 인원 25명
₩550,000





