Linux Under the Hood LiveLessons

Linux Under the Hood LiveLessons
Linux Under the Hood LiveLessons
English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 9h 36m | 4.45 GB

Learn all about Linux internals and how Linux really works.

Linux Under the Hoodis a unique video project that focuses on Linux internals, so you can get the most out of the Linux operating system. Although most Linux books and videos explain how to accomplish tasks in Linux, this video course goes beyond the how and dives into the why. So, instead of learning how to use commands and configure services, you will take a look at what’s happening in Linux when you perform tasks. We’ll go deeply into the Linux operating system in a way that is understandable to anyone who has already worked a bit with Linux. There’s no need to be an expert or have a C programming language background; the only thing that is required is a bit of experience with the Linux operating system and a desire to learn really understand it.

This course offers 13 lessons that cover everything the audience needs to know to understand how Linux functions. The approach of this video course emphasizes real concept teaching. A minimal amount of slides will be used, with most videos diving into Linux internals and concepts using white board explanations and command line screencasts.

The video lessons cover the following topics:

Lesson 1: How Linux is organized
Lesson 2: About C code, scripts and compiled programs
Lesson 3: Understanding Linux commands and how they work
Lesson 4: Understanding the Linux boot procedure
Lesson 5: Understanding Linux storage
Lesson 6: Understanding memory management
Lesson 7: Understanding processes
Lesson 8: Security
Lesson 9: Hardware initialization
Lesson 10: Looking closer at the kernel
Lesson 11: Understanding networking
Lesson 12: Performance optimization
Lesson 13: The future of Linux

What You Will Learn

  • How to work more efficiently with Linux by understanding exactly how it works
Table of Contents

1 Linux Under the Hood – Introduction
2 Learning objectives
3 1.1 Understanding the stack
4 1.2 Understanding the role of the kernel
5 1.3 Understanding drivers, kernel modules and device files
6 1.4 Understanding glibc
7 1.5 Understanding the Linux shell
8 1.6 Understanding file descriptors
9 Learning objectives
10 2.1 Understanding C programs – From source code to binary
11 2.2 Understanding the role of git
12 2.3 Do you need to know how to read C
13 2.4 Understanding compilers and Makefiles
14 2.5 Understanding the need for libraries
15 2.6 Reading bash and other scripts
16 Learning objectives
17 3.1 Explaining what is involved – opening a file for read
18 3.2 Understanding system calls
19 3.3 Reading about system calls in man
20 3.4 Understanding library calls
21 3.5 Understanding the strict separation between userland and kernel land
22 3.6 Using strace and ltrace
23 3.7 Understanding signals
24 Learning objectives
25 4.1 Generic overview of the boot procedure from BIOS to shell
26 4.2 The first step – UEFI or BIOS
27 4.3 The next step – GRUB, GRUB2, LILO, syslinux or something else
28 4.4 Configuring GRUB2
29 4.5 Understanding and modifying initramfs
30 4.6 Understanding init, upstart, systemd
31 4.7 Understanding systemd and rsyslog logging
32 4.8 Understanding systemd unit files
33 4.9 Understanding systemd targets
34 4.10 Demo – Creating a .service unit file
35 4.11 Using systemd sockets
36 4.12 Analyzing systemd performance
37 Learning objectives
38 5.1 Understanding Linux storage
39 5.2 Understanding partitions – MBR or GPTand creating partitions
40 5.3 Understanding flexible storage – LVM
41 5.4 Creating LVM logical volumes
42 5.5 Understanding device mapper
43 5.6 Creating device mapper storage with dmsetup
44 5.7 Understanding filesystems and the VFS
45 5.8 About POSIX and non-POSIX file systems
46 5.9 Intro to btrfs
47 5.10 Understanding inode and block allocation
48 5.11 Understanding FUSE file systems
49 5.12 Understanding iSCSI storage
50 5.13 Configuring iSCSI storage
51 5.14 Understanding working with flash media
52 Learning objectives
53 6.1 Understanding and monitoring Linux memory allocation
54 6.2 Understanding and monitoring page cache
55 6.3 Understanding active and inactive memory
56 6.4 Understanding the need to swap
57 6.5 Configuring and monitoring swap space
58 6.6 Managing dirty memory
59 6.7 Understanding cache usage
60 6.8 Understanding memory leaks
61 Learning objectives
62 7.1 Understanding how a process is created
63 7.2 Understanding processes and threads
64 7.3 Killing a zombie
65 7.4 Understanding priorities, schedulers and nice values
66 7.5 Understanding inter-process communication, sockets, and pipes
67 7.6 Understanding the D-Bus message interface
68 7.7 Monitoring processes through _proc
69 Learning objectives
70 8.1 Understanding DAC
71 8.2 Understanding owner-based permissions and file modes
72 8.3 Understanding capabilities
73 8.4 The need for MAC
74 8.5 MAC solutions overview
75 8.6 Configuring SELinux file access
76 8.7 Configuring SELinux port access
77 8.8 Monitoring SELinux
78 8.9 Handling SELinux exceptions
79 Learning objectives
80 9.1 Understanding Linux kernel device interfaces
81 9.2 Monitoring hardware availability
82 9.3 Getting hardware information from sysfs
83 9.4 Understanding udev
84 9.5 Applying udev rules
85 Learning objectives
86 10.1 Building your own kernel
87 10.2 Managing kernel modules
88 10.3 Understanding _proc
89 10.4 Using sysctl
90 Learning objectives
91 11.1 Understanding Linux network device names
92 11.2 Understanding the OSI model
93 11.3 Transforming data into packets
94 11.4 Understanding IP
95 11.5 Choosing the right protocol
96 11.6 Reading packet headers
97 11.7 Understanding network buffers
98 11.8 Optimizing data flow
99 11.9 Understanding network configuration management
100 11.10 Understanding network link aggregation
101 11.11 Using netcat
102 Learning objectives
103 12.1 Defining the problem
104 12.2 Understanding current performance
105 12.3 Tracing and profiling application behavior
106 12.4 Manipulating process scheduling
107 12.5 Analyzing and optimizing memory issues
108 12.6 Analyzing and optimizing I_O issues
109 12.7 Analyzing and optimizing network issues
110 12.8 Using cgroups in systemd
111 Learning objectives
112 13.1 Understanding containers
113 13.2 Working with Docker containers
114 13.3 Understanding object storage
115 13.4 Using the cloud as an operating system replacement
116 Linux Under the Hood – Summary