Skip to main content

Fundamentals of Operating Systems

21h 41m 1s
English
Paid

Course description

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

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 50 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Fundamentals of Operating Systems

0:00
/
#1: Welcome

All Course Lessons (50)

#Lesson TitleDurationAccess
1
Welcome Demo
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

Unlock unlimited learning

Get instant access to all 49 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Understanding Cognitive Biases

Understanding Cognitive Biases

Sources: Wondrium by The Great Courses, Alexander B. Swan
Understand how your brain’s efficiency shortcuts can leave you with a biased view of the world and learn how to combat these tendencies in your everyday life. A
10 hours 51 minutes 35 seconds
The Software Designer Mindset (COMPLETE)

The Software Designer Mindset (COMPLETE)

Sources: ArjanCodes
"The Software Designer Mindset" is a course that teaches all aspects of software architecture and offers practical advice on creating scalable software...
14 hours 32 minutes 58 seconds
Computer Science Fundamentals

Computer Science Fundamentals

Sources: Andreas Kretz
As in any field, strong fundamental knowledge forms the foundation for everything else. That is why this course is your first step on the path to a profession..
1 hour 30 minutes 17 seconds
Sound Design with Cubase

Sound Design with Cubase

Sources: designcode.io
Many techniques and parameters can be used to create your sound, whether it be from samples or your own recordings. To achieve this you need the right software,
1 hour 57 minutes 34 seconds
Build & Launch Your SaaS in Under 7 Days

Build & Launch Your SaaS in Under 7 Days

Sources: jsmastery.pro, Adrian Hajdin
A comprehensive master class that will help you quickly design, develop, deploy, and monetize your own SaaS application using modern...