Course Outline
소개
- GNU/Linux의 간략한 역사
- 라이센싱
- 커널 버전 관리
- 릴리스 주기
- 커널 트리
- 본선
- 커널 대 사용자 공간
- 메커니즘 대 정책
- 커널 드라이버 대안
- RTOS 대 Linux
메모리Management
- 가상 메모리 대 실제 메모리
- 커널에서의 메모리 할당
- 페이지
- 구역
- API
- 투수판
커널 패치
- 생명주기
- git
- 커널 소스
- 패치를 생성하다
- 패치 확인
- 패치 수정
- 배 패치
- 감사된 코드
커널 모듈
- 커널 소스 얻기
- 구성/빌드/설치
- 장치 드라이버(정적으로 링크, 런타임에 로드됨)
- 초기화/종료
- 라이센싱
- 수출 심볼 GPL
- 트리에서 나온 makefile
- 모듈-init-도구
- 커널 트리의 모듈
- 케이피그
- 매개변수 전달
- 부족한
숯 운전사
- 건축학
- 사용자/커널 인터페이스
- I/O 서브시스템
- 웹 서비스
- sysfs(장치, 버스, 드라이버, 클래스)
- kobject/ktype/kset
- 리눅스 커널 드라이버 모델
- 장치 파일
- char 드라이버
- 초기화
- 등록
- 열다, 풀어주다
- cdev, cdev 추가, cdev 삭제,...
- 장조/단조 번호
- udev, udevmonitor, udevadm
고급 캐릭터 드라이버 운영
- 아이오텍틀
- 잠금 해제된 ioctl
- 호환성 ioctl
- 사용자 공간 API
- 커널 공간 API
- 프로세스 라이프사이클
- 잠자기/차단
- 잠자다/깨어나다
- 대기열
- 천둥치는 무리
- 투표/선택
커널 디버깅
- 벌레
- 디버깅
- 커널 디버깅
- git을 사용한 이진 검색
- 커널의 디버그 지원
- printk syslogd, klogd, loglevels, 속도 제한, 디버그 수준, 디버그 선택적 하위 시스템
- debugfs 쿼리로 디버깅
- oops 디버깅, oops 어설션
- 매직 SysRq 키
- kgdb/kdb
- 제이태그
트레이싱
- 지코브
- 엘코브
- 프로필
- ftrace
- nop 추적기
- 함수 추적기
- sched 스위치 추적기
- 함수 그래프 추적기
- 동적 추적기
- trace-cmd/커널샤크
- 퍼프
- LTTng
인터럽트
- 인터럽트 대 폴링
- 방해하다
- 프로그램 섹션
- 재진입성
- 이벤트
- 인터럽트 핸들러
- 공유 인터럽트 핸들러
- 흐름을 방해하다
- 인터럽트 제어
작업 연기
- 상/하 반쪽
- 소프트아이큐
- 태스크릿
- 작업 대기열
- 스레드 인터럽트
동시성
- 중요 지역/섹션
- 원자
- 경쟁 조건
- 동기화
- 잠금
- 잠금 솔루션
- 이중 자물쇠
- 투쟁
- 무엇을 잠가야 하나요?
- 무엇을 사용할 수 있나요?
- 원자 연산
- 스핀 잠금
- 독자-작가 스핀락
- 신호기
- 이진 세마포어
- 뮤텍스
- 리더-라이터 세마포어
- 완료 변수
- 순차적 잠금
- 선점 비활성화
- 주문 및 장벽
시간
- 헤르츠
- 지피스
- 큰/작은 지연
- 커널 타이머
하드웨어 I/O
- I/O 포트
- I/O 메모리
- 레지스터에 접근하는 과정에서 발생하는 부작용을 어떻게 처리하나요?
사용자 커널 Communication
- put(get)_user()
- to(from)_user()로 복사
- 커널 I/O
- 메모리 매핑
- 프로스
- 시스템 파일 시스템
- 디버그fs
- 릴레이에프에스
- 넷링크
- 아이오텍틀
휴대성
- 단어 크기
- 불투명한 유형
- 부호 있는/부호 없는 char
- 데이터 정렬
- 통합 프로모션
- 코드 재사용
- 엔디아니스
- 시스템 틱
- 페이지 크기
- 지시 주문
- SMP/선점/고메모리
달리 명시되어 있지 않는 한, 본 강의 개요와 콘텐츠에는 Attribution-NonCommercial-ShareAlike 4.0 International(CC BY-NC-SA 4.0) 라이선스가 적용됩니다.
Requirements
- 최종 사용자로서 GNU/Linux 시스템 사용에 대한 기본적인 지식
- 명령줄 셸에 대한 기본적인 지식
- 사용자 공간/애플리케이션 개발에 대한 기본 지식
- 중급 C 프로그래밍 지식
- 이전에 Embedded GNU/Linux Systems Architecture 에 참석했어야 합니다(강력히 권장!) 및/또는 거기에 설명된 주제에 대한 좋은 이해가 있어야 합니다.
회원 평가 (5)
에드워드는 굉장한 진행자입니다
Zibusiso Ncube - Agricatural Research Council
Course - Ionic 4 and Angular for Developers
Machine Translated
Miguel's knowledge of the subject was extensive. He made the training easy to understand and the flow was balanced; adding on to each section with new features as needed. He covered everything that was asked and answered each and every question thoroughly. It was a very pleasant experience.
Paul Coaton - SEMPCheck Services
Course - Flutter Development Bootcamp with Dart
I thought the content (both theory and practical) was excellent, and exactly what we were wanting/expecting. The exercises were challenging but achievable.
Mike Kleinau - iVolve
Course - Introduction to Embedded Linux (Hands-on training)
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Course - The Yocto Project - An Overview - hands-on
The trainer was enthusiastic, kind, and loved the topic