Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Introduction to Systems Programming in C
Rating: 4.4 out of 5(535 ratings)
2,649 students

Introduction to Systems Programming in C

Learn the basics of Systems Programming: System Calls, File Manipulation, Processes, Threads, Syncronization
Created byMatt Sawka
Last updated 10/2018
English

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.

Course content

5 sections11 lectures2h 6m total length
  • Introduction1:02

    Lecture to cover the course contents and what you to expect!

Requirements

  • Be familiar with C programming. Have VirtualBox/Linux installed.

Description

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

Who this course is for:

  • Beginners who are interested in systems programming.
  • This course is not intended for experienced software engineers.
  • Those who need to refresh on C concepts such as: file manipulation, processes, threads, and synronization.