Course: LFD440 Linux Kernel Debugging and Security
За Курса (About this Course):
-
- This instructor-led course focuses on the important tools used for debugging and monitoring the kernel, and how security features are implemented and controlled.
Цели – Какво ще научите (Course Goals/Skills):
- This four day course includes extensive hands-on exercises and demonstrations designed to give you the necessary tools to develop and debug Linux kernel code.
- Introduction
Preliminaries
How to Work in OSS Projects **
Kernel Features
Monitoring and Debugging
Printk
The proc Filesystem **
kprobes
Ftrace
Perf
eBPF
Crash
kexec
Kernel Core Dumps
Virtualization**
QEMU
Linux Kernel Debugging Tools
Embedded Linux**
Notifiers**
CPU Frequency Scaling**
Netlink Sockets**
Kernel Deprecated Interfaces
Introduction to Linux Kernel Security
Linux Security Modules (LSM)
SELinux
AppArmor
Netfilter
The Virtual File System
Filesystems in User-Space (FUSE)**
Journaling Filesystems**
Closing and Evaluation Survey
Kernel Architecture I
Kernel Programming Preview
Modules
Kernel Architecture II
Kernel Configuration and Compilation
Kernel Style and General Considerations
Race Conditions and Synchronization Methods
Memory Addressing
Memory Allocation
Курсът е предназначен за (Audience):
- This course is for experienced developers who need to understand the methods and internal infrastructure of the Linux kernel.
Формат на курса
Присъствен Формат – Учебна Зала или Вашия Офис. Учебната зала е оборудвана с компютър за всеки участник.
Online Формат – Участвайте виртуално в обучението чрез телеконферентна връзка.
Език на курса (Course Language Option)
Може да изберете Език на който да се проведе обучението – български или английски. Всичките ни инструктори владеят свободно английски език.
Учебни Метериали: в електронен формат (Учебните материали са на английски), включени в цената с неограничен достъп.
Лабораторна среда: всеки курсист разполага със собствена лаб среда, където се провеждат упражненията, част от курса.
Продължителност (Course Duration):
-
4 работни дни (09:00 – 17:00)
или
- 32 уч.ч. обучение (теория и практика) в извънработно време с продължителност 3.5 седмици
- събота и неделя 10:00 – 14:00, 14:00 – 18:00, 18:00 – 22:00
- понеделник и сряда 19:00 – 23:00
- вторник и четвъртък 19:00 – 23:00
Плащане (Payments):
Заявка за издаване на фактура се приема към момента на записването на съответния курс.
Фактура се издава в рамките на 7 дни от потвърждаване на плащането.
Предстоящи Курсове (Next Class):
За повече информация използвайте формата за контакт.
Ще се свържем с Вас за потвърждаване на датите.
Предпоставки (Изисквания) за Участие (Prerequisites):
-
- To make the most of this course, you should:
- Be proficient in the C programming language.
- Be familiar with basic Linux (UNIX) utilities such as ls, grep and tar.
- Be comfortable using any of the available text editors (e.g. emacs, vi, etc.).
- Experience with any major Linux distribution is helpful but not strictly required.
- Have experience equivalent to having taken LFD420: Linux Kernel Internals and Development.
Pre-class preparation material will be provided before class.
- To make the most of this course, you should:
Курсът подготвя за следните сертификационни нива
Curriculum
- 31 Sections
- 178 Lessons
- Lifetime
- 1 Introduction3
- 2 Preliminaries4
- 3 How to Work in OSS Projects9
- 4.13.1 Overview on How to Contribute Properly
- 4.23.2 Stay Close to Mainline for Security and Quality
- 4.33.3 Study and Understand the Project DNA
- 4.43.4 Figure Out What Itch You Want to Scratch
- 4.53.5 Identify Maintainers and Their Work Flows and Methods
- 4.63.6 Get Early Input and Work in the Open
- 4.73.7 Contribute Incremental Bits, Not Large Code Dumps
- 4.83.8 Leave Your Ego at the Door: Don’t Be Thin-Skinned
- 4.93.9 Be Patient, Develop Long Term Relationships, Be Helpful
- 4 Kernel Features7
- 5 Monitoring and Debugging8
- 6 Printk5
- 7 The proc Filesystem5
- 8 kprobes4
- 9 Ftrace11
- 10 Perf8
- 11 eBPF6
- 12 Crash3
- 13 kexec5
- 14 Kernel Core Dumps2
- 15 Virtualization3
- 16 QEMU5
- 17 Linux Kernel Debugging Tools5
- 18 Embedded Linux4
- 19 Notifiers5
- 20 CPU Frequency Scaling5
- 21 Netlink Sockets4
- 22 Kernel Deprecated Interfaces10
- 23.122.1 Why Deprecated
- 23.222.2 deprecated
- 23.322.3 BUG() and BUG ON()
- 23.422.4 Computed Sizes for kmalloc()
- 23.522.5 simple strtol() Family of Routines
- 23.622.6 strcpy(), strncpy(), strlcpy()
- 23.722.7 printk() %p Format Specifier
- 23.822.8 Variable Length Arrays
- 23.922.9 Switch Case Fall-Through
- 23.1022.10 Zero-Length and One-Element Arrays in Structs
- 23 Introduction to Linux Kernel Security9
- 24 Linux Security Modules (LSM)5
- 25 SELinux13
- 26.125.1 SELinux
- 26.225.2 SELinux Overview
- 26.325.3 SELinux Modes
- 26.425.4 SELinux Policies
- 26.525.5 Context Utilities
- 26.625.6 SELinux and Standard Command Line Tools
- 26.725.7 SELinux Context Inheritance and Preservation
- 26.825.8 restorecon
- 26.925.9 semanage fcontext
- 26.1025.10 Using SELinux Booleans
- 26.1125.11 getsebool and setsebool
- 26.1225.12 Troubleshooting Tools
- 26.1325.13 Labs
- 26 AppArmor5
- 27 Netfilter6
- 28 The Virtual File System11
- 29.128.1 What is the Virtual File System?
- 29.228.2 Available Filesystems
- 29.328.3 Special Filesystems
- 29.428.4 The tmpfs Filesystem
- 29.528.5 The ext2/ext3 Filesystem
- 29.628.6 The ext4 Filesystem
- 29.728.7 The btrfs Filesystem
- 29.828.8 Common File Model
- 29.928.9 VFS System Calls
- 29.1028.10 Files and Processes
- 29.1128.11 Mounting Filesystems
- 29 Filesystems in User-Space (FUSE)3
- 30 Journaling Filesystems4
- 31 Closing and Evaluation Survey1
Instructors
Target audiences
- This course is for experienced developers who need to understand the methods and internal infrastructure of the Linux kernel.