bill macleod said:
I'm guessing a system call is a function (==to Java method?) that is called
as part of OS operation and they have arguments slightly different than the
same function in the C libraries for writing programs. Is this close? Is that
why there are seperate pages for them?
Could you recommend a book or site that explains how these pieces fit
together, how an OS might depend on libraries?
bill
A system call is a function that is provided by the operating system that the programmer can all to ask the operating system to do something. These are important because, for both security and ease of use, some things cannot be done directly by the programmer. Printing to the screen or the file is an example. You, as the programmer, are not supposed to have direct access to the video hardware for the screen, or have to tell the hard drive how to write a file. The operating system takes care of all of this, and gives you an interface to ask it do to these things. Hence system calls.
man is a documentation system for Unix. Generally speaking it has an entry for every system call, every command, and every standard unix program (grep, bc, vi, etc.). Other programs add manpages as they are installed so that you can look up more info. If you want to look up entries in a specific section (for example printf() in c and not the shell script function printf), looking how to do so by typing "man man", it's the man page for man itself.
As for what libraries are, they are a group of objects and/or functions grouped to perform a set of similar tasks. If you talked about "packages" in java, this is a good analogy. They are usually grouped together in one file and (in c) used by putting an #import directive in the beginning of the file (or import <package> in Java).
If you want more information about how Operating Systems work, most of the textbooks by Andrew Tannenbaum are pretty good.