When it comes to operating systems, there are three main concepts: virtualization, concurrency, and persistence. These concepts lay the foundation for understanding how an operating system works. In this extensive course, you'll cover each of those in its entirety. You'll start by covering the basics of CPU virtualization and memory such as: CPU scheduling, process virtualization, and API virtualization. You will then move on to concurrency concepts where you’ll focus heavily on locks, semaphores, and how to triage concurrency bugs like deadlocks. Towards the end, you'll get plenty of hands-on practice with persistence via I/O devices and file systems. By the time you're done, you'll have mastered everything there is to know about operating systems.