Fundamentals of Operating Systems
Operating systems orchestrate many processes, allow access to memory, disk and network and execute the process by scheduling them to the CPU. Sounds simple when we put it this way but this task is vast. So vast indeed that writing programs that are efficient really depends on how much understanding the engineer has in operating systems.
I have been fascinated by revealing and demystifying anything that is hidden from me, mainly because by treating black boxes as black boxes that takes input and produces output, I feel that I am at the mercy of this black box. Databases were a black box for me a decade ago, I was at completely lost when a query that I wrote was originally running fast but after few month it had gone slow. The reason is I didn't really have any understanding of database systems and how their internals work.
The same thing is true for operation systems, we run our program which turns into a process that uses bit of memory and access disk and network but we really don't know how this is done and as a result we as engineers are bound to write inefficient code.
I built this course to demystify what I believe are the fundamentals operating systems to software engineers. Like all my courses, I recommend the student having some programming experience to take this course, it just makes the course relatable. I will be using multiple operating systems like Linux, Windows and Mac in this course.
I hope you enjoy it.
Watch Online Fundamentals of Operating Systems
# | Title | Duration |
---|---|---|
1 | Welcome | 03:02 |
2 | Who is this course for? | 05:10 |
3 | Course Overview and Outline (must watch) | 20:41 |
4 | Course Downloadable Content | 01:02 |
5 | Section Intro Why an OS | 05:55 |
6 | Why do we need an Operating System? | 27:36 |
7 | System Architecture Overview | 51:51 |
8 | Anatomy of a Process Section Intro | 06:44 |
9 | Program vs Process | 53:00 |
10 | Simple Process Execution | 23:57 |
11 | The Stack | 28:28 |
12 | Process Execution with Stack | 37:20 |
13 | Data section | 21:03 |
14 | The Heap | 47:46 |
15 | Process Section Demo | 10:35 |
16 | Memory Management Section Intro | 08:12 |
17 | The Anatomy of Memory | 44:11 |
18 | Reading and Writing from and to Memory | 24:26 |
19 | Virtual Memory | 51:52 |
20 | DMA | 16:53 |
21 | Memory Section Demo | 13:39 |
22 | Inside the CPU Section Intro | 04:22 |
23 | CPU Components and Architecture | 01:05:44 |
24 | Instruction Life Cycle | 19:11 |
25 | Pipelining and Parallelism | 20:03 |
26 | Inside the CPU Demo (CPU wait times) | 21:31 |
27 | Process Management Section Intro | 11:42 |
28 | Process vs Thread | 01:00:00 |
29 | Context Switching | 37:24 |
30 | Concurrency | 28:39 |
31 | Demo Process Management | 14:38 |
32 | Storage Management Section Intro | 08:45 |
33 | Persistent Storage | 48:10 |
34 | File Systems | 01:10:17 |
35 | What really happens in a file IO? | 11:03 |
36 | Storage management Demo | 25:37 |
37 | Socket Management Section Intro | 05:51 |
38 | Network fundamentals | 01:42:34 |
39 | Sockets, Connections and Kernel Queues | 33:53 |
40 | Sending and Receiving Data | 24:02 |
41 | Socket Programming Patterns | 15:04 |
42 | Asynchronous IO | 28:37 |
43 | Socket Management Demo | 40:14 |
44 | OS Concepts Section Intro | 03:05 |
45 | Compilers and Linkers | 36:45 |
46 | Kernel vs User Mode switching | 11:02 |
47 | Virtualization and Containerization | 24:44 |
48 | Course Summary | 02:16 |
49 | How Google Improved Linux TCP/IP Stack by 40% | 12:03 |
50 | How TikTok's Bytedance improved Linux reboot | 10:22 |