Course overview
In this course, students will understand the theory and practice of operating systems and tool chains for software development. Computer hardware overview and system architecture; Operating system fundamentals; Process management and scheduling algorithms; Filesystems and system backup; Memory management; Software version control and build automation; DevOps; Software testing and bug tracking; Software debugging and remote development.
Course learning outcomes
- Discuss the design of modern processor architectures, and the use of assembly language and compilers
- Describe and compare the basic services of and implementation of various popular operating systems
- Explain the internal implementation of modern kernels and operating systems software
- Describe CPU scheduling algorithms, file systems, virtual memory, and inter-process communication
- Use tools to support software development lifecycle