This course explains the fundamental ideas behind the open source operating system approach
to programming. Knowledge of Linux helps to understand OS level programming. Like the
successful computer languages that came before, Linux is the blend of the best elements of
its rich heritage combined with the innovative concepts required by its unique environment.
Syllabus
UNIT I: I
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.
UNIT II: II
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.
UNIT III: III
Files: File Concept, File System Structure, Inodes, File Attributes, File types, Library
functions,the standard I/O and formatted I/O in C, stream errors, kernel support for files,
System calls, file descriptors, low level file access – File structure related system calls(File
APIs), file and record locking, file and directory management – Directory file APIs, Symbolic
links & hard links.
UNIT IV: IV
Process – Process concept, Kernel support for process, process attributes, process control -
process creation, waiting for a process, process termination, zombie process, orphan process,
Process APIs. 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.
UNIT V: V
Interprocess Communication : Introduction to IPC, Pipes, FIFOs, Introduction to three types of
IPC-message queues, semaphores and shared memory. Message Queues- Kernel support for messages,
Unix system V APIs for messages, client/server example.
UNIT VI: VI
Semaphores-Kernel support for semaphores, Unix system V APIs for semaphores. Shared Memory-
Kernel support for shared memory, Unix system V APIs for shared memory, semaphore and shared
memory example.
UNIT VII: VII
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.
UNIT VIII: VIII
Sockets: Introduction to Sockets, Socket Addresses, Socket system calls for connection oriented
protocol and connectionless protocol, example-client/server programs.
.
.
.
More Details...