Skip to Main Content

COMP.3085 Introduction to Linux Kernel Development

Id: 042236 Credits Min: 3 Credits Max: 3

Description

Linux is the most widely used operating system in the world. The core software component of the Linux operating system is the kernel. Some of its roles include managing hardware interactions, virtualizing system resources, and enforcing security constraints. In effect, the Linux kernel powers almost all of the world's top supercomputers, android phones, and an innumerable variety of other computers. This course will introduce students to the Linux kernel development by focusing on device driver development, particularly character devices and the / proc and /sys interfaces. This will give students hands-on experience working with internal Linux kernel APIs for hardware access, memory management, DMA, and interrupts, among other, and provide an overview of some of the core features and components of the kernel, such as scheduling, system calls, the boot process, and hardware description trees. Gaining an understanding of the inner workings of the operating system and how to make changes to it will give students an invaluable perspective on how computers work behind the scenes, which will reveal a new layer of understanding to apply to any future software engineering practice.

Prerequisites

COMP.2030 Assembly Language Programming.

View Current Offerings