Passionate about Learning
HOME      LIVE CHAT    My NetCom Free Catalog 1-888-563-8266
.
Home > Vendors > Red Hat > Red Hat Linux > RHD361 Red Hat Enterprise Linux Kernel Internals

RHD361 Red Hat Enterprise Linux Kernel Internals


RHD361 Red Hat Enterprise Linux Kernel Internals Course Description

Red Hat Enterprise Linux Kernel Internals (RHD361) is a hands-on course providing experienced developers an intensive, low-level examination of the Linux kernel architecture. Topics include kernel compilation, debugging tools and techniques, and internal kernel APIs including synchronization, process management, and memory management. These topics provide a solid understanding of the kernel's architecture, providing a useful base from which more specialized topics such as device drivers or performance tuning can be addressed, such as those presented in Red Hat Enterprise System Monitoring and Performance Tuning (RH442) or Red Hat Enterprise Linux Kernel Device Drivers (RHD362).

Intended Audience for the RHD361 Red Hat Enterprise Linux Kernel Internals Course

  • Experienced developers who want to gain a thorough understanding of the Linux kernel architecture.

Training Packages & Career Tracks that include the RHD361 Red Hat Enterprise Linux Kernel Internals Course

RHD361 Red Hat Enterprise Linux Kernel Internals Course Objectives

  • User and kernel mode
  • Kernel compilation
  • Kernel initialization
  • Kernel modules
  • Introduction to device drivers
  • Kernel API overview
  • Kernel debugging
  • SystemTap
  • Process management
  • Scheduling
  • Real time and Red Hat Enterprise Linux RT
  • Kernel threads
  • Timing
  • Interrupts
  • Synchronization
  • Memory
  • Working with the Linux community

