리눅스 커널의 구조와 원리: 디버깅 - Advanced 실전 [저자 직강 1부-3]

97

이 수강하고 있어요.

Thumbnail

중급자를 위해 준비한
[시스템, linux-kernel] 강의입니다.

시스템 소프트웨어에서 가장 많이 쓰이는, 최신 리눅스 커널(v6.1)의 가장 진보된 커널 메모리 덤프 디버깅 스킬을 "디버깅을 통해 배우는 리눅스 커널의 구조와 원리"의 저자가 제대로 설명합니다.

이런 걸
배워요!

  • TRACE32와 Crash Utility 프로그램으로 리눅스 커널 메모리 덤프 디버깅

  • 실전 프로젝트를 개발하는 과정에서 만날 수 있는 다양한 케이스 스터디

  • boot-time ftrace tracer

  • Crash Utility 프로그램을 실행해 리눅스 커널의 주요 자료 구조를 디버깅

  • TRACE32 프로그램을 실행해 리눅스 커널의 주요 자료 구조를 디버깅

<공지>

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

수강생 100명 돌파(리눅스 커널의 구조와 원리)를 기념하여 30% 할인 쿠폰을 발행합니다. 감사합니다. 선착순 100명입니다.

  • 쿠폰 : 15891-c7cd9ab99797

2. 로드맵 안내 🎯

이번 강의 <리눅스 커널의 구조와 원리: 디버깅 - Advanced 실전 [저자 직강 1부-3]>는 로드맵 '시스템 소프트웨어 개발자를 위한 Linux kernel - basic course' 에 포함된 강의입니다.

체계적으로 리눅스 커널을 구성하는 주요 기능을 배우시려는 분은 로드맵(전체 강의 30% 할인)을 활용하시면 좋습니다.

시스템 반도체, 자동차 분야 등

시스템 소프트웨어 개발자라면 꼭 알아야 할 리눅스 커널


모든 IT 기기에서 가장 많이 사용되는 운영체제는 무엇일까요? 바로 리눅스 운영체제입니다. 스마트 폰, 디지틀 TV, 항공 엔터테인먼트 시스템 및 서버에 사용되고 있습니다. 시스템 반도체 업체에서 리눅스(리눅스 디바이스 드라이버)를 활용해 자신이 설계한 하드웨어를 제어합니다. 또한 전기 자동차(Automotive)을 구성하는 다양한 부품(인포테인먼트, 자율주행, 텔레메틱스)에도 리눅스가 많이 활용되고 있습니다.

리눅스 운영체제의 핵심은 리눅스 커널입니다. Armv8-A 아키텍처와 더불어 현재 시스템 소프트웨어 업계에서 가장 많이 필요한 기반 지식이 요구되는 내용이 리눅스 커널이라고도 볼 수 있어요.

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

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

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

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

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

그런데 리눅스 커널은 시스템 소프트웨어 분야의 입문자에 있어 거대한 장벽과 같은 존재입니다. 입문자들은 리눅스 커널을 배우다가 수 차례 포기한 경험이 있을 것입니다. 그 어려운 리눅스 커널 버전이 업그레이드되면서 점점 더 복잡하게 진화하고 있습니다. 2024년 이후에는 리눅스 커널 버전은 v6.6 이상으로 업그레이드되고 있는데, 진입 장벽이 더 높아지고 있습니다.

시스템 반도체, 전기 자동차 분야를 포함한 다양한 분야에 포진된 리눅스 시스템 소프트웨어 개발자 분들은 리눅스 커널을 잘 알아야 개발 역량을 키울 수 있다는 사실은 알고 있습니다. 하지만 리눅스 커널을 어떻게 배워야 하고 무엇보다 실무에서 어떤 내용을 잘 알아야 하는지 감을 잡기 어려운 상황입니다.

리눅스 시스템 소프트웨어 개발자들이 가장 키우고 싶은 개발 역량은?

리눅스 시스템 소프트웨어 개발자들이 가장 배우고 싶은 실무 스킬은 무엇일까요? 바로 디버깅 스킬입니다. 디버깅은 문제 해결 능력과 비례하므로, 디버깅 능력을 키우고 싶어합니다. 리눅스 커널에 대한 블로그나 자료는 많으나 최신 디버깅 기법을 활용해 문제를 체계적으로 해결하는 방법은 거의 다루지 않습니다.

그래서 제가 쓴 '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' 3장에서 '디버깅과 코드 학습'에서 디버깅에 대한 내용을 다루고 있습니다.

강의의 차별화 포인트

