문의를 보내주셔서 감사합니다! 팀원이 곧 연락드리겠습니다.
예약을 보내주셔서 감사합니다! 저희 팀 멤버 중 한 분이 곧 연락드리겠습니다.
코스 개요
소개
- GNU/Linux의 간략한 역사
- 라이선스
- 커널 버전 관리
- 릴리즈 주기
- 커널 트리
- 메인라인
- 커널 대 사용자 공간
- 기제 대 정책
- 커널 드라이버의 대안
- RTOS vs. Linux
메모리 관리
- 가상 메모리와 물리 메모리
- 커널에서의 메모리 할당
- 페이지
- 영역
- API
- 슬래브
커널 패치
- 수명 주기
- git
- 커널 소스 코드
- 패치 생성
- 패치 확인
- 패치 수정
- 패치 전송
- 검토된 코드
커널 모듈
- 커널 소스 코드 얻기
- 구성/빌드/설치
- 디바이스 드라이버 (정적으로 링크, 런타임에 로드)
- 초기화/종료
- 라이선스
- EXPORT_SYMBOL_GPL
- 트리 외부 Makefile
- module-init-tools
- 커널 트리 내 모듈
- Kconfig
- 매개변수 전달
- sparse
문자 드라이버
- 아키텍처
- 사용자/커널 인터페이스
- I/O 서브시스템
- VFS
- sysfs (디바이스, 버스, 드라이버, 클래스)
- kobject/ktype/kset
- Linux 커널 드라이버 모델
- 디바이스 파일
-
문자 드라이버
- 초기화
- 등록
- 열기, 해제
- cdev, cdev add, cdev del,...
- 메이저/마이너 번호
- udev, udevmonitor, udevadm
고급 문자 드라이버 연산
- ioctl
- 잠금 해제된 ioctl
- 호환성 ioctl
- 사용자 공간 API
- 커널 공간 API
- 프로세스 수명 주기
- 대기/차단
- 대기/깨우기
- 대기 큐
- 우박 세례
- poll/select
커널 디버깅
- 디버깅
-
커널 디버깅
- git 이진 검색
- 커널에서의 디버그 지원
- printk, syslogd, klogd, 로그 레벨, 속도 제한, 디버그 레벨, 선택적 서브시스템 디버그
- debugfs 쿼리로 디버깅
- OOPS 디버깅, OOPS 확인
- 마법 SysRq 키
- kgdb/kdb
- JTAG
추적
- gcov
- lcov
- oprofile
-
ftrace
- nop 추적기
- 함수 추적기
- 스케줄 스위치 추적기
- 함수 그래프 추적기
- 동적 추적기
- trace-cmd/kernelshark
- perf
- LTTng
인터럽트
- 인터럽트 vs. 폴링
- 인터럽트
- 프로그램 섹션
- 재진입성
- 이벤트
- 인터럽트 핸들러
- 공유 인터럽트 핸들러
- 인터럽트 흐름
- 인터럽트 제어
작업 연기
- 상단/하단 절반
- 소프트IRQs
- 태스크릿
- 작업 큐
- 스레딩 인터럽트
동시성
- 중요 영역/섹션
- 원자성
- 레이스 조건
- 동기화
- 잠금
- 잠금 해결 방법
- 데드록
- 경합
- 무엇을 잠글 것인가?
-
어떤 것이 사용 가능한가?
- 원자 연산
- 스핀 록
- 읽기-쓰기 스핀 록
- 세마포어
- 이진 세마포어
- 뮤텍스
- 읽기-쓰기 세마포어
- 완료 변수
- 순차적 잠금
- 프리emption 비활성화
- 순서와 장벽
시간
- HZ
- Jiffies
- 큰/작은 지연
- 커널 타이머
하드웨어 I/O
- I/O 포트
- I/O 메모리
- 레지스터 접근 시 사이드 이펙트 처리 방법
사용자-커널 통신
- put(get)_user()
- copy to(from)_user()
- 커널 I/O
- 메모리 매핑
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
포터블성
- 단어 크기
- 불투명한 타입
- 부호/부호 없는 문자
- 데이터 정렬
- 정수 프로모션
- 코드 재사용
- 엔디안성
- 시스템 틱
- 페이지 크기
- 명령어 순서
- SMP/프리emption/높은 메모리
저작권 표시가 없는 경우, 이 내용과 과정 개요는 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) 라이선스 하에 제공됩니다.
요건
- GNU/Linux 시스템을 일반 사용자로서 기본적으로 다룰 수 있는 능력
- 명령줄 쉘을 기본적으로 사용할 수 있는 능력
- 사용자 공간/응용 프로그램 개발에 대한 기본적인 지식
- 중급 C 프로그래밍 지식
- Embedded GNU/Linux Systems Architecture 과정을 수강한 적이 있어야 합니다 (강력히 추천!) 또는 해당 주제에 대한 충분한 이해가 필요합니다.
35 시간
회원 평가 (5)
매우 유용한 추가 정보
Grzegorz - Comp S.A.
코스 - BLoC Pattern
기계 번역됨
에드워드는 훌륭한 진행자입니다
Zibusiso Ncube - Agricatural Research Council
코스 - Ionic 4 and Angular for Developers
기계 번역됨
미겔은 주제에 대한 지식이 깊었습니다. 그는 훈련을 쉽게 이해할 수 있도록 하고, 각 섹션마다 필요한 새로운 기능들을 추가하면서 균형 잡힌 진행을 유지했습니다. 그는 모든 요청 사항을 다루었고, 모든 질문을 철저히 답변했습니다. 매우 쾌적한 경험이었습니다.
Paul Coaton - SEMPCheck Services
코스 - Flutter Development Bootcamp with Dart
기계 번역됨
트레이너가 우리의 필요에 맞게 조정됩니다
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
코스 - The Yocto Project - An Overview - hands-on
기계 번역됨
트레이너는 열정적이었고 친절하며 주제를 사랑했습니다
Isaac Murphy - Royal New Zealand Airforce
코스 - Build Native iOS and Android Apps with Flutter
기계 번역됨