• Linux Developer

    An intensive hands-on course designed to rapidly train key skills for developing applications and programs on Red Hat Linux.


    • Experience in C programming
    • RH133 or equivalent UNIX or Linux workstation user skills for developers
    • Shell scripting in a UNIX or Linux environment
    • Experience with editors such as vi, emacs


    Course Outline

    ·         Tools and methods for developing C programs for Linux
    ·         Makefiles
    ·         Version control
    ·         Compiling, linking and debugging
    ·         Linux standards and compliance
    ·         File access system calls and I/O
    ·         Programming file and directory system services
    ·         Processes management and creation
    ·         Signals, Signal Handlers and Alarms
    ·         Inter-process communication (shared memory, semaphores, messages)
    ·         Threads
    ·         Semaphores
    ·         Pipes and FIFOs
    ·         Shared Memory
    ·         Message Queues
    ·         Sockets
    ·         Red Hat Package Manager (RPM)
    ·         Multiplexed and Asynchronous I/O

    RHD221 Red Hat Linux Device Drivers

    Designed to teach experienced programmers how to develop device drivers for Linux systems


    ·         Experience in C programming
    ·         RHD143 - Red Hat Linux Programming Essentials or equivalent

    Course Outline

    • How device drivers work with the Linux Kernel
    • How to configure and install the kernel
    • Compiling and loading a module and exporting symbols
    • Working with character and block device drivers
    • Memory Management
    • IOCTLs
    • Data Transfer Between User and Kernel Space
    • Memory Management
    • Tracing and Debugging
    • Time Management, Wait and Task Queues
    • Dealing with I/O ports and Interrupts
    • Accessing PCI hardware
    • Network drivers
    • SMP issues
    • Virtual File System and the ext2/ext3 filesystems

    RHD236 Red Hat Linux Kernel Internals

    An intensive hands-on course designed to provide a detailed examination of the Linux kernel architecture, including process scheduling, memory management, filesystems, and driving peripheral devices.


    Completion of RHD221 (Linux Device Drivers) or equivalent experience, including:
    ·         Familiarity with basic tools such as vi, emacs, and file utilities.
    ·         Knowledge of systems programming in a Unix or Linux environment is a requirement; register-level hardware programming knowledge is recommended.
    ·         Understanding of basic Operating System concepts.
    ·         Some previous experience running Linux, compiling and installing kernels, etc.
    ·         Experience writing device drivers and kernel modules is not essential, but very helpful.

    Course Outline

    • Kernel Architecture
    • Kernel Initialization
    • Kernel Configuration and Compilation
    • Kernel Style and General Considerations
    • Kernel Browsing Tools
    • Modules
    • System Calls
    • Transferring Data Between User and Kernel Space
    • Race Conditions and Synchronization Methods
    • Processes and Kernel Threads
    • SMP and Threads
    • Process Scheduling
    • Kernel Profiling and Debugging Techniques
    • The /proc Filesystem
    • Timing Measurements
    • Dynamic Kernel Timers
    • Memory Addressing
    • Memory Allocation and Management
    • NUMA
    • Process Address Space
    • Disk Caches
    • Swapping
    • Signals
    • Notifiers
    • CPU Frequency Scaling
    • Virtualization and the Kernel
    • Networking internals
    • Multiplexed and Asynchronous Socket I/O
    • Netfilter
    • The Virtual File System
    • Filesystems in User Space
    ·         The following topics are not covered in class, but are included in the course materials for background reference and/or student interest in related topics:
    • Process Limits and Capabilities
    • Introduction to Device Drivers
    • Embedded Linux Overview
    • In Kernel Web Server Acceleration
    • Journaling Filesystems

    RHD256 Red Hat Linux Application Development and Porting

    Provides a succinct introduction to new application development, as well as providing insight into porting existing applications, into the Red Hat Linux environment.


    Application development skills on any UNIX-like platform, including proprietary offerings and other Linux distributions. Attendees are expected to be familiar with common shells and command line utilities such as the C compiler, a linker utility, and the make(1) program.

    Course Outline

    • Open source vs. the proprietary model
    • The common Open Source software licenses: the GPL; the LGPL; and the BSD license; and how they affect your software development strategy.
    • Components of the Red Hat Linux development environment, including compiler toolchains and application libraries
    • Packaging software with RPM and tar
    • The CVS and Subversion version control systems
    • How to compile and debug application programs using the GNU Compiler Collection and DDD
    • How commonly-used enterprise file systems affect the application development effort.
    • How to write, install, and control system services.
    • The functional differences between Linux command-line tools and their proprietary-system counterparts.
    • Using Red Hat Linux system libraries, and creating your own libraries
    • Issues to be concerned with when porting applications to Red Hat Linux, such as little-endian vs. big-endian architectures.
    • How Linux multithreaded applications are built.
    • Linux security features such as PAM and OpenSSH.
    • How to use the "/proc" filesystem to obtain system information.
    • Advanced Linux features, such as asynchronous I/O.
    • Building software with Autoconf
    • How to debug, trace and optimize software for better speed and memory usage
    • The Eclipse integrated development environment
  • You might also like

    No comments:

    Post a Comment

About us

Follow us

Powered by Blogger.