M3: Interacting with the Kernel Using C¶
This third module explores how processes begin to interact with the operating system and kernel. Specifically, when a process needs to request an operating system service such as system call request. We will begin by learning the basics of C programming and then how it interacts with the kernel.
Pre-recorded Lectures¶
Note: Professor Samuels will state on Ed when the prerecorded videos are ready to be viewed each week for a module.
The pre-recorded lectures are available here: M3 Videos. You can also find the videos under the “Panopto” tab on the MPCS 51082 canvas site.
The lectures are a series of approx 15-20 minute videos. Please come back here weekly as the videos will be updated if a module spans multiple weeks. This module includes the following videos:
3.1: C Functions
3.2: Compound Data Types: Arrays, Structs
3.3: C Strings
3.4: Header Files & Array of Strings
3.5: Static vs Dynamic Memory Allocation
3.6: Command Line Arguments & Environment List
3.7: Exceptions and System Calls
3.8: System Calls
The slides presented in these videos are accessible in the upstream repository.
Resources/Readings¶
The slides and code presented in this module are accessible in the upstream repository.
- The Linux Programming Interface: A Linux and UNIX System Programming Handbook readings:
Chapter 3.1-3.6
Synchronous Sessions (In-person Lecture)¶
As a reminder here are the dates and times for the synchronous session for this module:
Week 4¶
- Dates/Times
Section 1: Monday October 16th 10:20am-12:20pm
Section 2: Thursday October 19th 5:30pm-7:20pm
- Session Outline
C Bootcamp: learning the basics of the language
Week 5¶
- Dates/Times
Section 1: Monday October 23rd 10:20am-12:20pm
Section 2: Thursday October 26th 5:30pm-7:20pm
- Session Outline
Pointers in C
Memory Allocation in C
Assignment¶
Assignments are always due on Friday evenings.
Homework #3, due October 20th at11:59pm CDT
Homework #4, due October 27th at 11:59pm CDT
Homework #5, due November 10th at 11:59pm CDT