Skip to content

A simple implementation of threads, a naive task-units system in which units find tasks and do them and at the end, implementation of some scheduling algorithms.

Notifications You must be signed in to change notification settings

Pmoonesi/os-xv6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

os-xv6

This is the main project for the course Operating Systems - Fall 2021, Dr. Javadi

xv6

XV6 is a simple unix-like teaching operating system which is publicly available for students to work around and learn how things work in an operating system in their very basic form. You can learn more about this operating system in here.

phase 1

In the first phase of the project, we had to learn how to run xv6 in qemu, which is a light emulator. After that, we started to see xv6's most important files to understand how simple things such as process initiation work. After we understood some basic functions of the operating system, we had to add some system calls and then, add test functions to be able to call those system calls. We have access to the test functions as xv6 commands (use ls to list the available commands).

how to run (with qemu)

git clone https://github.com/Pmoonesi/os-xv6
cd os-xv6
git checkout master
make
make qemu

If you had trouble in the make qemu step and faced:

Error: could not find a working QEMU executable.

Please follow this stack overflow question and you will understand how to resolve that problem.

If you wanted to play around xv6 and change some stuff, do not forget to run:

make clean

before running make and make qemu again.

phase 2 & 3

You can find out about the second phase of this project in os-threads branch of this repo (link). Also, you can find out about the third phase of this project in os-scheduling branch of this repo (link).

About

A simple implementation of threads, a naive task-units system in which units find tasks and do them and at the end, implementation of some scheduling algorithms.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published