Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
Introduction
- A brief history of GNU/Linux for government use
- Licensing considerations for government applications
- Kernel versioning and its implications for government systems
- The release cycle and its impact on government deployments
- Kernel trees and their role in government IT infrastructure
- Mainline kernel support for government operations
- Differentiating between kernel and user space for government applications
- Understanding mechanism versus policy in government systems
- Alternatives to kernel drivers for government use
- Comparing Real-Time Operating Systems (RTOS) with Linux for government needs
Memory Management
- Virtual memory versus physical memory in government systems
- Memory allocation within the kernel for government applications
- Pages and their management in government IT environments
- Zones and their role in memory allocation for government use
- API considerations for memory management in government systems
- The slab allocator and its relevance to government operations
Kernel Patch Management
- Lifecycle of a kernel patch for government systems
- Using git for version control in government kernel development
- Managing kernel source code for government projects
- Creating patches for government applications
- Validating patches for government use
- Fixing issues in patches for government systems
- Shipping patches to government deployments
- Ensuring audited code for government compliance
Kernel Modules
- Obtaining kernel sources for government use
- Configuring, building, and installing modules in government systems
- Device drivers (statically linked or loaded at runtime) for government applications
- Initialization and exit procedures for government modules
- Licensing considerations for government kernel modules
- Using EXPORT_SYMBOL_GPL in government modules
- Creating out-of-tree makefiles for government projects
- Utilizing module-init-tools in government systems
- Managing modules within the kernel tree for government use
- Configuring Kconfig for government applications
- Passing parameters to modules in government environments
- Using sparse for static analysis in government code
Char Drivers
- Architecture of char drivers for government use
- User/kernel interface design for government applications
- I/O subsystem in the context of government systems
- VFS and its role in government IT infrastructure
- Sysfs (devices, bus, drivers, classes) for government management
- Kobject, ktype, and kset usage in government systems
- Linux kernel driver model for government applications
- Managing device files in government environments
-
Char driver specifics:
- Initialization procedures for government use
- Registration processes for government modules
- Open and release operations for government applications
- cdev, cdev add, cdev del, and related functions for government systems
- Major/minor numbers in government IT infrastructure
- Udev, udevmonitor, and udevadm for government device management
Advanced Character Driver Operations
- ioctl operations in government systems
- Unlocked ioctl for government applications
- compat ioctl for backward compatibility in government use
- User space API considerations for government drivers
- Kernel space API usage in government modules
- Process lifecycle management for government applications
- Sleeping and blocking operations in government systems
- Waking up processes in government environments
- Wait queue implementation for government use
- Managing the thundering herd problem in government IT
- Poll/select operations for government applications
Kernel Debugging
- General debugging techniques for government systems
-
Debugging the kernel in government environments:
- Binary search with git for government issue resolution
- Utilizing debug support from the kernel in government projects
- Using printk, syslogd, klogd, loglevels, rate limit, debug levels, and selective subsystem debugging in government systems
- Querying debugfs for diagnostics in government applications
- Ooops debugging and asserting oops in government environments
- Utilizing the Magic SysRq Key for government troubleshooting
- Using kgdb/kdb for kernel debugging in government systems
- JTAG support for hardware-level debugging in government IT
Tracing and Performance Analysis
- gcov for code coverage in government applications
- lcov for detailed code coverage reports in government systems
- oprofile for profiling government IT infrastructure
-
ftrace and its tracers for government use:
- nop tracer for minimal overhead in government applications
- function tracer for detailed function calls in government systems
- sched switch tracer for scheduling analysis in government IT
- function graph tracer for call graph visualization in government environments
- dynamic tracer for custom tracing in government projects
- trace-cmd and kernelshark for comprehensive tracing in government systems
- perf tool for performance analysis in government applications
- LTTng for long-term tracing in government IT
Interrupts Management
- Comparing interrupts and polling for government systems
- Understanding interrupts in government applications
- Program sections and their impact on government IT
- Reentrancy considerations for government code
- Event handling in government environments
- Interrupt handlers for government applications
- Shared interrupt handlers in government systems
- Interrupt flow management for government use
- Interrupt control mechanisms for government IT
Deferring Work in Government Systems
- Top/bottom halves for deferred execution in government applications
- Softirqs for high-priority tasks in government systems
- Tasklets for lightweight task management in government IT
- Work queues for background processing in government environments
- Threaded interrupts for complex interrupt handling in government use
Concurrency Management in Government Systems
- Critical regions/sections in government applications
- Atomic operations for concurrency control in government systems
- Race conditions and their prevention in government IT
- Synchronization techniques for government use
- Locking mechanisms for government applications
- Various locking solutions for government systems
- Deadlock avoidance in government environments
- Contention management in government IT
- Determining what to lock in government applications
-
Tools and techniques for locking:
- Atomic operations for simple concurrency control
- Spin locks for short critical sections in government code
- Reader-writer spin locks for read-heavy workloads in government systems
- Semaphores for resource management in government applications
- Binary semaphores for mutual exclusion in government IT
- Mutexes for more complex locking needs in government environments
- Reader-writer semaphores for balanced read/write access in government systems
- Completion variables for task synchronization in government use
- Sequential locks for ordered operations in government applications
- Disabling preemption for critical sections in government code
- Ordering and barriers for memory consistency in government systems
Time Management in Government Systems
- HZ and its significance in government IT
- Jiffies for timekeeping in government applications
- Managing big and small delays in government systems
- Kernel timers for scheduling tasks in government environments
Hardware I/O Management for Government Systems
- I/O Ports for hardware communication in government applications
- I/O Memory management for government IT
- Strategies for dealing with side effects when accessing registers in government systems
User-Kernel Communication for Government Systems
- put(get)_user() functions for data transfer in government applications
- copy to(from)_user() for memory copying in government IT
- Kernel I/O operations for government systems
- Memory mapping techniques for government environments
- procfs for system information in government applications
- sysfs for device management in government IT
- debugfs for debugging support in government systems
- relayfs for high-performance logging in government environments
- netlink for kernel-to-user communication in government applications
- ioctl for device-specific operations in government IT
Portability Considerations for Government Systems
- Word size and its impact on government code portability
- Opaque types for abstract data handling in government applications
- Signed/unsigned char usage in government systems
- Data alignment requirements for government IT
- Integral promotion considerations in government code
- Code reuse strategies for government projects
- Endianness issues in government systems
- System tick management for government applications
- Page size considerations for government IT infrastructure
- Instruction ordering and memory barriers for government use
- SMP, preemption, and high-memory handling in government systems
Except where otherwise noted, content and this course outline are licensed under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Requirements
- Fundamental experience using a GNU/Linux system as an end user for government tasks
- Basic proficiency with a command line shell
- Essential understanding of user space and application development
- Intermediate expertise in C programming
- It is strongly recommended that participants have completed the course on Embedded GNU/Linux Systems Architecture or possess a thorough grasp of the topics covered therein
35 Hours
Testimonials (3)
Everything is ok.
Adrian Rybka - SEOyon
Course - Flutter Development Bootcamp with Dart
Very usefull additional informations
Grzegorz - Comp S.A.
Course - BLoC Pattern
His knowledge and patience.