1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! Project1: KeOS.
//!
//! In this project, you will implement the mini operating system called `KeOS` (KAIST educational operating system).
//! KeOS is a minimalistic OS that includes necessary features to boot and run threads.
//! You will implement small functionalities to learn the APIs and infrastructure of the KeOS.
//!
//! This project is divided into three sections: [`Synchronization`], [`Round-robin Scheduling`] and [`Page Table`].
//! Note that **KeOS will not be booted** without the implementation of the [`Synchronization`] projects.
//!
//! ## Getting started
//!
//! **YOU MUST IMPLEMENT [`Synchronization`] project first.**
//!
//! after implementing the [`Synchronization`] crate, go to the project 1 directory.
//!
//! KeOS will be panic with "not yet implemented" message.
//!
//! ```/bin/bash
//! $ cargo run --target ../.cargo/x86_64-unknown-keos.json
//! ```
//!
//! ## Outline
//! - [`Synchronization`]
//! - [`Round-robin Scheduling`]
//! - [`Page Table`]
//!
//! [`Synchronization`]: ../../../spin_lock/smplock
//! [`Round-robin Scheduling`]: rr
//! [`Page Table`]: page_table

#![no_std]
#![no_main]

extern crate alloc;
#[allow(unused_imports)]
#[macro_use]
extern crate keos;

pub mod page_table;
pub mod rr;