Linux System Programming using c and c++

Practical approach to Linux Unix system programming using c and c++ programming language like fork thread semaphore IPC
Rating: 4.2 out of 5 (342 ratings)
14,214 students
Linux System Programming using c and c++
Rating: 4.2 out of 5 (342 ratings)
14,214 students
Student should be able to write their own system call and utilize existing system call on Linux/Unix to create system software.
Student should be able to understand Unix/Linux/Mac/Windows system in greater details
It would also help to brush up the C coding skills of students
For existing developer it would help them in writing better code, free from memory leaks and other resource leaks.

Requirements

  • Student should be familiar with C or C++ programming language
  • Understanding or handling or PC and setup of environment and compiler would help
Description

The course deals which in-depth understanding of system programming on Posix
Compliant system like Linux, Unix, Mac OS X, Windows and Free BSD.

Learn to code in c and c++ for system programming and visualize how linux or Unix works.
Become a better programmer and have upper hand compare to other students.

Setup development environment to compile and debug c and c++ code.
System programming are the basic building blocks and the underlying foundation on which any user APP is built upon hence this course deals with significant details about

Calls like:-

Fork and its family

Pthread and its use, as well as different variants, parameter passing etc.

File operation and IO Handling unbuffered

File operation using buffered call like fopen, fwrite, fread, fseek, ftell, rewind

Reading and writing to console as well as file.

Buffered IO versus unbuffered IO

Socket Programming.

Semaphore, Mutexes and how to make a program thread safe.

How to write a producer, consumer application.

Directory and file navigation

Signal Handling

Alarm Signals

Kill process signal

How system call works and how to implement a system call and interface with Kernel

Helps in better handling of C or C++ language 

Emphasize students to write Linux, Unix, Mac OSX, Windows Course in concise and succinct way without memory leaks or resource leaks.

Who this course is for:
  • System developer or programmer who wants to understand the nitty gritty of OS and underlying architecture
  • Programmer who wants to know in details how the Posix API works.
Curriculum
1 section • 18 lectures • 2h 39m total length
  • Introduction
  • Alarm signal and signal handler
  • readdir, opendir and recursively list directory part 1
  • readdir, opendir and recursively list directory part 2
  • readdir, opendir and recursively list directory part 3
  • How to read a file line by line using getline
  • Read a file part 1 using read call
  • Read a file part 2 and errno handling
  • Read a file part 3 and how to debug error in buffer
  • File read and write
  • fork system call and how to create a new process
  • fork and pid status
  • Fork and defunct or zombie process
  • Pthread Part 1
  • Pthread part 2
  • How to write your own system call
  • Socket Programming for server
  • Socket Programming for client

Instructor
Senior Software Engineer
Shakil khan
  • 4.2 Instructor Rating
  • 3,827 Reviews
  • 83,931 Students
  • 9 Courses

Over 15 years of total experience in software development, focusing on C/C++/Linux/Symbian C++, different flavors of UNIX (SCO, HP-UX, SunOS, AIX and RedHat Linux). Knowledge of LINUX Internals/ System programming/Inter Process Communication  and Shell Scripting.

Worked on Symbian OS features like TLS/descriptors/ threads/ semaphore/IPC/ Active Objects/ Dynamics Arrays/Cleanup Stack/Client –server/Binary Compatibility.
Experience in all stages of development of large project using C/C++/ Clearcase/Subversion/GIT  on Linux and LynxOS platform.
Worked on Linux Device driver and System programming.
Worked on HP bootloader, Board Support Package and grub.
Knowledge of Virtual File system, ext3, I/O Scheduler.
Good knowledge of Socket, TCP/IP and routing protocol like BGP, RIP.
Good knowledge of porting and cross-compilation. Ported FreeBSD-libc to Symbian Platform.
Worked on Linux Device Driver(Parallel port Control panel, USB mass storage driver), System programming, ELF32,DWARF, binary optimization.    
Worked on GNU Tools chain like Cross-Compiler, Makefile, Auto Conf.
Worked on drivers for SPI, UART, I2C, GPIO Bus as part of board bringup.
Good Knowledge of Multithreading, Semaphore, Message queue, Shared memory and other IPC mechanism.
Bring up of Board and enhanced product for power star energy consumption by implementing various sleeping mode in Devices like scanner, Fax, Hard drive etc.
Knowledge of GNU tool chain and cross compilation
Participated in Code reviews, Risk management, design document as well as implementation phase.
Good knowledge of Object oriented Analysis and design.
Good Knowledge of Xen/ Qemu and virtualization.
Worked on Malware Analysis and disassembly
Very good and through knowledge of Hypervisor like Xen, KVM.