RHD361 Red Hat Enterprise Linux Kernel Internals Course Outline

    1. Unit 1 - Working with the Developer Community
      1. Community Linux Kernel Development
      2. Why Contribute Kernel Code Upstream?
      3. Licensing
      4. Copyright
      5. Submitted Work
      6. The Kernel Development Process
      7. Creating Patches for the Merge Window
      8. Staging Trees
    2. Unit 2 - User Mode and Kernel Mode
      1. The Linux Kernel - An Overview
      2. The Role of the Kernel
      3. Kernel Contexts
      4. Four Milliseconds in the Life of the Kernel
      5. System Ring Levels
      6. Kernel Mode
      7. User Mode
      8. Mode Switching Example: System Calls
      9. x86 System Call Interface
      10. x86 System Call Interface (cont.)
      11. Mode Switching Example: IRQ Event
      12. Kernel Mode Linux
    3. Unit 3 - Kernel Compilation and Tools
      1. Kernel Packages
      2. Kernel Version
      3. Kernel Documentation
      4. Kernel Source Layout
      5. Kernel Source Layout (cont.)
      6. Recompiling the Red Hat Kernel
      7. Install Kernel Development Packages
      8. Kernel Source Package
      9. Preparing Source Code for Compilation
      10. Customizing Kernel Name (Optional)
      11. Choosing Compilation Options
      12. Compiling the Kernel and Modules
      13. Installing the Kernel Modules
      14. Installing the Compiled Kernel and Related Files
      15. Kernel Application Binary Interface (kABI)
      16. cscope
      17. LXR
      18. git
      19. git Documentation
    4. Unit 4 - Modules
      1. Kernel Modules
      2. Kernel Module Utilities
      3. Mapping Modules to Attached Devices
      4. Kernel Module Essentials
      5. modinfo Macros
      6. printk()
      7. /proc/kmsg and klogd
      8. printk() Loglevels
      9. Rate Limiting printk()
      10. Putting It All Together: A Simple Module
      11. Compiling a Module
      12. Integrating A New Module with the Kernel
      13. Makefile and Kconfig
      14. Module Parameters
      15. Example: Module with Parameter
    5. Unit 5 - Kernel API Overview
      1. Multitasking, Stacks, and Task-Descriptors
      2. Contents of a Program's Stack
      3. Kernel Mode Switch and the Stack
      4. Task Structures
      5. What Is a Process?
      6. thread_info Structure
      7. task_struct: Process Identifiers
      8. task_struct: Process State
      9. task_struct: Scheduling Information
      10. Doubly Linked Lists
      11. Doubly Linked Lists: Manipulation
      12. Doubly Linked Lists: Iteration
      13. Doubly Linked Lists: Processes
      14. task_struct: Related Processes
      15. task_struct: Statistics
      16. Allocating Kernel Memory: kmalloc()
      17. Memory Cache Optimizations: Branch Prediction
      18. Memory Cache Optimizations: Binding Structures
      19. Generating Kernel Errors
    6. Unit 6 - Synchronization
      1. Critical Sections
      2. Mutual Exclusion Devices
      3. Linux Mutex Toolbox
      4. Atomic Bit Operations
      5. Atomic Integers
      6. Spinlocks
      7. Spinlocks and Local Interrupts
      8. Read-Write Spinlocks
      9. Mutexes
      10. Semaphores
      11. Spinlock/Mutex Example
      12. Alternatives to Locking
      13. Sequential Locks
      14. Read-Copy-Update (RCU)
      15. Linux RCU Implementation
      16. Per-CPU Variables
      17. Completions
      18. The Big Kernel Lock
    7. Unit 7 - Kernel Debugging 1: Tools and Techniques
      1. Debugging Preparations
      2. kernel-debuginfo Warnings
      3. Kernel vs. User Space
      4. Live vs. Postmortem Debugging
      5. Crashes vs. Hangs
      6. Debugging Device Drivers
      7. User Space Debugging Tools
      8. /proc Kernel Information
      9. kernel.panic Tunable and Kernel Crashes
      10. /sys Filesystem
      11. debugfs Filesystem
      12. Printing from the Kernel
      13. Kernel Oops Messages
      14. SysRq Mechanism
      15. sosreport
      16. The crash Tool
      17. crash Requirements
      18. crash Installation
      19. crash Invocation
      20. crash Invocation Output
      21. crash Help
      22. crash Command Input
      23. crash Command Output
      24. crash Command Overview
      25. crash Default Context
    8. Unit 8 - Interrupts
      1. Interrupts
      2. Nature of Interrupts
      3. Types of Interrupts
      4. Interrupt Specific Hardware
      5. Interrupt Descriptor Table (IDT)
      6. IDT Initialization
      7. IDT Initialization Functions
      8. Exception Handling
      9. Asynchronous Interrupt Handling
      10. Interrupt Handler Considerations
      11. irq_desc Structure
      12. irqaction Structure
      13. Interrupt Handler Registration
      14. Performing Deferred Work
      15. Softirqs
      16. Using Softirqs
      17. Tasklets
      18. Using Tasklets
      19. Work Queues
      20. Work Queue Data Structures
      21. Using Work Queues
    9. Unit 9 - Device Driver Overview
      1. Device Drivers
      2. Device Types
      3. Device Nodes
      4. Creating a Device Node
      5. Dynamic Loading of Driver Modules
      6. Major and Minor Numbers
      7. Dynamic Major and Minor Numbers
      8. Dynamically Created Device Nodes
      9. Dynamically Created Device Nodes Made Easy
      10. Device Driver Essentials
      11. Character Device Registration
      12. Device Driver File Operations
      13. Driver Methods
      14. The file Structure
      15. The inode Structure
      16. The open and release Methods
      17. The read and write Methods
      18. Module Usage Count
      19. Simple Character Driver Example
    10. Unit 10 - Memory Management
      1. Virtual Memory and Paging
      2. x86 Memory Architecture
      3. Memory Segmentation in Linux
      4. x86 Segmentation
      5. x86 Segmentation in Linux
      6. Memory Paging
      7. Page Tables
      8. Mapping Virtual Addresses (x86)
      9. Mapping Virtual Addresses (x86-64)
      10. Memory Zones
      11. Arranging the Virtual Address Space
      12. ZONE_NORMAL
      13. ZONE_HIGHMEM
      14. ZONE_DMA
      15. Kernel Memory Allocation
      16. Memory Management
      17. Buddy Allocator
      18. Requesting and Releasing Page Frames
      19. Slab Allocator
      20. Slab Allocator (cont.)
      21. Non-Contiguous Memory Area Management
      22. Memory Flags: gfp_mask
      23. __get_free_pages()
      24. kmalloc()
      25. vmalloc()
    11. Unit 11 - Processes
      1. Creating Processes
      2. Sharing Resources
      3. do_fork()
      4. Process Memory Maps
      5. Memory Areas
      6. vm_flags
      7. pmap
      8. Kernel Threads
      9. Process 0
      10. Destroying Processes
      11. Context Switches
      12. When Does Context Switching Occur?
      13. When Is need_resched Set?
      14. When Is schedule() Called?
      15. Kernel Preemption
    12. Unit 12 - The Scheduler
      1. Priority
      2. Priority for Normal Processes
      3. Priority for Real-Time Processes
      4. Time Slices
      5. The O(1) Scheduler: Run Queues
      6. The O(1) Scheduler: Priority Arrays
      7. The O(1) Scheduler: How it works
      8. Wait Queues
      9. The O(1) Scheduler: Load Balancing
      10. The O(1) Scheduler: load_balance()
      11. Problems with the O(1) Scheduler
      12. O(1) Scheduler vs. CFS
      13. Overview of CFS
      14. Details of CFS
      15. CFS Task Scheduling
      16. CFS Scheduler Policies
      17. CFS Scheduler Classes
      18. CFS fair_sched_class
      19. CFS Tuning
      20. CFS Group Scheduling
      21. CONFIG_FAIR_GROUP_SCHED
      22. CONFIG_FAIR_CGROUP_SCHED
    13. Unit 13 - Kernel Timing
      1. The Need for Timing
      2. Timing Hardware
      3. Timing Source Selection
      4. Wall/Real Time: xtime
      5. Wall Clock System Calls
      6. Kernel Ticks: jiffies
      7. Software Timers
      8. Posix Timers
      9. Interval Timers and alarm()
      10. High-Resolution Timers
      11. Timer Interrupt Handler
      12. TIMER_SOFTIRQ Softirq
      13. Delay Functions
    14. Unit 14 - SystemTap
      1. Introduction to SystemTap
      2. SystemTap's Main Components
      3. Monitoring the Kernel with SystemTap
      4. The stap Command
      5. Flow of Data in SystemTap
      6. Common Tapset Probe Points
      7. SystemTap Script Examples
    15. Unit 15 - System and Kernel Initialization
      1. Boot Sequence Overview
      2. BIOS Initialization
      3. Bootloader
      4. Starting the Boot Process: GRUB
      5. Bootloader Components
      6. The Chicken/Egg Module Problem and the Initial RAM Disk
      7. GRUB and grub.conf
      8. Kernel Initialization Overview
      9. __init and __initdata
      10. Initialization Subsections and Ordering
      11. Kernel Initialization
      12. init/main.c: start_kernel()
      13. init/main.c: rest_init()
      14. init/main.c: init()
      15. init/main.c: do_basic_setup()
      16. init/main.c: init_post()
      17. init Initialization
      18. Run Levels
    16. Unit 16 - Kernel Debugging 2: Crash Dumps
      1. Introduction to Crash Dumps
      2. Netdump/Diskdump Challenges
      3. Kdump
      4. Kdump Solution
      5. Kexec
      6. Relocatable Kernel
      7. In-place Kernel Decompression
      8. Starting Kdump
      9. Kdump Initrd Image
      10. Configuring Kdump
      11. Kdump Core Dumps to the Local System
      12. Kdump Core Dumps to NFS Mount Points
      13. Kdump Core Dumps to SSH Servers
      14. Dump File Size
      15. Customizing the Dump Capture Method: makedumpfile
      16. Dump Filtering
      17. Dump Compression
      18. Future Challenges
    17. Unit 17 - Red Hat Enterprise Linux Realtime Kernel
      1. Realtime (RT) Linux
      2. Benefits of a Realtime Kernel
      3. Response Time Comparisons
      4. Wake-Up Response Time Example
      5. Changes in the Kernel
      6. Changes in the C Library
      7. RT Measurement Tools
      8. RT Tuning Tools
      9. RT Tuning Methods
      10. Loading the RT Kernel

    Benefits of taking the RHD361 Red Hat Enterprise Linux Kernel Internals course at NetCom


    Enrollment Options for the RHD361 Red Hat Enterprise Linux Kernel Internals course

    • Contact us to customize this class with your own dates, times and location. You can also call 1-888-563-8266 or chat live with an Educational Consultant.

    Training Delivery Methods

    Take this training with one of the following training delivery methods
    • Classroom Training
      Classroom Training NetCom’s classroom training ensures that you have state-of-the-art tools, techniques and practices you need to succeed on the job. Our instructors are active practitioners and true masters in their fields. With convenient classes at multiple learning centers across the US, you never have to go far to get ahead.

    • Live Online Training (LOT)
      Live Online Training NetCom’s premium Live Online Training (we call it LOT) is the ultimate in convenience and cost-effectiveness. LOT combines interactive video instruction via the latest web conference technology, and post-class access to learning labs for a best-in-class learning experience.
      Learn more about LOT

    • Boot Camp Training
      Boot Camp Training NetCom’s intensive boot camps are designed to advance your skills in the shortest possible amount of time and get you certified. Boot camps go at a faster pace and often run for longer days, so you must have some level of subject matter experience before enrolling. Boot camps have mandatory assessment tests to ensure no one will slow down the class for other students. Learn more about Boot Camps

    • Private Onsite Training
      Private Onsite Training With NetCom’s private training programs, you decide where and when courses are held. Tailor the training to reflect your industry, corporate culture, goals and schedule. You pick the course content, length of training and instructional technique. Save money by doing bulk customized training.
      Learn more about Private Onsite Training

    • Private 1-on-1 Training
      Private 1-on-1 Training NetCom’s private 1-on-1 training focuses on the highest quality training possible. You get individualized, full attention from the instructor and you decide where and when courses are held. The training is custom tailored to reflect your industry, corporate culture, goals and schedule. You pick the course content, length of training and instructional technique.
      Learn more about Private 1-on-1 Training

    Contact us
    call usCall us Toll-free at 1-888-563-8266
    web formFREE Training Inquiry form
    live chatWebsite Live Chat
    email usContact us via Email: info@netcomlearning.com

    Duration: 5 days (40 hours)
    Pricing: Variable, please request
    Why pricing varies..Why pricing varies..

    Pricing depends on different training delivery methods, one or more students and availability of volume discounts or currently available promotions.

    Our prices are frequently lower since we are able to work with our clients closely on their needs and pass on the optimum amount of savings.

    In addition, we provide a price match guarantee for any competitive quotes.
    click to Live Chat

    .  Next Class Dates
    Contact us to customize this class with your own dates, times and location. You can also call 1-888-563-8266 or chat live with an Educational Consultant.
    .  Get More Information
    FREE Assessment Quiz
    Monthly Email Newsletter
    Request Print Catalog
    Student Loan Application
    Name: 
    Email:  
    Phone: 
    Comments:

    . .
    live chat

    .  CALL 1-888-563-8266
    . arrow  Need course pricing?
    arrow  Need more information?
    arrow  Worried about financing?
    NetCom IT training on YouTube
    NetCom IT training on Twitter
    NetCom IT training on Facebook
    NetCom on LinkedIn
    Newsletter:
    © 1998-2012, NetCom Learning. All Rights Reserved.