[Main]

UNIX Introduction

I would like to spend most of my time in these notes to teach how to C program in a POSIX environment on such platforms as SunOS, Linux, SCO, etc.  But, one should have some basic requirements to navigate through a generic UNIX operating system before learning to write programs on them.  There seems to be literally dozens of sites on the Internet that have basic backgrounds for using a UNIX system.  The following are some links to start you off.

Web Site Description

http://www.isu.edu/departments/comcom/unix/workshop/unixindex.html

Good Basic introduction to using a UNIX System
http://www.cyberspace.org/
http://sdf.lonestar.org/
http://www.nyx.net/
Get a free UNIX Account at these sites
http://www.bsdi.com/bsdi-man/
http://www.csee.usf.edu/cgi-bin/man-cgi
http://www.gsp.com/support/man/
UNIX Man pages online
http://www.geek-girl.com/unix.html A great site for many UNIX related links.
http://www.linux.org LINUX site
http://www.demolinux.org/ Live Linux System on a CD

The following are text books that I think are very useful for learning to program on an UNIX operating system.

B W Kernighan, and R Pike.  "The UNIX Programming Environment".   Prentice Hall, 1984.
W R Stevens.  "UNIX Networking Programming".     Prentice-Hall, 1990. 
W R Stevens.  "Advanced Programming in the Unix Environment".    Addison-Wesley, 1992.
M J Rochkind.  "Advanced UNIX Programming".   Prentice-Hall, 1985.

We will rely on the man(manual) pages heavily when learning to program.  The man pages are broken into eight sections.  The following is a list of the eight sections.   For programming, we will need to use sections 2 (System Calls) and sections 3( C Library Functions)

Section Description
1   User Commands
2   System Calls
3   C Library Functions
4   Devices and Network Interfaces
5   File Formats
6   Games and Demos
7   Environments, Tables, and TROFF Macros
8   Maintenance Commands