Skip to content

Lesords/MIT6.1810

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT6.1810

Dependencies

Ubuntu

sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu

Fedora

sudo dnf install git @development-tools gdb qemu-system-riscv gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu

Usage

run qemu

make qemu

exit qemu

Ctrl + a x

Lab Utilities

See: Lab: Xv6 and Unix utilities

run all tests

make grade
# Or
./grade-lab-util

run the grade tests for one assignment

make GRADEFLAGS=<cmd> grade
./grade-lab-util <cmd>

# eg
make GRADEFLAGS=sleep grade
./grade-lab-util sleep

Lab System calls

See: Lab: System calls

run all tests

make grade
# Or
./grade-lab-syscall

run the grade tests for one assignment

make GRADEFLAGS=<syscall> grade
./grade-lab-syscall <syscall>

# eg
make GRADEFLAGS=sysinfotest grade
./grade-lab-syscall sysinfotest

Notes: Lack answers-syscall.txt file, need to use gdb to retrieve the corresponding question results

Lab Page tables

See: Lab: page tables

run all tests

make grade
# Or
./grade-lab-pgtbl

run the grade tests for one assignment

./grade-lab-pgtbl pgtbltest
./grade-lab-pgtbl pte printout

Lab Traps

See: Lab: Traps

run all tests

make grade
# Or
./grade-lab-traps

run the grade tests for one assignment

./grade-lab-traps backtrace
./grade-lab-traps alarm

manual test

backtrace

make qemu
bttest

# Open another terminal(don't enter qemu), then
addr2line -e kernel/kernel
# Inputting the address output by bttest will convert it to the corresponding function name

alarm

make qemu

alarmtest
usertests -q  # It will take some time

Notes: Lack answers-traps.txt file

Lab Copy on-write

See: Lab: Copy-on-Write Fork for xv6

run all tests

make grade
# Or
./grade-lab-cow

manual test

make qemu
cowtest
usertests -q

Notes: usertests failed in manual test

Lab Multithreading

See: Lab: Multithreading

run all tests

make grade
# Or
./grade-lab-thread

run the grade tests for one assignment

./grade-lab-thread uthread

./grade-lab-thread ph
./grade-lab-thread ph_safe
./grade-lab-thread ph_fast

./grade-lab-thread barrier

manual test

switching between threads

make qemu
uthread

Using threads

make ph
./ph 1
./ph 2

Barrier

make barrier
./barrier 2

Lab network driver

See: Lab: networking

run all tests

make grade

manual test

make server

# Open another terminal
./grade-lab-net
## Or
make qemu
nettests

Lab Lock

ToDo

Lab File system

ToDo

Lab mmap

ToDo

About

MIT 6.1810, 2023 Fall, Operating System Engineering solution repository.

Resources

License

Stars

3 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors