Embedded GNU/Linux Kernel Internals and Device Drivers 교육 과정
설명
이 5일 교육 과정은 GNU/Linux 커널 내부 및 장치 드라이버 개발 개념을 설명하기 위해 지침과 결합된 실습 연습을 사용합니다. 이 과정은 여러분이 빠르게 속도를 낼 수 있도록 설계되었습니다. 이론과 실무 교육을 결합하여 GNU/Linux 장치 드라이버를 작성하는 데 필요한 프로세스, 개념 및 명령을 설명합니다.
바퀴를 새로 만들지 말고, 경험이 풍부한 트레이너로부터 배우고 실무 지식을 습득하여 자신의 임베디드 개발 프로젝트에서 효과적으로 활용할 수 있는 능력을 키우세요.
누가 참석해야 하나요?
소프트웨어 엔지니어, 현장 엔지니어, (프로젝트) 관리자, 하드웨어 엔지니어와 같이 GNU/Linux 장치 드라이버 개발 또는 평가에 관심이 있거나 해당 업무를 담당하는 사람.
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 에 참석했어야 합니다(강력히 권장!) 및/또는 거기에 설명된 주제에 대한 좋은 이해가 있어야 합니다.
Open Training Courses require 5+ participants.
Embedded GNU/Linux Kernel Internals and Device Drivers 교육 과정 - Booking
Embedded GNU/Linux Kernel Internals and Device Drivers 교육 과정 - Enquiry
Embedded GNU/Linux Kernel Internals and Device Drivers - Consultancy Enquiry
Consultancy Enquiry
회원 평가 (5)
에드워드는 굉장한 진행자입니다
Zibusiso Ncube - Agricatural Research Council
Course - Ionic 4 and Angular for Developers
Machine Translated
어쩌면 학습에 더 많은 연습이 더 나을 수도 있지만 시간이 너무 짧았습니다.
Gianpiero Arico' - Urmet Spa
Course - Embedded Linux Systems Architecture
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
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
Isaac Murphy - Royal New Zealand Airforce
Course - Build Native iOS and Android Apps with Flutter
Upcoming Courses
Related Courses
Advanced Flutter
14 Hours강사가 진행하는 이 실시간 교육 대한민국(온라인 또는 현장)은 Flutter을 사용하여 크로스 플랫폼 애플리케이션을 생성하려는 개발자를 대상으로 합니다.
이 교육을 마치면 참가자는 다음을 수행할 수 있습니다.
- Java에서 Flutter로 애플리케이션을 마이그레이션합니다.
- 데이터베이스, 인증, 저장소와 같은 백엔드 서비스 Firebase을 통합합니다.
- 앱의 애니메이션과 고급 UI 기능을 만듭니다.
BLoC Pattern
14 Hours대한민국에서 진행되는 이 실시간 교육(온라인 또는 현장)은 BLoC Pattern을 사용하여 다양한 애플리케이션에서 상태를 관리하는 방법을 배우려는 개발자를 대상으로 합니다.
이 교육이 끝나면 참가자는 다음을 수행할 수 있습니다.
- BLoC 핵심 개념과 아키텍처를 이해합니다.
- BLoC를 생성, 테스트 및 디버그합니다.
- BLoC 빌드 컨텍스트에 대해 알아보세요.
Buildroot: a Firmware Generator for Embedded Systems
7 HoursBuildroot은 크로스 컴파일 툴체인, 사용자 정의 가능한 루트 파일 시스템 이미지, 임베디드 장치용 Linux 커널을 생성하는 스크립트를 포함하는 오픈 소스 프로젝트입니다. 이 실습 과정에서 참가자는 이를 사용하는 방법을 배웁니다.
- 루트 파일 시스템에 들어가는 소프트웨어를 선택하는 방법.
- 새로운 패키지를 추가하고 기존 패키지를 수정하는 방법.
- 새로운 임베디드 보드에 대한 지원을 추가하는 방법.
과정 중에 부팅 가능한 파일 시스템 이미지가 생성됩니다. 원격 과정은 QEMU 에뮬레이터를 사용하여 제공되고, 강의실에서는 트레이너가 선택한 QEMU 또는 실제 임베디드 보드를 사용할 수 있습니다.
비슷한 목표를 가진 다른 프로젝트로는 Yocto 프로젝트 와 OpenWRT가 있습니다. 이 프레젠테이션을 사용하여 귀하의 필요에 맞는 프로젝트가 무엇인지 확인하세요.
Embedded Linux Systems Architecture
35 Hours코스 목표
임베디드 GNU/Linux의 필수 사항, 비트와 조각이 어떻게 조화를 이루는지에 대한 이해를 제공합니다. 임베디드 GNU/Linux 시스템을 구축하려면 어떤 구성 요소가 필요하며, 어디서 가져오고 구성/구축/설치하는 방법은 무엇입니까? 어디서 도움을 받을 수 있나요? 해당 소프트웨어 라이선스는 어떻습니까? 실습을 통해 이 교육을 성공적으로 마친 후 직접 임베디드 GNU/Linux 시스템을 개발하는 데 필요한 실무 경험을 얻을 수 있습니다.
설명
이 5일간의 교육 과정에서는 실습과 교육을 결합하여 임베디드 GNU/Linux의 개념을 설명합니다. 빠른 속도로 작업을 수행할 수 있도록 설계되었습니다. GNU/Linux을 효과적으로 사용하는 데 필요한 철학, 개념 및 명령을 이론과 실무 교육을 결합하여 설명합니다.
처음부터 다시 시작하지 말고 숙련된 강사로부터 배워서 GNU/Linux에 대한 실무 지식과 이를 자신의 임베디드 개발 프로젝트에서 효과적으로 사용할 수 있는 능력을 습득하십시오.
누가 참석해야 합니까?
Embedded GNU/Linux의 작동 방식을 최대한 빨리 이해하려는 관리자, 프로젝트 관리자, 소프트웨어, 하드웨어, 개발, 시스템 엔지니어, 테스터, 관리자, 기술자 및 기술에 관심이 있는 기타 당사자. GNU/Linux을 사용해야 합니다. 아니면 그것을 사용하는 것이 합당한지 여부를 사치스럽게 결정해야 합니다. 이미 Embedded GNU/Linux을 사용하려고 시도했지만 모든 작업을 올바른 방식으로 수행했는지 확신할 수 없을 수도 있습니다. 당신은 현재 GNU/Linux이 더 낫거나 더 저렴할 수 있는지 알아보기 위해 다른 운영 체제와 지팡이를 사용하고 있습니다.
배송 옵션
모든 교육 자료는 영어로 되어 있지만 프레젠테이션은 원하는 대로 전 세계적으로 영어나 독일어로 제공될 수 있습니다.
- 현장 - 강사 중심 온라인 - 강사 중심 현장/온라인 결합 - 강사 중심
Embedded Linux Kernel and Driver Development
14 Hours임베디드 Linux 커널 내부 구조, 아키텍처, 개발에 중점을두고 약 60 %의 실습 랩으로 구성된 2 일간의 과정으로 여러 유형의 장치 드라이버를 작성하고 통합하는 방법을 연구합니다.
누가 참석해야합니까?
임베디드 시스템 및 플레이트 폼의 Linux 커널 개발에 관심이있는 엔지니어.
Build Native iOS and Android Apps with Flutter
14 Hours대한민국에서 강사가 진행하는 이 실시간 교육(온라인 또는 현장)에서 참가자는 Flutter을 사용하여 iOS 및 Android 기기에서 모두 실행되는 모바일 앱을 빠르게 개발하는 방법을 배웁니다.
이 교육을 마치면 참가자는 다음을 수행할 수 있습니다.
- 빠르게 프레임워크, IDE 및 기타 도구를 설치하여 개발을 시작하세요.
- GoGoogle의 Dart 언어를 이해하고 사용하여 모바일 앱을 빠르게 프로토타입으로 제작하세요.
- 단일 코드 베이스를 사용하여 iOS와 Android 모두에서 실행되는 모바일 앱을 테스트하고 배포합니다.
- 다양한 위젯, 레이아웃, 애니메이션을 사용하여 앱을 사용자 지정하세요.
Flutter Development Bootcamp with Dart
35 Hours대한민국에서 강사가 진행하는 이 실시간 교육(온라인 또는 현장)은 Flutter을 사용하여 공통 코드베이스에서 Android, iOS 및 기타 플랫폼을 위한 고품질 모바일 앱을 만들고 빌드하려는 개발자를 대상으로 합니다.
이 교육을 마치면 참가자는 다음을 수행할 수 있습니다.
- Flutter개의 앱 생성을 시작하기 위해 필요한 개발 환경을 설정하세요.
- Dart 프로그래밍 언어를 사용하여 앱을 빌드하기 위한 코드를 개발합니다.
- Flutter개의 위젯을 사용하여 미적으로 아름답고 사용하기 쉬운 UI를 디자인하고 제작하세요.
- 다양한 플랫폼(모바일, 데스크톱, 웹 등)에 앱을 배포하고 테스트합니다.
Ionic2
14 HoursThis instructor-led, live training in 대한민국 (online or onsite) is aimed at beginner-level to intermediate-level developers who wish to use Ionic 2 to build hybrid mobile applications.
By the end of this training, participants will be able to:
- Understand the fundamentals of Ionic 2 and its architecture.
- Build single-page and multi-page applications using Ionic 2.
- Customize apps with SCSS and third-party integrations.
- Test, deploy, and manage mobile app releases effectively.
Ionic 4 and Angular for Developers
21 Hours이 강사가 진행하는 라이브 교육(온라인 또는 현장)은 Ionic 4를 사용하여 하이브리드 모바일 애플리케이션을 만들고자 하는 웹 개발자를 대상으로 합니다.
이 교육이 끝나면 참가자는 다음을 수행할 수 있습니다.
- 기본 장치 기능을 하이브리드 모바일 애플리케이션에 통합합니다.
- Angular과 Ionic 4를 사용하여 하이브리드 모바일 애플리케이션을 구축합니다.
- 모바일 장치 에뮬레이터에서 하이브리드 애플리케이션을 실행합니다.
Ionic 6
14 Hours대한민국에서 강사가 진행하는 이 실시간 교육(온라인 또는 현장)은 Ionic 6을 사용하여 최신 모바일 애플리케이션을 만들고자 하는 웹 개발자를 대상으로 합니다.
이 교육을 마치면 참가자는 다음을 수행할 수 있습니다.
- 최신 하이브리드 모바일 애플리케이션에 기본 장치 기능을 통합합니다.
- Ionic의 기본을 알아보세요.
- Ionic개의 애플리케이션을 프로덕션에 배포하는 방법을 알아보세요.
- 모바일 기기 에뮬레이터에서 최신 하이브리드 애플리케이션을 실행합니다.
LEDE: Set Up a Linux Wireless Router
7 HoursLEDE 프로젝트 ( Linux 임베디드 개발 환경)는 OpenWrt 기반으로하는 Linux 운영 체제입니다. 벤더가 제공하는 다양한 무선 라우터 및 비 네트워크 장치 펌웨어를 완벽하게 대체합니다.
강사가 진행하는이 실습에서 참가자는 LEDE 기반 무선 라우터를 설정하는 방법을 배우게됩니다.
청중
- 네트워크 관리자 및 기술자
과정 형식
- 파트 강의, 파트 토론, 연습 및 무거운 실무 연습
IBM MobileFirst Platform for Hybrid Mobile Application Development
21 HoursIBM MobileFirst 플랫폼(이전 명칭 Worklight Foundation)은 엔터프라이즈 모바일 및 태블릿 애플리케이션을 구축하기 위한 도구 및 서비스 모음입니다. 클라이언트 측 API는 네이티브iOS(Objective-C), 네이티브Android(Java), J2ME, C#네이티브 Windows Phone(C#) 및 Java크로스 플랫폼 하이브리드 또는 모바일 웹 애플리케이션용 스크립트에 사용할 수 있습니다. MobileFirst Platform은 온프레미스 또는 클라우드에서 사용할 수 있습니다.
강사가 진행하는 이 실시간 교육에서 참가자는 HTML5, JS 및 CSS를 기반으로 하이브리드 모바일 애플리케이션을 개발하고 관리하기 위해 MobileFirst Platform을 설정하고 사용하는 방법을 배웁니다.
이 교육을 마치면 참가자는 다음을 수행할 수 있습니다.
- MobileFirst 설치 및 구성
- 여러 플랫폼에 걸친 하이브리드 모바일 앱을 개발, 테스트, 배포합니다.
- MobileFirst 보안 메커니즘을 사용하여 앱을 보호하세요.
- 앱 스토어를 사용하지 않고도 조직 내에서 앱을 무선으로 업데이트할 수 있습니다.
- 모바일 앱을 관리하고 모니터링합니다.
청중
- 개발자
과정 형식
- 일부는 강의이고, 일부는 토론이고, 연습문제와 실제 랩 환경에서의 집중적인 실습이 포함됩니다.
메모
- 이 교육은 Mobile Foundation 8.0을 기반으로 합니다. 이 과정에 다른 버전이나 기타 사용자 정의를 요청하려면 저희에게 연락하여 준비하십시오.
Xamarin for Cross-Platform Development
21 Hours대한민국에서 강사가 진행하는 이 실시간 교육(온라인 또는 현장)에서 참가자는 Android, iOS 및 Windows용 모바일 애플리케이션 세트 개발을 수행하면서 Xamarin의 핵심 측면을 학습하게 됩니다.
Yocto Project
28 Hours대한민국에서 강사가 진행하는 이 실시간 교육에서 참가자는 Yocto Project을 기반으로 하는 임베디드 Linux용 빌드 시스템을 만드는 방법을 배웁니다.
이 교육을 마치면 참가자는 다음을 수행할 수 있습니다.
- 레시피, 메타데이터, 레이어를 포함한 Yocto Project 빌드 시스템의 기본 개념을 이해합니다.
- Linux 이미지를 빌드하고 에뮬레이션에서 실행합니다.
- 임베디드 Linux 시스템을 구축하여 시간과 에너지를 절약하세요.
The Yocto Project - An Overview - hands-on
28 Hours설명
이 4일간의 교육은 Yocto Project를 소개하기 위해 이론과 실습을 결합합니다.
여기에는 다음과 같은 자주 묻는 질문에 대한 답변이 나와 있습니다.
- 각 GNU/Linux 프로젝트에 대해 다른 버전의 툴체인/라이브러리/패키지를 사용하고 그 위에 다른 작업 흐름을 따르는 것이 정말 필요한가요?
- 모든 개발자/공급업체에게 동일한 개발 환경을 제공하고 10년 후에도 오늘과 동일한 빌드를 생산할 수 있다고 보장할 수 있나요?
- YP에서 귀하가 사용하는 패키지가 어떤 소프트웨어 라이선스에 따라 라이선스되었는지 알아내는 데 도움을 줄 수 있나요?
실습 세션은 대상 하드웨어(예: Beagle Bone Black Rev. C - http://beagleboard.org/BLACK)에서 수행됩니다. 교육 후 Ubuntu 14.x 및 모든 종속성이 사전 설치된 도커 이미지와 예제를 다운로드하여 자신의 랩에서 과정 자료를 사용할 수 있습니다. 이것은 Embedded GNU/Linux에 대한 소개 과정이 아니라는 점에 유의하십시오. Embedded GNU/Linux가 작동하는 방식과 GNU/Linux 커널 및 커널 드라이버를 구성/빌드하는 방법을 이미 알고 있어야 합니다.
누가 참석해야 하나요?
여러분은 이미 여러분의 프로젝트에 GNU/Linux을 사용하고 있고 아마도 Yocto Project에 대해 들어봤을 것이지만, 그것을 자세히 살펴보려고 감히 하지 않았거나 그것을 사용하는 데 어려움을 겪었을 것입니다. 여러분은 여러분의 일상적인 작업 흐름을 YP에 어떻게 수용할 수 있는지 모르고 일반적으로 YP가 다소 복잡하다고 생각합니다. 모든 것을 아는 것이 (아마도) 훨씬 쉬웠을 텐데 왜 이 모든 것이 필요할까요? 교육을 받은 후에는 YP가 필요한지 여부를 결정할 수 있을 것입니다. 이 워크숍은 Embedded GNU/Linux에 대한 확실한 지식을 갖춘 소프트웨어, 개발, 시스템 엔지니어, 테스터, 관리자, 엔지니어 및 YP에 관심이 있는 다른 당사자를 대상으로 합니다.