Fundamentals of Operating Systems

Fundamentals of Operating Systems

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 48 lectures (20h 25m) | 16.20 GB

Build efficient software by understanding how the OS kernel works

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.

What you’ll learn

  • Learn how operating systems work
  • Understand how applications run within the OS
  • Write efficient applications leveraging the understanding OS works
  • Understand the cost of system calls
  • Understand how CPU executes processes
  • The role of the kernel
  • CPU Architecture and Caches
  • Virtual Memory
  • Socket Programming
  • Storage and File system management
Table of Contents

Before we start
1 Welcome
2 Who is this course for
3 Course overview and outline (must watch)
4 Course Downloadable Content

Why an OS
5 Section Intro Why an OS
6 Why do we need an Operating System
7 System Architecture Overview

The Anatomy of a Process
8 Anatomy of a Process Section Intro
9 Program vs Process
10 Simple Process Execution
11 The Stack
12 Process Execution with Stack
13 Data section
14 The Heap
15 Process Section Demo

Memory Managment
16 Memory Management Section Intro
17 The Anatomy of Memory
18 Reading and Writing from and to Memory
19 Virtual Memory
20 DMA
21 Memory Section Demo

Inside The CPU
22 Inside the CPU Section Intro
23 CPU Components and Architecture
24 Instruction Life Cycle
25 Pipelining and Parallelism
26 Inside the CPU Demo (CPU wait times)

Process Management
27 Process Management Section Intro
28 Process vs Thread
29 Context Switching
30 Concurrency
31 Demo Process Management

Storage Management
32 Storage Management Section Intro
33 Persistent Storage
34 File Systems
35 What really happens in a file IO
36 Storage management Demo

Socket Management
37 Socket Management Section Intro
38 Network fundamentals
39 Sockets, Connections and Kernel Queues
40 Sending and Receiving Data
41 Socket Programming Patterns
42 Asynchronous IO
43 Socket Management Demo

More OS Concepts
44 OS Concepts Section Intro
45 Compilers and Linkers
46 Kernel vs User Mode switching
47 Virtualization and Containerization
48 Course Summary

Homepage