Description
This course covers programming UNIX / Linux with
both system calls and shell programming. The five day class combines lecture
with hands-on exercises. This class assumes the student has used UNIX
/ Linux for a few months and has programmed in C for six months.
Objectives
By the end of the course you will be able to:
- Write programs that interface with the operating
system
- Write shell scripts in both Bourne and C shell
languages
- Understand the options for user interface development
Author
The instructor is Kenneth Pugh. Mr. Pugh has many
years of experience in programming a variety of languages and operating
systems. He is author of several books, including C Language for Programmers,
All on C, and UNIX for MS-DOS Users (in preparation). He was a columnist
for the C User's Journal and the C++ Journal. He has been on the faculty
of the University of Hawaii and Wellesley College.
Outline
- Introduction to System Calls
- System calls versus library calls
- Error handling
- Differences between UNIX systems
- Files and Devices
- Information node (inode)
- File permissions
- File creation mask
- I/O System
- Creating and opening files
- Reading, writing, and seeking
- Pathnames
- Changing modes and owners
- Making and reading links
- Directories
- Making and changing directories
- Reading directories
- File Descriptors
- Duplicating file descriptors
- File locking and unlocking lockf, flock,
and fcntl
- File Systems
- Forcing writes to disk
- Mounting and unmounting
- Processes
- The process table
- Real user and effective user
- Resource limitations
- Environment
- Getting and setting user ids
- Getting process information
- Setting priorities and limits
- Processes
- Terminating processes
- Creating new processes
- Executing a program
- Waiting for child processes
- Interprocess communication
- Signal handlers
- Blocking signals
- Creating pipes
- Messages
- Semaphores
- Shared memory
- Shell programming
- Shell operators
- I/O Redirection
- Running in background
- Shell facets
- Shell variables
- Regular expressions
- Debugging shell scripts
- Shell control flow (Bourne)
- Shell control flow (C Shell)
- User Interface
- Terminal based curses
- Graphic based
- X-Windows
- Motif
- Open Look
|