Skip to main content

SISO Project

The goal of this year's project is for each team to create, compile and emulate (using qemu) a light-weight operating system. There are no constraints related to the programming language that is used when writing the OS or the target architecture.

Minimal OS

The minimal requirements for the OS are:

  • boot and display a minimal console
  • be able to execute some commands (students choose what)
  • be able to run at least two processes
  • implement and demonstrate some kind of process sand boxing
  • implement a minimal scheduler

Each team will have up to 3 members, and the complexity of each project will be determined by this. (A 2 people project will likely be not as complex as a 3 people one).

The project has 3 phases:

Phase 0

This phase focuses on forming the teams and creating a github repo where all of the members can be found.

Deadline - 6th of April, 23:59.

Phase 1

At the end of this phase, each team must be able to present an initial minimal version of their operating system. In order to have a working operating system, one can use any tutorials/documentation that one can find, as long as the steps presented are actually implemented and understood, and when asked to explain in more detail, one can easily do it.

The minimal requirements for this phase are:

  • boot
  • display a minimal console and execute some commands
  • Each team member must present his/her individual setup. The scope of this phase is to ensure that all people in a team have followed the same steps.
  • Each team member must visibly contribute to this setup (via PRs in the project's repository).
  • The project must be well documented, so a README.md file with the steps to boot this initial version must be also found on the team's repository.
  • An archived version of the repository will also be uploaded on Moodle.

Deadline - 27th of April, 23:59.

Phase 2

The goal of this phase is to further develop the minimal operating system, with each member focusing on different areas and integrating their work at the end.

The requirements are:

  • run at least two processes
  • implement and demonstrate some kind of process sand boxing
  • implement a minimal scheduler
  • This phase will be individually graded, and it's not mandatory for all team members to receive the same grade.
  • Each member's own work must be trackable on github.
  • An archived version of the repository will also be uploaded on Moodle.

Deadline - 27th of May, 23:59.

Grading - 5 pcts

  • Phase 1 - 2.5 pcts
  • Phase 2 - 2.5 pcts

Extra points for those who choose:

  • other hardware then x86
  • other development language than C