Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

Introduction to Systems Programming in C

via Udemy

Overview

Learn the basics of Systems Programming: System Calls, File Manipulation, Processes, Threads, Syncronization

What you'll learn:
  • Understand how to use system calls to accomplish: file manipulation, process control, threads, and syncronization.
  • Know how to implement existing functions, such as gcc, by using system calls.
  • Review the Unix operating system structure.
  • Be able to manipulate files using system calls.
  • Understand how processes work between the child and parent.
  • Learn proper technique for passing variables into a thread safe function.
  • Understand the overlap between processes and threading.
  • Know how semaphores are used to solve the bounded buffer problem.

Overview

This course is intended to be an introductory course for those interested in systems programming. I tried to keep this course very simple and easy to understand. In order to do that I created this slide deck that is short and concise, with programming example to compliment them. I will introduce you to the main concepts so you will have a strong foundation and base point to dive deeper into these topics and cover additional topics on your own.


General Course Contents

  1. System calls and how they interact with the kernel

  2. File manipulation looking at how to create, delete, and edit files using system call

  3. (briefly) Memory management and how exactly Unix deals with virtual memory addressing

  4. Processes:how to create one and what they are used for.

  5. Threads and how they are used.

  6. Synchronization issues that arise when using processes and threading

Taught by

Matt Sawka

Reviews

4.2 rating at Udemy based on 354 ratings

Start your review of Introduction to Systems Programming in C

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.