Overview#

Labs#

There are 8 + 1 labs in this course. You’ll learn how to design a kernel by implementing it yourself.

There are 2 types of exercises in each lab.

basic

You’re required to implement it by the description, they take up major of your scores.

advanced

You can implement some of them to get a bonus.

Important

You must finish todos in exercises to get scores.

There is no limitation on which programming language you should use for the labs. However, there are a lot of things that are language-dependent and even compiler-dependent. You need to manage them yourself.

You can check last year’s course website and submission repository to see what you might need to do during this semester. Yet, the requirements and descriptions may differ this semester.

Grading Policy#

It’s allowed and recommended to check others code, but you still need to write it on your own instead of copy/paste.

TAs validate plagiarism by asking for the detail of your implementation. If you can’t elaborate your code clearly, you only get 50% of the score.

Your code may work on an emulator even it’s wrong. Hence, you get 90% of the score if your code works on QEMU but not on real rpi3.

For late hand-in, the penalty is 1% per week.

Important

Remember to create a Pull Request to oscapstone/osc2023 before you demo and make sure the TA merge the PR after finishing demo. It is an evidance to show that you have finished your homework in time.

Disclaimer#

We’re not kernel developers or experienced embedded system developers. Commonly, we made mistakes in the description. If you find any of them, send an issue or PR to this GitHub repo.