|
Computer Networks and Operating Systems:
|
|
|
|
|
|
|
|
|
|
Module outline UFEEHX-20-2:
|
|
|
|
Please not that I am no longer module leader for this module or it's succesors. I have left this material up as it may be of use to those studying the current version of the module under Ian Johnson
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.
This module shares some of the lecture and lab material with UFEEHJ-30-2 (OSSA) and some useful additional material can be found there.. The current network lecture material can be found on Ian Johnsons module related page. The older slides from the previous incarnation of the module are available below.
|
|
|
|
|
|
|
|
The primary text source for this module is the required book, details of which are given below. It is very strongly recommended that you purchase a copy and more importantly, read it. Alternative sources for the material are given below. The library catalogue number is given where copies are available from the Frenchay Campus Library. Most operating systems and networks textbooks cover similar material with differing degrees of complexity so there is plenty of choice in the library.
The required book for UFEEHX-20-2 is Introduction to Operating Systems, unfortunately it is not yet in the Bolland Library. An advantage is that it also covers the basic material for the computer networks part of the module. This can be supplemented by use of the library. If you want more information for the networking aspects of the course and wish to purchase a second book then, if you can afford it, Computer Networks & Internets, Douglas Comer, Prentice Hall Student Edition is a good choice.
Or the more reasonably priced Computer Networking, a top down approach,4th Ed., Kurose & Ross, Pearson International edition
Note that some lecture material may reference O'Gormans 'Operating Systems with Linux', copies of which are available in the library. If you are particularly interested in the internals of the Linux kernel then you should obtain this in preference to the more general book listed above. Chapter references in the lecture notes currently refer to 'Operating Systems with Linux' and will be revised shortly to match the new recommended text. If you plan to take the Distributed Systems option module in the final year then O'Gormans book would also support this.
Reading list availability at Blackwells on Campus.
|
|
|
|
|
|
|
|
For free books (provided you return them on time) on all aspects of networks and operating systems, use the Library. A selection of suggested reading is given here.
- For general discussions of Operating System Concepts.
- Modern Operating Systems, A. Tannenbaum; 005.43 TAN.
- Operating Systems, W Stalling; 005.43 STA.
- Operating Systems with Linux, J. O'Gorman; 005.4469 OGO.
- Not a library book but a useful and readable (oldish) Linux kernel reference document
- For using (administering) Unix/GNU-Linux
- Linux System Administrators Guide, L. Wirzenius; 005.4469 WIR
- Essential Linux, S. Heath; 005.4469 HEA
- Linux in a Nutshell, E. Siever; 005:432 SIE
- Principles of Network & System Administration, M. Burgess; 004.068 BUR
- Unix System Administration Handbook, Evi Nemeth; 005.43 NEM
- Books on Unix/Linux from a user perspective esp. if it's new to you.
- Books on C programming.
- TBD
- Advanced Programming in the Unix Environment, W.R. Stevens; 005.42 STE
- Network Texts, both popular and thorough.
- Computer Networks, A. Tannenbaum; 004.6 TAN
- Data & Computer Communications, W. Stallings; 004.6 STA
- Computer Networks and Internets, D. Comer; 004.6 COM
Good books for more information on the Systems Administration aspects are
- Linux Administration Handbook Nemeth, Snyder & Hein, Prentice Hall. A practical book on running 'industrial strength' systems. From the writers that produced "The Purple book". Details here
|
|
|
|
|
|
|
|
Semester 1: Operating Systems:
The lab sessions will provide an introduction to GNU/Linux from a users perspective. This will be followed by a deeper investigation through the installation and administration of Slackware GNU/Linux.
- Week 1 (uwe 09): Command Line Interface worksheet
- Week 3 (uwe 11): Files & filehandling worksheet.
- Week ? : Extra material. How to write a virus aka mess with a FAT16 floppy using Rob Williams worksheet
- Week 5 (uwe 13): Installing Slackware worksheet providing local information.
Slackware Installation, User & Sys Admin guide. This contains the detailed steps for installation and much more.
Why we use Slackware.
Semester 2: Networks:
Note that the first three worksheets will form part of assignment 2 and must be completed by the end of UWE week 29. It is STRONGLY recommended that you study worksheet 4
Sign-off sheet for the worksheets and the coffee-pot protocol is here.
A couple of short documents on BNF and HTTP
- Week 1 (uwe 26): network programming 1. worksheet
- Week 2 (uwe 27): network programming 2. worksheet
- Week 3 (uwe 28): network programming 3. worksheet
- Week 4 (uwe 29): network programming 4. worksheet
- Week 5-12: Communication protocol design and development.
The above examples use C. John Counsell has kindly provided example worksheets in Java, Perl and TCL which you may find useful and which demonstrate the similarities within the differnet languages. Support for languages other than C cannot be guaranteed in the lab sessions.
- Java
- Perl
- TCL
- Shell Script
- It can also be done in Bash shell script using the pseudo devices /dev/tcp and /dev/udp. These are normally disabled by default due to potential security risks.
- exec 3<>/dev/tcp/\
kenny.netlab.cems.uwe.ac.uk/13
- cat <&3
- More examples at this site
Some code to get you started with worksheet 2 daytime client; daytime server. You'll need to edit the #include statements.
|
|
|
|
|
|
|
Note that semester 2 slides can be found at Ian's site.
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. These lists need some updating, some slides are redundant but the important ones are here.
- Week 1, 2 : Introduction
- Week 3, 4 : Processes Ch. 7 & Ch. 4
- Week 5 : Scheduling Ch.4
- Week 6,7 : Memory Management, Ch. 5, 6, 7.6
- Week 8, 9 : File Systems, Ch. 3
- Week 10 : Mutual Exclusion Ch. 4
- Week 11 : Mutual Exclusion : low level
- Week 12 : O/S Revision
- And over-run due to cancellations of earlier lectures.
|
|
|
|
|
|
|
|
Sample questions and answers are here and here.
Very common points of confusion in last years exam papers ...
- "the CPU decides ...". No it doesn't, it executes. The O/S 'decides'
- A partition is a partition, not a file system.
- = is assignment, == is a test for equality.
- Revision topics for the CNOS exam
- Processes : management, priorities,scheduling, life-cycle
- Your asssignment work
- Memory Management : Segment & page models, allocating & retrieving memory, advantages & disadvantages of the different models, virtual memory & swap.
- Mutual Exclusion.
- File Systems
Older stuff
A copy of a Linux timeline here . It's a better one than that used in the lecture. There are some useful links on this page
Meanwhile here's the history of Unixalike O/S for now
The slides for the linux history are here
|
|
|
|
|
|
• list of Sample questions.
Page Top
Site Top
Sample Questions
- sample questions for CNOS. Won't hurt for OSSA to have a go at them either. OSSA specific questions will be posted shortly.
- Revision topics for the CNOS Referral exam
- Processes : management, priorities,scheduling, life-cycle
- Network models, TCP/IP, flow control
- Your asssignment work
- Memory Management : Segment & page models, allocating & retrieving memory, advantages & disadvantages of the different models, virtual memory & swap.
- Mutual Exclusion.
Page Top
SITE TOP
A Farrago
An Interactive map of the Linux kernel here. This takes you into a code browser for the entire kernel source, for all supported architectures. Terrifying!
C related links
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
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
Missing man pages
A list of the undocumented man pages on the Gnu/Linux system. It's more up-to-date than the list on 'kenny'.
A plethora of window managers
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.
Useful Worksheets
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.
anon-ftp worksheet if you are using wu-ftpd, no good for pro-ftpd (worksheet in production
Requests for comments
RFC1149 IP over Avian Carriers
RFC2549 IP over Avian Carriers with QoS
RFC2324 HyperText CoffeePot Control Protocol (HTCPCP)
Wireless network links
Further to various requests, here is the link to a local community wireless network.
clan link provided by ex CRTS & BASA students amongst many others.
Just to show that networking isn't all serious, have a search for the worlds first internet enabled portaloo.(be advised, the language on the site tends towards the scatalogical) Search terms +internet +portaloo +big +chill. On a slightly more serious note, the same technology,( equipment and technicians) was used to proved video and audio internet streams from the February anti-war rally in Hyde Park. See link on this page.
local embedded web servers
Nios/uClinux based system. This uses the Nios configurable processor running in an FPGA.
Accessible from inside CEMS only :(
Presentation slides
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 .... :)
Older Network Material
- Week 28 : TCP1
- Week 29 : HTTP
Copies of overheads for the Operating Systems semester :-
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 above. 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+ )
Revision notes
- The exam will cover both O/S and Networks
- There will be 10 short compulsory questions
- The questions will be similar in style and topic areas to the compulsory questions from the January and May papers.
- Example questions can be found in the previous 2 years papers, available from the library
Page Top
SITE TOP