연락처 정보

코스 개요

1. 리눅스 커널 소개

  • 임베디드 리눅스 개요
  • 리눅스 커널 아키텍처
  • 사용자 공간과 커널 공간의 차이점
  • 커널의 주요 역할
  • 커널 개발 워크플로우
  • 지원되는 임베디드 플랫폼 소개

2. 개발 환경 설정

  • 개발용 워크스테이션 준비하기
  • 크로스 컴파일의 기본 개념
  • 필요한 개발 도구 설치하기
  • BeagleBone Black 개발 보드 세팅하기
  • 시리얼 콘솔 구성 방법
  • 타겟 장치 부팅 절차

3. 커널 소스 획득 및 이해

  • 리눅스 커널 소스 트리 구조
  • 안정화 버전과 장기 지원 버전의 차이점
  • 커널 소스 다운로드 방법
  • 소스 코드 구조 탐색하기
  • 커널 관련 문서들
  • 커널 버전 관리 방법

4. 커널 설정, 컴파일 및 부팅

  • menuconfig를 활용한 커널 설정법
  • 커널 기능 선택하기
  • 크로스 컴파일을 통한 커널 빌드
  • 커널 이미지 생성 방법
  • 커널 모듈 설치 절차
  • 부트로더의 기본 개념
  • 직접 만든 커널으로 부팅하기

5. 디바이스 트리 기초

  • 디바이스 트리의 목적과 역할
  • 디바이스 트리 소스(DTS) 파일 개요
  • 디바이스 트리 blob(DTB)에 대하여
  • 하드웨어 설명 방식 이해하기
  • 디바이스 트리 파일 수정 방법
  • 디바이스 트리 빌드 및 배포 절차

6. 리눅스 커널 모듈

  • 커널 모듈의 구조적 원리
  • 로드 가능한 커널 모듈 제작 방법
  • 모듈을 로드하고 언로드하는 과정
  • 모듈 매개변수 설정법
  • 모듈 간 의존성 관리하기
  • 커널 모듈과의 상호작용 방식
  • 모듈 디버깅 기법

7. 리눅스 커널 디버깅

  • printk()를 이용한 커널 로그 생성
  • dmesg 명령어 활용법
  • 동적 디버깅 기법
  • 커널 패닉 원인 분석 방법
  • Oops 메시지 해석하기
  • GDB를 통한 커널 디버깅
  • 기본적인 성능 추적 도구 사용법

8. 캐릭터 디바이스 드라이버

  • 리눅스의 디바이스 드라이버 모델 개요
  • 캐릭터 디바이스에 관하여
  • 드라이버 등록 절차
  • 파일 작업 처리 메커니즘
  • 읽기 및 쓰기 동작 구현 방법
  • IOCTL 인터페이스의 이해와 활용
  • 메모리 관리 방식
  • 드라이버 종료 처리 절차

9. 드라이버 통합 및 하드웨어 접근 방법

  • 플랫폼 디바이스와 드라이버 관계
  • GPIO 프로그래밍 기초
  • 인터럽트 처리 방식
  • 타이머 및 지연 작업 활용법
  • 하드웨어 레지스터 접근 방법
  • 메모리 매핑 입출력 활용하기

10. Git을 이용한 버전 관리

  • Git의 기본 개념과 작동 원리
  • 커널 소스 코드 관리 전략
  • 브랜치 생성 및 병합 절차
  • 패치 파일 만들기 방법
  • 코드 변경사항 검토 기법
  • 커널 개발 분야에서의 협업 방식

11. 실습 중심의 커널 개발 연습

  • 직접 제작한 커널 구성하기
  • 커널 빌드 및 배포 체험하기
  • 간단한 커널 모듈 하나 만들어보기
  • 기본적인 캐릭터 디바이스 드라이버 개발 연습
  • 디바이스 트리 파일 수정 및 적용 시도해보기
  • BeagleBone Black에서 커널 문제 점검하기

12. 모범 사례 및 요약

  • 커널 코딩 스타일 기준
  • 유지보수 가능한 드라이버 작성법
  • 개발 시 자주 발생하는 실수 유형들
  • 커널 관련 문서 활용법
  • 오픈소스 프로젝트 기여 절차 안내
  • 핵심 개념들에 대한 정리
  • 질의응답 시간
  • 향후 리눅스 커널 개발을 위한 로드맵 제시

요건

GNU/리눅스 시스템 사용법에 대한 기본적인 이해가 필요합니다.

 14 시간

참가자 수


참가자별 가격

회원 평가 (2)

예정된 코스

관련 카테고리