CS210BKK
Fundamentals of Operating Systems

Faculty
Konstantin Yegupov
Core Engineer at CausalApp Ltd.
Course length
Duration
Total hours
Credits
Language
Course type
Fee for single course
Fee for degree students
Skills you’ll learn
Overview
The course focuses on understanding why operating systems are necessary and how they enable software to use various hardware resources. Acknowledging these details will help students design programs correctly, optimize their execution, and debug potential problems, especially when deploying the programs in various environments.
During the course, we’ll briefly discuss hardware fundamentals, then introduce practical tools that allow us to study the subject and cover basic components of operating systems: processes, file systems, network. We’ll also discuss various means of virtualization and presentation of OS interfaces in various programming languages.
Learning highlights
- Understand what are the computing resources and how they are shared in operating systems.
- Learn the basics of low-level programming using the C programming language.
- Learn the APIs of modern operating systems.
- Get familiar with diagnostic and management tools.
Course outline
15 classes
Introduction into Operating Systems
Why do OSes exist?
Computing resources.
Hardware and virtual platforms.
Setting up a Linux virtual machine
OS API’s.
CPU and low-level code
Binary and hexadecimal.
CPU ISA’s and assembly basics.
Program memory layout.
C language basics.
Functions and calling conventions.
Compilation and execution of code
VMs, interpreters and native code.
Compilation step-by-step.
Libraries and linkage: static, dynamic.
Translation and executable formats.
Glibc and system calls.
Processes
The need for process isolation.
Privilege levels
Unix and Windows process management.
Memory protection.
CPU scheduling.
OS Kernel & Services
Monoliths, microkernels, modules.
Performing OS calls.
Service (daemon) management in Linux via Init V and systemd.
Service management in Windows.
RAM addressing, paging, translation.
Why translate memory?
Paging and page tables, TLB.
Page faults.
Process memory.
Swapping.
Memory allocation; Signals and interrupts.
Memory allocation strategies.
Automated memory management.
Interrupts: software, hardware.
Signal types.
Midterm exam
Shell commands, concurrency basics.
Essential shell commands for Unix.
Modern Unix tools.
Windows: CMD vs PowerShell.
Processes vs threads vs async.
Inter-process communication.
Advanced concurrency.
Manager / workers pattern.
Locks and condition variables.
Shared memory.
Deadlocks.
Concurrency in high-level languages.
Persistence
Buses and hardware IO API’s.
Hardware devices and caching.
Filesystems.
Unix and Windows paths, symlinks.
Permissions on Unix and Windows.
Unix and Windows I/O API’s.
Network
OSI model.
Networking hardware.
IP layer.
Modern application protocols.
Building client and server applications.
Virtualisation and cloud platforms
Resource abstraction and isolation.
Virtualisation software.
Hardware virtualisation assistance.
Containers.
Docker and Kubernetes basics.
Security & GUI
Authentication.
Application deploy and update.
GUI API’s and toolkits.
Q&A, course review.
Final exam
Methodology
Lectures,practical assignments relevant to the topic, home assignment, midterm exam (exam will include individual tasks and mini-group activities), final exam.
Grading
Konstantin is a software engineer with more than 15 years of experience. He has designed and contributed to web services while working in various companies, from Google and Palantir to small startups. Konstantin enjoys learning new technologies, having professionally written code in many different languages, including Java, Python, Typescript, Go and Rust. He is passionate about making code easier to understand and maintain. He likes to be able to understand all the parts of the project he works on and is thrilled to solve mysterious problems that arise when multiple software components interact in complex ways.
See full profileApply for this course
Fundamentals of Operating Systems
by Konstantin Yegupov
Total hours
45 Hours
Dates
Mar 11 - Mar 29, 2024
Fee for single course
€1500
Fee for degree students
€750
How to secure your spot
Complete the form below to kickstart your application
Schedule your Harbour.Space interview
If successful, get ready to join us on campus
FAQ
Will I receive a certificate after completion?
Yes. Upon completion of the course, you will receive a certificate signed by the director of the program your course belonged to.
Do I need a visa?
This depends on your case. Please check with the Spanish or Thai consulate in your country of residence about visa requirements. We will do our part to provide you with the necessary documents, such as the Certificate of Enrollment.
Can I get a discount?
Yes. The easiest way to enroll in a course at a discounted price is to register for multiple courses. Registering for multiple courses will reduce the cost per individual course. Please ask the Admissions Office for more information about the other kinds of discounts we offer and what you can do to receive one.
