Course Outline

소개

    GNU/Linux 라이선스 커널 버전 관리 릴리스 주기의 간략한 역사 커널 트리 메인라인 커널 vs. 사용자 공간 메커니즘 vs. 정책 커널 드라이버 대안 RTOS vs. Linux

메모리 Management

    커널 페이지 영역 API 슬랩의 가상 메모리와 실제 메모리 메모리 할당

커널 패치

    라이프 사이클 git 커널 소스 만들기 패치 확인 패치 수정 패치 배송 패치 감사 코드

커널 모듈

    커널 소스 가져오기 장치 드라이버 구성/빌드/설치(정적으로 연결됨, 런타임에 로드됨) init/exit 라이센스 EXPORT SYMBOL 트리에서 GPL makefile 모듈-init-tools 커널 트리의 모듈 Kconfig 매개변수 전달 스파스

문자 드라이버

    아키텍처 사용자/커널 인터페이스 I/O 하위 시스템 VFS sysfs(장치, 버스, 드라이버, 클래스), kobject/ktype/kset Linux 커널 드라이버 모델 장치 파일 char 드라이버 초기화 등록 열기, 릴리스 cdev, cdev 추가, cdev del,... 메이저/마이너 번호 udev, udevmonitor, udevadm

고급 문자 드라이버 작업

    ioctl 잠금 해제됨 ioctl 호환 ioctl 사용자 공간 API 커널 공간 API 프로세스 라이프사이클 수면/차단 수면/깨우기 대기 대기열 천둥 떼 폴링/선택

커널 디버깅

    버그 디버깅 커널의 git 디버그 지원으로 커널 바이너리 검색 디버깅 printk syslogd, klogd, loglevels, 속도 제한, 디버그 수준, 디버그 선택적 하위 시스템 debugfs 쿼리를 통한 디버깅 죄송합니다 디버깅, 어설션 죄송합니다 Magic SysRq 키 kgdb/kdb JTAG

트레이싱

    gcov lcov oprofile ftrace nop 추적기 기능 추적기 sched 스위치 추적기 기능 그래프 추적기 동적 추적기
추적-cmd/kernelshark
  • 성능
  • LTTng
  • 인터럽트
  • 인터럽트 대 폴링 인터럽트 프로그램 섹션 재진입 이벤트 인터럽트 핸들러 공유 인터럽트 핸들러 인터럽트 흐름 인터럽트 제어

      작업 연기

    위쪽/아래쪽 절반 Softirqs 태스크릿 작업 대기열 스레드 인터럽트

      동시성

    임계 영역/섹션 원자 경쟁 조건 동기화 잠금 잠금 솔루션 교착 상태 경합 무엇을 잠글 것인가? 무엇을 사용할 수 있나요? 원자 연산 스핀 잠금 리더-라이터 스핀 잠금 세마포 이진 세마포 뮤텍스 리더-라이터 세마포 완료 변수 순차 잠금 비활성화 선점 순서 및 장벽

      시간

    HZ Jiffies의 크거나 작은 지연 커널 타이머

      하드웨어 I/O

    I/O 포트 I/O 메모리 레지스터 액세스 부작용을 처리하는 방법은 무엇입니까?

      사용자 커널 Communication

    put(get)_user() 복사 대상(from)_user() 커널 I/O 메모리 매핑 procfs sysfs debugfs Relayfs netlink ioctl

      이식성

    단어 크기 불투명 유형 부호 있는/부호 없는 문자 데이터 정렬 통합 승격 코드 재사용 엔디아니스 시스템 틱 페이지 크기 명령어 순서 SMP/선점/고메모리

      달리 명시된 경우를 제외하고 이 과정 개요는 Attribution-NonCommercial-ShareAlike 4.0 International(CC BY-NC-SA 4.0)에 따라 라이센스가 부여됩니다.

    Requirements

    • 최종 사용자로서 GNU/Linux 시스템을 사용하는 데 대한 기본 지식
    • 명령줄 셸에 대한 기본 지식
    • 사용자 공간에 대한 기본 지식 / 애플리케이션 개발
    • 중급 C 프로그래밍 지식
    • 이전에 Embedded GNU/Linux Systems Architecture에 참석했거나(강력히 권장합니다!) 거기에 설명된 주제를 잘 이해하고 있어야 합니다.
     35 Hours

    Number of participants



    Price per participant

    회원 평가 (3)

    Related Courses

    The Yocto Project - An Overview - hands-on

    28 Hours

    IBM MobileFirst Platform for Hybrid Mobile Application Development

    21 Hours

    Related Categories