UFCEHX-20-2/
Computer Networks & Operating Systems


As I've taken over from Nigel as module leader for this module, new material will appear here.  The bulk of
the material for this module is still on Nigel's page (see link below).  This page will shortly be updated!

The subjects 'Operating Systems' and 'Computer Networks' are both large enough to warrant entire degrees, let alone one module covering both, therefore this module will introduce you to the key concepts underpinning these topics. The approach includes much hands-on work in the lab sessions which means attendance at labs is important.

Semester 1 will look at the structure of typical modern multi-user 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 command line interface to the operating system and the way in which information about the current state of the O/S, processes and memory can be obtained. to gain a deeper understanding of the structure of the operating system.

Lab sessions will also include the installation of an operating system along with aspects of system and network administration. A logbook of this activity will form the basis of the first assignment. A number of programming exercises will also be undertaken

Semester 2 will take a top down look at networks from the application layer down to the physical layer. The assignment and the remaining labs will focus on developing a network based client and server.

The lectures will introduce the more formal aspects that underpin the design of any operating system or network. For O/S this will include topics such as process scheduling, memory management, file systems and mutual exclusion. For networks this will include protocols, routing, layered models and client-server design.

Operating Systems - Semester 1

Craig Duffy's Lecture slides and resources are here.

  • Week 1: Command Line Interface worksheet
  • Week 3: Files & filehandling worksheet.
  • Week ? : Extra material. How to write a virus aka mess with a FAT16 floppy using Rob Williams worksheet
  • Week 5: Installing Slackware worksheet providing local information.



  • Assignment 1 - Linux Installation & Configuration walkthrough
    A worksheet on the Slackware install to the Jaz machines is available here.

    Go to Nigel's Page

    Networking

    Networking slides as PDF

    An example Java client

    Last years networking exam paper

    The first worksheet for this module, Network Tools 1 .  available in postscript or Adobe PDF.

    A worksheet on RPC programming (optional extra, pdf)
     

    Security

    A security primer (pdf)
     

    Socket Programming

    An excellent reference (local pdf) on socket pragramming including an example client & server and excercises.
    Read this and work through it in the lab!

    Brian (Beej) Hall's Guide to Network Programming is Excellent! (local pdf)

    Linuxsocket.org is an excellent reference!  It also contains a lot of source code examples. (offsite)

    The Linux Gazette offers an introduction to socket programming (offsite).

    the RFC Editor is the definative resource for RFC's and information on them.
     

    Coffee!

    At the best part of 10,000 EUR, I doubt we'd ever get one. but this looks ideal hardware to
    implement  RFC2324 on!
     
     

    Offsite Resources

    RedHat produce a linux distribution people love or hate. I'm a fan, Nigel isn't. You will be using slackware in the labs.


    IBM offer a variety of excellent resources.  You need to register first, but access is free.
     

    Local Linux Resources

    Debugging with gdb

    Linux Administration made easy by Steve Frampton is getting a little dated.

    Available locally are html versions of the:


    The image below takes you to a directory containing the complete book in PDF format

    Licence

    In addition, a pdf version of a complete introduction to linux, Rute, can be found here.