aboutsummaryrefslogtreecommitdiff
path: root/readme.md
diff options
context:
space:
mode:
authorTianhao Wang <shrik3@riseup.net>2023-03-11 19:26:49 +0100
committerTianhao Wang <shrik3@riseup.net>2023-03-11 19:26:49 +0100
commit6ee191ced1cd9998caa4cca9531229ddd83840bb (patch)
tree2439da0b2aed60f84b54ce78a3476ecf80cc92e9 /readme.md
parentaec1686102abc5c9099c198e7798bcb7c94b3402 (diff)
readme
Diffstat (limited to 'readme.md')
-rw-r--r--readme.md47
1 files changed, 47 insertions, 0 deletions
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..1addfa1
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,47 @@
+# The rust port of OOStuBS [WIP]
+
+This is a tool bare metal operation system implemented in Rust. Apologies for my
+shitty code, I'm a rust beginner.
+
+The project is based on the OOStuBS, an OS exercise project used in some German
+Universities. This one in perticular, is based on the TU Dresden version
+(Operating System Construction), led by my Professor Dr. Horst Schirmeier.
+
+
+**Status**
+[X] - Basic code structure
+[X] - Build minimal iso image
+[X] - bootable using grub
+[X] - Setting up CGA display, print something (hello world)
+[ ] - Keyboard controller and input handler
+[ ] - Interrupt handler
+[ ] - Timer Interrupt
+[ ] - Threading
+[ ] - Scheduler
+[ ] - Synchronization Primitives
+
+**Dependencies**
+- cargo / rustc (nightly)
+- xbuild for crossbuild
+- basics: nasm, make, glibc, ld etc.
+- xorriso and grub (to create bootable image)
+- qemu-system-x86_64 (optionly for simulation)
+
+**Before building**
+- You may need to add the rust sources component by `rustup component add rust-src`
+
+**How to build**
+- simply run `make`, you will get `bootdisk.iso`, which you can use to boot a
+ bare metal
+- use `make qemu` to load and test the iso image with qemu
+
+# Remarks
+**Why not projects like [blog_os](https://os.phil-opp.com/)?**
+firstly, because it's my own practice. "What I can't create, I don't understand".
+Secondly, the newest revision of *blog_os* can only be booted with BIOS, not
+UEFI. And the complexity (e.g. the sartup.s) is hidden behind the `bootimage`,
+I feel necessary to go through the painful part.
+
+**Your code sucks**
+Yes. I'm a rust beginner.
+