이번 강의는 그 동안 한번도 유튜브나 어느 강의 플렛폼에서 다룬 적이 없는 콘텐츠로 구성되어 있습니다! 최신 리눅스 커널 디버깅 방법과 다양한 케이스 스터디를 다룹니다. 또한 리눅스 커널 메모리 덤프를 통해 커널의 자료구조를 디버깅하는 방법을 소개합니다. 이 강의를 수강하시는 분은 교육용 프로그램(TRACE32)을 내려 받아 직접 실습하실 수 있습니다.

1. 실전 개발에 가장 가까운 디버깅 방법 총망라

취업 준비생이나 신입 개발자들이 가장 알고 싶어하는 업무 스킬은 어떤 디버깅 툴을 활용해 어떻게 디버깅하는가입니다. 이번 강의에서는 가장 진보된 디버깅 방법인 '커널 메모리 덤프'를 활용해 커널의 자료 구조를 디버깅하는 방법을 소개합니다.

2. 글로벌 시스템 반도체 업체의 리눅스 커널 BSP 개발자들이 하는 디버깅 방법 소개

최근 시스템 반도체 업계가 떠오르고 있습니다. 글로벌 시스템 반도체 업체 중 최고의 기술력을 지닌 퀄컴 리눅스 커널 BSP 개발자는 어떤 방식으로 리눅스 커널 드라이버를 디버깅할까요?

이번 강의에서 이 내용을 다룹니다. 리눅스 커널 메모리 덤프를 TRACE32 시뮬레이터를 사용해 커널의 자료 구조를 디버깅하면서 crash-utility로 메모리 덤프를 로딩해 커널의 주요 동작을 분석합니다.

3. 최신 ftrace 디버깅 방법 'boot-time tracer' 소개

리눅스 커널 버전이 업그레이드되면서 디버깅 방법도 진화하고 있습니다. ftrace에서는 간단한 설정만 바꾸면 부팅과정에서 커널의 동작을 트레이싱하는 'boot-time tracer' 기능이 제안됐습니다. 이번 강의에서는 'boot-time tracer'를 활용하는 다양한 방법을 소개합니다.

4. TRACE32 시뮬레이터 프로그램(교육용)과 리눅스 커널 덤프 제공

리눅스 시스템 소프트웨어 개발 전반에 TRACE32 디버거와 프로그램은 광범위하게 사용됩니다. TRACE32 프로그램은 라이선스가 있어야 실행할 수 있습니다. 이 강의를 수강하시면 교육용 TRACE32 시뮬레이터 프로그램을 '인프런 강의 강의 자료'에서 내려 받아 직접 TRACE32 시뮬레이터 프로그램을 활용해 메모리 덤프를 디버깅할 수 있습니다. 또한 3개 커널 메모리 덤프를 내려 받아 실습하실 수 있습니다.

이런 내용을 배워요

실전 프로젝트에서 덤프 분석이 필요한 이유에 대해 설명합니다. 실전 프로젝트에서 많이 활용되는 Crash-Utility와 TRACE32에 대해 소개합니다.

Crash-Utility와 TRACE32를 사용해 실전 프로젝트에서 어떤 방식으로 디버깅하는지 상세히 설명합니다.

TRACE32를 설명하는 책의 내용을 설명하면서 TRACE32를 직접 실행해 디버깅을 합니다. 수업을 들으면서 교육용 TRACE32 프로그램(교육용: 시뮬레이터용)을 내려 받아 같이 따라하면서 실습을 할 수 있습니다.

'강의 자료'에 업로드된 TRACE32(교육용, 시뮬레이터) 프로그램을 설치하고 실행하는 방법을 설명합니다. 또한 '강의 자료'에 업로드된 커널 메모리 덤프를 내려 받아 TRACE32 프로그램으로 커널 메모리 덤프를 로딩하는 방법을 상세히 설명합니다.


ftrace를 설정하는 3가지 방법을 소개하고 boot-time ftrace tracer가 필요한 이유에 대해서 상세히 설명합니다.

boot-time ftrace tracer를 설정하는 방법을 설명하고 관련 커널 소스 코드를 상세히 분석합니다.

부트 커멘드 라인을 설정하는 방법을 소개하고 관련 ftrace 로그를 상세히 분석합니다. 커널 로그를 ftrace 로그로 추출하는 방법과 관련 메시지를 분석하는 방법을 소개합니다.

ftrace message를 상세히 분석하고 관련 동작 원리를 설명합니다. 또한 initcall과 관련된 커널 소스 코드도 자세히 분석합니다.

