Linux Utilities-File handling utilities, Security by file permissions, Process utilities, Disk utilities, Networking commands, Filters, Text processing utilities and Backup utilities, sed – scripts, operation, addresses, commands, applications, awk – execution, fields and records, scripts, operation, patterns, actions, functions, using system commands in awk.
Working with the Bourne again shell(bash): Introduction, shell responsibilities, pipes and input Redirection, output redirection, here documents, running a shell script, the shell as a programming language, shell meta characters, file name substitution, shell variables, command substitution, shell commands, the environment, quoting, test command, control structures, arithmetic in shell, shell script examples, interrupt processing, functions, debugging shell scripts.
Linux Files: File Concept, File System Structure,Inodes, File types, The standard I/O (fopen, fclose, fflush, fseek, fgetc, getc, getchar, fputc, putc, putchar, fgets, gets etc.), formatted I/O, stream errors, kernel support for files, System calls, library functions, file descriptors, low level file access - usage of open, creat, read, write, close, lseek, stat family, umask, dup, dup2, fcntl, file and record locking. file and directory management - chmod, chown, links(soft links & hard links - unlink, link, symlink), mkdir, rmdir, chdir, getcwd, Scanning Directories-opendir, readdir, closedir,rewinddir, seekdir, telldir functions.
Linux Process – Process concept, Kernel support for process, process attributes, process hierarchy,process states,process composition, process control - process creation, waiting for a process, process termination, zombie process,orphan process, system call interface for process management-fork, vfork, exit, wait, waitpid, exec family, system.
Linux Signals – Introduction to signals, Signal generation and handling, Kernel support for signals, Signal function, unreliable signals, reliable signals, kill, raise , alarm, pause, abort, sleep functions.
Interprocess Communication : Introduction to IPC, IPC between processes on a single computer system, IPC between processes on different systems,pipes, FIFOs, Introduction to three types of IPC(Linux)-message queues, semaphores and shared memory.
Message Queues- Kernel support for messages, Linux APIs for messages, client/server example.
Semaphores-Kernel support for semaphores, Linux APIs for semaphores, file locking with semaphores.
Shared Memory- Kernel support for shared memory, Linux APIs for shared memory, semaphore and shared memory example.
Multithreaded Programming – Differences between threads and processes,Thread structure and uses,Threads and Lightweight Processes,POSIX Thread APIs, Creating Threads,Thread Attributes,Thread Synchronization with semaphores and with Mutexes,Example programs.
Sockets: Introduction to Linux Sockets, Socket system calls for connection oriented protocol and connectionless protocol, example-client/server programs.
- Unix System Programming using C++, T.Chan, PHI.
- Unix Concepts and Applications, 4th Edition, Sumitabha Das, TMH,2006.
- Beginning Linux Programming, 4th Edition, N.Matthew, R.Stones,Wrox, Wiley India Edition,rp-2008.
- Linux System Programming, Robert Love, O’Reilly, SPD, rp-2007.
- Unix Network Programming ,W.R.Stevens,PHI.
- Unix for programmers and users, 3rd Edition, Graham Glass, King Ables, Pearson Education, 2003.
- Advanced Programming in the Unix environment, 2nd Edition, W.R.Stevens, Pearson Education.
- System Programming with C and Unix,A.Hoover,Pearson.
- Unix Programming, Kumar Saurabh, 1st Edition, Wiley India pvt Ltd.
- Unix and Shell programming, B.A.Forouzan and R.F.Gilberg, Cengage Learning.