Overview
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
Software Engineers who want truly understand the OS
Recommended to have a programming experience
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.
Hussein Nasser
My name is Hussein and I’m a software engineer. My software journey started around 1998 when my uncle gave me a book titled `Learn Programming and Visual Basic 2.0`. That book made me realized that I enjoy the craft of building software. Using every medium available I would talk about software in a form of bulletin boards, blogs, books, courses, podcasts, and videos.
These days I run a YouTube channel where I cover software engineering topics with a focus on backend tech. I discuss databases, proxies, security, networking, protocols, and programming. I also cover recent news and current events in the field of software.
I specialize in the field of geographic information systems (or GIS for short). Since 2005, I helped many organizations in the Middle East implement Esri GIS by designing and building mapping apps to streamline their workflows. I wrote five books on Esri’s technologies and I've been a principal engineer there since 2015.
Using software to solve interesting problems is one of the fascinating things I really enjoy. Feel free to contact me on my social media channels to ask questions or share interesting problems. I would love to hear it!