Crash Utility 프로그램을 실행해 리눅스 커널의 주요 자료 구조를 디버깅합니다. 관련 커널 드라이버 소스 코드도 함께 분석하면서 동작 원리를 상세히 설명합니다.


Crash Utility 프로그램으로 리눅스 커널 덤프를 디버깅하면서 관련 기능의 상세한 동작 원리를 설명합니다.


실전 프로젝트를 개발하는 과정에서 만날 수 있는 다양한 케이스 스터디를 소개합니다. 관련 커널 로그와 커널의 동작 원리를 상세히 분석합니다. 또한 디버깅을 통해 문제를 어떻게 해결하는지에 대해서도 설명합니다.


실전 프로젝트를 개발하는 과정에서 만날 수 있는 스택 오염과 메모리 릭 이슈에 대한 케이스 스터디를 설명합니다.

리눅스 커널의 메모리 시스템에 대한 자료구조와 구조를 Crash Utility 디버깅을 통해 설명합니다.

책에서 소개된 TRACE32의 주요 명령어(메모리 주소 캐스팅)을 설명합니다. 직접 TRACE32 프로그램으로 관련 명령어를 사용하는 방법을 상세히 설명합니다.

시스템 콜 테이블의 심벌 정보를 설명하고 TRACE32 명령어(d.v %y.ll sys_call_table)를 사용해 시스템 콜 핸들러 함수 정보를 확인합니다. 이어지는 강의에서 TRACE32의 주요 명령어와 함께 리눅스 커널의 핵심 자료 구조도 설명합니다.

실전 프로젝트를 진행하는 과정에서 활용되는 실용적인 명령어(%l 옵션: 레지스터 정보 출력)를 상세히 설명합니다.

교육용 TRACE32 프로그램과 3개 리눅스 커널 메모리 덤프 제공

이번 강의에서는 리눅스 시스템 소프트웨어 업계에서 가장 진보된(Advanced) 디버깅 방식인 - 글로벌 최고 수준 시스템 반도체 업체인, 퀄컴 리눅스 커널 개발자들이 디버깅하는 - 리눅스 커널 메모리 덤프를 디버깅하는 방법을 소개합니다. TRACE32와 Crash utility와 같은 디버깅 프로그램을 활용해 '리눅스 커널 메모리를 '디버깅할 수 있는 고급 디버깅 방법을 제공합니다.

교육용 TRACE32 프로그램(시뮬레이터 버전)을 강의 커리큐럼에서 내려받을 수 있습니다. 수강생은 TRACE32 프로그램으로 이번 강의에서 제공되는 커널 메모리 덤프를 로딩해 같이 따라하면서 디버깅할 수 있습니다.

오픈 소스 프로젝트로 운영되는 Crash Utility를 직접 내려 받아 커널 메모리 덤프를 로딩해 디버깅할 수 있습니다. Crash Utility에서 지원하는 다양한 기능을 활용해 커널의 자료구조나 콜 스택을 직접 디버깅할 수 있습니다.

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

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

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

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

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

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

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


국내에서 어느 누구보다 리눅스 커널을 구성하는 주요 기능을 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다.

수강 전 참고 사항

TRACE32 프로그램을 사용하실 때 유의사항

  • TRACE32 교육용 프로그램은 윈도우 환경에서만 실습할 수 있습니다.

  • TRACE32 교육용 프로그램은 오로지 '교육용'으로만 활용될 수 있으며 상업적인 용도로 수정이나 배포하실 수 없습니다.

  • 이번 강의의 TRACE32 교육용 프로그램을 사용하다가 문의 사항이 있으면 반드시 교육자에게 질문해주세요.

실습 환경 및 제공되는 강의 자료

  • 운영 체제 및 버전(OS): 라즈베리 파이(라즈비안), 리눅스 커널 v6.1

  • TRACE32 교육용 프로그램 및 설치 가이드 문서(강의)

  • 3개 리눅스 커널 메모리 덤프(vmcore)


선수 지식 및 유의사항

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

  • '리눅스 커널의 구조와 원리: 디버깅 - Basic [저자 직강 1부-2]' 강의를 되도록 먼저 듣고 오시면 좋습니다.

  • 운영체제나 컴퓨터 구조에 대해 알고 있으면 더 편하게 수업을 들을 수 있습니다.

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

이런 분들께
추천드려요!

학습 대상은
누구일까요?

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

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

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

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

선수 지식,
필요할까요?

  • 운영체제

  • C언어

  • 컴퓨터구조

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

커리큘럼

전체

41 ∙ 5시간 39분

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

수강평

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