Course Title
SF002 – Linux/Unix System Programming Training Course
Linux/Unix System Programming training transforms an IT-Professional or a Student into a Linux/Unix Systems Developer. The participant will develop a deep understanding of Linux or Unix systems and learn concepts and skills which are essential for programming and software development on Linux-based platforms for both enterprise and embedded products and/or applications. Both Linux and Unix System have very similar programming environment. Application programs written on Unix will work on Linux systems with minimal or no changes. So, by undergoing this training program, one can master the programming skills both for Linux Systems as well as other Unix Systems like Solaris, HPUX, AIX, IRIX and other variants of Unix.
- Linux System Programming training course will be delivered by our Founder/Director who is an Expert with 20+ years of experience in Linux Kernel and SAN software development. The course flow will be an assignment driven model so that participants can have a deep understanding of various subsystems of Linux.
- Participants will be writing lots of Linux system programs to learn complex I/O operations on binary & text files; issues surrounding concurrent programming that can potentially lead to races, process hang, process crash and/or entire Linux system hang; installing signal handlers for various signals, writing daemon processes, mapping of memory/files into process address space, etc.
- Participants will be designing and developing applications using C and learn how processes talk to each other within a system using Linux IPCs – Pipes, FIFOs, shared memory, semaphores and message queues programming. Focus will be on designing and developing programs and troubleshooting synchronization issues, races and deadlocks.
Course Delivery
- Lectures, Classroom Discussions and Lab Exercises
- 30% Theory, 70% Lab
- Location: Sanfoundry Institute, Bangalore, India
Labs-Assignments
Lab1 – Writing a program on File I/O operations with text and binary files and performance issues with the code design.
Lab2 – Writing a program to check the limit of open files using /proc filesystem.
Lab3 – Writing a program to use select call and its usage.
Lab4 – Writing a program to synchronize access to a file using advisory file locking mechanisms.
Lab5 – Design and implementation of multiprocess model which is used by many popular applications.
Lab6 – Writing programs to create Zombies and Orphans and verification of their states using ps(1) command.
Lab7 – Writing programs to get and set Process scheduling policy and priority.
Lab8 – Design and implementation of a Daemon process.
Lab9 – Writing program to memory map a file and do operation on that file.
Lab10 – Writing programs to understand signals and handling them due to segmentation violations, sending signals from another terminal and restarting a failed system call due to signals.
Lab11 – Design and implementation of shell Pipe mechanism.
Lab12 – Writing programs to do IPCs using unnamed and named Pipes.
Lab13 – Writing client-server programs using System V Message Queues and debugging and troubleshooting issues.
Lab14 – Writing client-server programs using System V Shared Memory and debugging race conditions.
Lab15 – Writing client-server programs using System V Semaphores and debugging synchronization conditions.
Pre-Requisites
A sound knowledge of C programming language
Target Audience
IT Professionals and/or Students who want to learn key skills for developing software applications on Linux systems and become a Linux Systems Developer
Fee, Schedule & Registration
Click Here for Linux/Unix System Programming course training schedule, fee and registration information.
Linux / Unix System Programming Training Course Outline
|
|