CPSC 410 / CPSC 611 -- Operating Systems: Projects
CPSC 410 / CPSC 611 -- Operating Systems: Projects
This page contains information about the projects.
Presentations about the Project Environment
| Topic |
Slides |
|
|
| Introduction |
slides
The Boot Process
Compiling and Linking a Kernel
Issues when Building a Kernel in C++
|
| Low-Level Programming |
slides
Exceptions
Interrupts
Simple Devices
|
Handing in Projects
You are to submit your projects through the department's turn-in
system. Proceed as follows:
- Log into http://csnet.cs.tamu.edu. (You
may need to establish a VPN connection first; not sure.)
- Follow the "My Courses" link.
- Select CPSC410 or CPSC611 from the given list of courses. you
will see the class information and buttons for turn-in.
- Use the buttons to upload your files.
- NOTE: Subsequent submissions overwrite your earlier
submissions for the same assignment!!
- If you have more than one file to submit, compress them into
one file using tar or zip.
Infrastructure for Machine Problems
Check with the class handouts
(slides)
for details about the infrastructure
needed for the machine problems (Bochs emulator, compiler,
etc.).
We have installed parts of the necessary infrastructure on the
machines in Lab in HRBB 219 and on Machine 1 - 10 in Lab HRBB214.
In particular, we have installed the following software:
- The NASM assembler. The assembler can be found in Directory
c:\NASM or similar.
- The Bochs environment. Bochs can be easily started by clicking
on the .bxrc file in your project directory; see
below.
Two additional software packages are required but cannot be easily installed by CSG
for you to use. You should therefore install them yourself in your
H: directory. The ZIP files, installation instructions, and
installation scripts are availabled here.
- The DJGPP GNU compiler environment for Windows. Install the
compiler in a directory called DJGPP in your H:
drive. An installation script is provided in the ZIP file.
- The WinImage virtual disk handler for disk image
files. This program has the same (or very similar) funtionality to
the program FileDisk described in class, but is easier to
install and has a graphical user interface. Install this program as
well in your H: disk.
The suport files for the machine problems can be found in this zip file. This archive containes four
files:
- dev_kernel_grub.img: This file contains the image of
the boot "floppy disk". It contains the grub bootloader and a dummy kernel.
- BIOS-bochs-latest: This file contains the BIOS.
- VGABIOS-lpgl-latest: This file contains a basic VGA
BIOS.
- bochsrc.bxrc: This text file contains the configuration of
the emulated machine. If bochs is correctly installed,
double-clicking on this file should start the emulator.
Note: Depending on the particular installation of Bochs on
your system, you may need to specify the complete path of the image
file for your floopy disk in file bochs.bxrc for Bochs to
find the floppy "device". Edit the file bochsrc.bxrc and
modify the definition for floppyA to absolute path of the
.IMG file.
Machine Problem 1 (Due Date: Check CSNET)
This first machine problem is easy and should get you used the
machine problem environment, such as the Bochs emulator, the
compilers, and so on.
The handout for MP1 is available here, and the source code that you need
to work with is contained in this ZIP file.
To set up the environment for this MP on your machine, create a
directory of your choice, copy and unzip the
MP1_Source.ZIP to the new directory. This archive
contains also all the Bochs environment file needed to run the
kernel in the Bochs emulator. Alternatively, you can copy and
unzip the
file BaseBochsEnv.zip (see paragraph about Bochs
Environment above) to that directory as well.You are now ready
to go.
Machine Problem 2 (Due Date: Check CSNET)
In the second machine problem you start working on the virtual
memory management of your operating system. You will set up
the paging system and initialize the page table.
Machine Problem 4 (Due Date: Check CSNET)
In the fourth machine problem you implement a simple device
driver. The code for this MP can be found here.