Developing Linux Device Drivers (LFD430)
Seminarinformationen
Seminar - Ziel
This instructor-led Linux device driver course will teach you about the different types of Linux device drivers as well as the appropriate APIs and methods through which devices interface with the kernel.
This course will cover the different kinds of device drivers used in Linux, the appropriate APIs through which devices (both hardware and software) interface with the kernel, necessary modules and techniques for Linux driver development and debugging, and much more.
Teilnehmer - Zielgruppe
This course is for experienced developers who want to learn how to develop device drivers for Linux systems.
Kurs - Voraussetzungen
To make the most of this course you must have:
Knowledge of basic kernel interfaces and methods such as how to write, compile, load and unload modules, use synchronization primitives, and the basics of memory allocation and management, such as is provided by LFD420 Linux Kernel Internals and Development. Pre-class preparation material will be provided before class.
Seminardauer
- 4 Tage
- 09:00 Uhr bis 17:00 Uhr
Schulungsunterlagen
Seminar-Inhalt / Agenda
Introduction
- Objectives
- Who You Are
- The Linux Foundation
- Linux Foundation Training
- Certification Programs and Digital Badging
- Linux Distributions
- Platforms
- Preparing Your System
- Using and Downloading a Virtual Machine
- Things change in Linux
- Documentation and Links
- Course Registration
Linux Filesystem Tree Layout
How to Work in OSS Projects **
- Overview on How to Contribute Properly
- Stay Close to Mainline for Security and Quality
- Study and Understand the Project DNA
- Figure Out What Itch You Want to Scratch
- Identify Maintainers and Their Work Flows and Methods
- Get Early Input and Work in the Open
Contribute Incremental Bits, Not Large Code Dumps - Leave Your Ego at the Door: Don’t Be Thin-Skinned
- Be Patient, Develop Long Term Relationships, Be Helpful
Device Drivers
- Types of Devices
- Mechanism vs. Policy
- Avoiding Binary Blobs
- Power Management
- How Applications Use Device Drivers
- Walking Through a System Call Accessing a Device
- Error Numbers
- printk()
- devres: Managed Device Resources
- Labs
Modules and Device Drivers
- The module_driver() Macros
- Modules and Hot Plug
- Labs
Memory Management and Allocation
- Virtual and Physical Memory
- Memory Zones
- Page Tables
- kmalloc()
- __get_free_pages()
- vmalloc()
- Slabs and Cache Allocations
- Labs
Character Devices
- Device Nodes
- Major and Minor Numbers
- Reserving Major/Minor Numbers
- Accessing the Device Node
- Registering the Device
- udev
- dev_printk() and Associates
- file_operations Structure
- Driver Entry Points
- The file and inode Structures
- Miscellaneous Character Drivers
- Labs
Kernel Features
- Components of the Kernel
- User-Space vs. Kernel-Space
- What are System Calls?
- Available System Calls
- Scheduling Algorithms and Task Structures
- Process Context
- Labs
Transferring Between User and Kernel Space
- ransferring Between Spaces
- put(get)_user() and copy_to(from)_user()
- Direct Transfer: Kernel I/O and Memory Mapping
- Kernel I/O
- Mapping User Pages
- Memory Mapping
- User-Space Functions for mmap()
- Driver Entry Point for mmap()
- Accessing Files from the Kernel
- Labs
Weitere Schulungen zu Thema Linux Foundation
- u.a. in Nürnberg, Berlin, Stuttgart, München, KölnThis course will teach you how to containerize, host, deploy, and configure an application in a multi-node cluster. It also serves as preparation for the Certified Kubernetes Application Developer (CKAD) exam. Starting with a simple Python script, this course will show you how ...
- u.a. in Nürnberg, Berlin, Stuttgart, München, KölnIn this course you will learn about installation of a multi-node Kubernetes cluster using kubeadm, and how to grow a cluster, choosing and implementing cluster networking, and various methods of application lifecycle management, including scaling, updates and roll-backs. The ...
- u.a. in Frankfurt am Main, Leipzig, Düsseldorf, Darmstadt, Virtual ClassroomIn this course you will learn about the history of Linux, how to install Linux, how to use the Graphical User Interface, how to control Linux using the command line, basic Linux security, and much more.
- u.a. in Frankfurt am Main, Hannover, Hamburg, Zürich, FreiburgIn this course you will learn how to assess security risks in your enterprise Linux environment, the best techniques and tools to increase security, server hardening, how to deploy and use monitoring and attack detection tools, how to gain visibility into possible ...