Please see Ian Johnsons web pages. (internal access only)
Note that this page is in desperate need of updating. There is lots of useful stuff here but the lab and lecture lists are wrong in places.UFEEHH-30-2 (Operating Systems & Systems Administration.) are studying operating systems in the first semester and details will be found below.
UFEEHH-30-2 will be studying computer networks in the second semester.
Semester 1 will look at the structure of modern operating systems using the linux kernel and the GNU/Linux operating system as a model. Comparison will be made with other operating systems. The lab sessions will look at the system calls provided by the operating system to gain a deeper understanding of the structure of the operating system through the investigation and possible development of a simple command line interpreter. Time permitting, this will conclude with a look at socket programming to provide a connection between the O/S and Network aspects of the module.
Here is an interactive map of the entire Linux kernel, have fun ;)
Semester 2 will take a top down look at networks from the application layer down to the physical layer. The lab sessions may involve the installation (in groups) of a GNU/Linux system. This will be followed with the setup and administration of network applications, the use of network management tools, an investigation into routing and security. The Assignment and the remaining labs will focus on developing a network based client and server.
See Also: the updated CNOS slides.
UFSEHJ-30-2 recommended texts are Operating Systems with Linux (O'Gorman, Palgrave isbn 0333947452) and either Computer Networks & Internets, Douglas Comer, Prentice Hall Student Edition or Computer Networking, Kurose & Ross, Addison Wesley.
If you get seriously interested in the first assignment then there are copies of the book featured below in the library, it's occasionally available secondhand and also from the campus bookshop
For free books (provided you return them on time) on all aspects of networks and operating systems, use the library. Good choices for networks are
For operating systems related books in the library, have a look at
For those of you who would like to go further with the o/s programming side of things, take a look at Gary Nutt's home page, or his book Kernel Projects for Linux
Good books for more information on the Systems Administration aspects are
A somewhat motley collection, due for upgrading
Foils for the O/S semester are to be found, for the most part, in the course text (O'Gorman). Most of the foils can be found here and are also referenced by lecture below. Code examples are also to be found on the recommended web sites. (Link below and also on kenny).
Copies of the foils from the old version of the networks semester 1(2). They are mostly 2 foils to an A4 sheet. ( to rotate them in acroread use controlshift+ )
The labs are divided in the same way as the lectures.
Code examples are derived from Kernigan & Ritchie, The C programming language; W. Richard Stevens, Advanced Programming in the Unix Environment; or as attributed below. Chapter numbers refer to the course text.
The latest versions of the lecture slides can be found here. This does not include the lectures delivered to UFEEHJ-30-2 only.
Summary of useful(?) C library and system calls
Quick and dirty getttyname() fix as the value in /proc is not a valid id. (don't ask).
tarball of the procps source for the terminally curious. Note this is large, 180+k as tarred and zipped source :)
Ian's wonderful collection of useful hints, tips & links
This site may not be to everyones taste, however it contains a very good tutorial & overview of simple shells, file I/O and related matters, including code examples :) (reference the source). As this link has gone, you could try the tarball or for a very simple shell as a starting point there is the dumb shell.
Or try Unix systems programming.
A lengthy and detailed systems programming site. This is an excellent site for unix related C.
Understanding the formal specification of rfc's can be tricky. This excerpt from the http1.1 rfc might be of some help.BNF
A list of the undocumented man pages on the Gnu/Linux system. It's more up-to-date than the list on 'kenny'.
This worksheet on using Find and Grep and this worksheet on shell scripts will come in handy when attempting to write shell-scripts for the administration part of the assignment.
The presentations that should have been run in the lecture theatre are linked below. They are in magicpoint format. You will need to be running X11 and will need to download and build the viewer. If you set your browser to understand the correct MIME type then the viewer will run automatically after you have installed it. Read the documentation as there are security issues in magicpoints ability to execute processes locally.
Users of non *nix like systems can obtain a *nix like environment for their operating system such as Cygwin. You will need an X server as well, eg xfree/cygwin although if you just use the 'setup.exe' on the main cygwin site .... :)
If you want to try out a different window manager then replace your current .xsession file with one of these:
Save any existing .Xsession to .Xsession.old in case you wish to restore it, then copy your chosen start-up file from here into .Xsession, logout and back in again to try out the window manager.