Operating Systems 2
- Text 1:
Linux Kernel Hackers Guide
- Text 2
- Title: Linux Kernel Internals
- Authors: M. Beck, H. Böhme, M. Dziadzka, U. Kunitz,
R. Magnus, D. Verworner
- Addison-Wesley
- ISBN: 0-201-33143-8
- Recommended text:
- Title: The Design and Implementation of the 4.4BSD
Operating System
- Authors:
- Marshall Kirk McKusisk
- Keith Bostic
- Michael J. Karels
- John S. Quarterman
- Publisher:Addison-Wesley
- ISBN: 0-201-54979-4
-
Bookpool Web page for purchasing
- Linux Memory
management Home Page
- The
UVM Home Page
- A virtual
memory tutorial
-
Caching Home Page
Exam
1, again
Homework assignments
Check this page often!
Unix links
-
Other course materials: A free Unix (Linux, or one of the
three BSD's)
Cheap
Bytes (a cheap source for Unix CDs)
- Linux Home Page
- Turbo Linux for the PPC
- Apple's Linux Home Page
- The three BSD's (the first two use the revolutionary UVM
virtual memory algorithm):
- OpenBSD (the
world's most secure operating system). Runs on the following
architectures: x86 (of course), sparc, amiga, hp30, Mac 68K,
mvme, 68K, and PowerPC.
- NetBSD (a highly
portable operating system). Runs on everything (well, almost
everything). It was the first unix-like OS to be ported to
the Mac 68K.
- FreeBSD (the
world's fastest operating system and basis for Apple OSX).
Runs on: x86, Alpha, and PowerPC.
Note: all three BSD's may be downloaded and installed from the
net. CD's are also available for them (check the web sites) or
cheapbytes.
- Linux for the iMac
-
Linux Documentation
Project
- General techy news
(somewhat Linux oriented)
- BSD news
- Latest Unix software
- Ranish
Partition Manager
A program that installs under windows and allows booting
multiple operating systems (Linux, windows, the BSD's,
etc.). It is also a powerful tool for creating and managing
disk partitions.
Goals of this course:
To teach the student various aspects
of the internal working of the Linux operating systems, including:
- How to write device drivers.
- Implementation of virtual memory.
- Kernal scheduling algorithms.
There will be a term project described in
Project page
There will also be several exams.
Team sign up Page
- Introduction to device drivers.
- Accessing drivers: the /dev directory
- Interface with the kernel: use of kmalloc, mmap and munmap.
- Case study: the VGA driver.
- First assignment: recompile the Linux kernel.
- Low-level device controller considerations
- The language of device controllers.
- Case study: the Linux mouse driver.
- Use of outp and inp commands.
- Structure of a sound card: Wav, midi, and FM
components. Analogue to digital interface.
- Case study: initializing the CS4232 sound card.
- First exam: fully annotate the source code of the
joystick driver.
This involves explaining what all of
the variables are used for and listing the device controller
commands used.
- Programming the analogue to digital interface (ad1848).
- Memory management in Linux.
- Implementation of virtual memory.
- Virtual memory in Linux verses that of BSD-based systems.
- inodes vs mnodes. Implementation of shared virtual
memory. mmap.
-
Implementation of the ext2 filesystem