Linux Programming (3:0:1)
Course Outcome:
Identify and use UNIX/Linux utilities to create and manage simple file processing
operations, organize directory structures with appropriate security, and develop
shell scripts to perform more complex tasks.
Effectively use the UNIX/Linux system to accomplish typical personal, office,
technical and software development tasks.
Monitor system performance and network activities.
Effectively use software development tools including libraries, pre-processors,
compilers, linkers, and make files. Comprehend technical documentation, prepare
simple readable user documentation and adhere to style guidelines.
Collaborate in teams on system tasks.
Course Content:
Unit I:
Introduction, Features of Linux, Linux Utilities-File handling utilities, 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:
Working with the Bourne shell(bash): Introduction, shell responsibilities, pipes and input
Redirection, output redirection, running a shell script, the shell as a programming language
control structures, arithmetic in shell, shell script examples, interrupt processing,
functions, debugging shell scripts.
Unit 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 structure related system calls(File APIs), file and record locking, file and
directory management – Directory file APIs, Symbolic links & hard links. Process concept.
Unit IV:
Multithreaded Programming: Differences between threads and processes, Thread structure
and uses, Creating Threads, Thread Attributes, Thread Synchronization with semaphores
and with Mutexes, Example programs. Sockets: Introduction to Sockets,example-
client/server programs.
Reference Books:
1. Unix System Programming using C++, T.Chan, PHI.(UNIT III to UNIT VIII)
2. Unix Concepts and Applications, 4th Edition, Sumitabha Das, TMH.
3. Beginning Linux Programming, 4th Edition, N.Matthew, R.Stones,Wrox, Wiley India
Edition.
4. Advanced Programming in the Unix environment, 2nd Edition, W.R.Stevens, Pearson
Education.
5. Unix Network Programming, W.R.Stevens, PHI.