Project resources for System(II) 2019 Spring
Stay tuned
on top of your own repository, run
git pull https://github.com/CreeperLin/System2019
git submodule update
A small and simple operating system that runs on x86 machines and simulators.
- GCC with 80x86 cross-compiler
- Perl
- GNU make
- GDB
- QEMU: fast x86 simulation with binary translation, but only supports real-time mode
- Bochs: slower simulation but supports real-time and reproducible mode
To install Bochs, make sure the following library is installed:
- libncurses5-dev
- libx11-dev
- libxrandr-dev
Then under src/misc, run
sudo ./bochs-2.6.2-build.sh /usr/
First build the pintos utility tools. Under src/utils/,
make
export PATH=$PATH:`pwd`
make sure it is in your PATH environment variable before continuing
The following tools are available:
- pintos: utility for running Pintos in a simulator
- pintos-gdb: launch gdb to debug the kernel
- backtrace: converting raw addresses into symbolic backtraces
In each project directory (threads, userprog, vm, filesys),
to build the project, run
make
the following files can be found in folder 'build/'
- kernel.o: compiled kernel, used for debugging
- kernel.bin: compiled kernel, stripped
- kernel.asm: decompilation of kernel
- kernel.img: image of boot partition
- loader.bin: compiled bootloader
- loader.asm: decompilation of bootloader
- pintos.sh: wrapper script for running pintos
to run pintos in simulation (here using Bochs and no VGA), run
pintos -v --bochs
to run all the tests and see your grade, run
make check
to run a single test, make the '.result' file from 'build/', e.g.
make tests/threads/alarm-multiple.result
or use the wrapper script provided
./pintos.sh run alarm-multiple
to debug a single test,
make tests/threads/alarm-multiple.result PINTOSOPTS='--gdb' VERBOSE=1
or use the wrapper script provided
./pintos.sh debug alarm-multiple
in a new terminal still under 'build/', run
pintos-gdb kernel.o
and in the gdb prompt, run
debugpintos
the gdb is now connected to the kernel
See JHU CS 318 Project 1 for details.
- alarm clock
- priority scheduling
- advanced scheduler
See JHU CS 318 Project 2 for details.
See JHU CS 318 Project 3 for details.
(bonus)
See JHU CS 318 Project 4 for details.
(bonus)
You need to write documents on your project.
Either documents on each part or documents on the project as a whole are acceptable.
Your documents must include:
- name of contributors and their contributions
- length of time spent on each labs
Your documents may include:
- design for each part of the project.
- advantage & disadvantages of your design.
- difficulties & solutions
For each project group:
- Fork or pull this repository to your private github repository.
- Add creeperlin as collabrator and grant read permission.
- Fill up the group infromation in this form.
- make sure your repo has a pintos source folder named 'src', and put your documents in top-level directory or 'docs' folder.
Stanford CS 140 Pintos Project
- Get github student pack to create unlimited private repositories.