C-DAC’s Certified Professional
in
Linux System Programming
Areas of Concentration
A
1. Introduction to Linux
• Introduction to UNIX, Linux and GNU
• Difference between free software and open source
• Linux Distributions
2. Linux Architecture
3. Shell programming
• Introduction to shell
• Types of shell
• Pipes and Redirection operators
• Environmental variables
• Interactive vs Non-Interactive shell
• Advantages of shell scripting
4. GNU Tool chain
• Components of GNU Tool chain
• GNU make
• GNU binutils
• GNU Compiler Collection (GCC)
• GNU Debugger (GDB)
• GPROV
• GCOV
5. Linux System Programming and System Calls
6. Working with Files
• Linux File structure
• System calls vs Library Functions
• Standard I/O Library
• Low-Level File Access (open, read, write, close, lseek, dup, dup2, stat, lstat, fstat)
• Directory access (opendir, readdir, telldir, seekdir, closedir)
• File and Directory Maintenance (chmod, chown, unlink, link, symlink, mkdir, rmdir &
chdir)
• fcntl, mmap and munmap
7. Linux Environment
• Environmental variables
• Logging
• Time and Date
8. Process Management
• Introduction to processes
• Process State Transition
• Creating a new process
• fork( ) & vfork( )
• exec family
• Termination of a process
• Process scheduling
• Waiting for a process
• Zombie process
9.Threads
• Thread Overview
• POSIX Threads
• Thread Management
• POSIX Thread API
• Synchronization of threads
• Advantages & disadvantages of Threads
10. Inter Process Communication (IPC)
• Pipes
• Named Pipes
• Semaphores
• Shared Memory
• Message Queues
11. Signals
• Introduction to signals
• Signal types
• Generating a signal
• Responding to a signal
• Common use of signals
12. Socket Programming
• Introduction to Sockets
• Domains and Address Families
• Client-Server Architecture
• Socket types and protocols
• Creating and Naming the sockets
• Requesting connections
• Accepting connections
• Closing the socket
• Host and network byte ordering
• Use of select system call
• Datagram Communication
13. Memory Management
• Pages
• Zones
• Getting pages
• Slab Layer
• Slab allocator interface
• High Memory Mappings
14. Virtual File System
• Filesystem abstraction Layer
• VFS objects and their data structures
• Super block object & operations
• Inode object & operations
• Dentry object & operations
• File object & operations
• Data structures associated with Filesystems & with a process
15. Proc File Systems