aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorTianhao Wang <wth@riseup.net>2024-01-30 01:58:30 +0100
committerTianhao Wang <wth@riseup.net>2024-01-30 01:58:30 +0100
commit553657a0b527ae8ce09ac628da6122fbdd57157b (patch)
tree10fb93e7b18da5ab12ac72ea4965100a4e7e428c /README
parent36466f28480669af3e7a01c1b305f51eca81a738 (diff)
modify readme, add license info
Diffstat (limited to 'README')
-rw-r--r--README57
1 files changed, 57 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..31c4b53
--- /dev/null
+++ b/README
@@ -0,0 +1,57 @@
+# License & Copyright:
+
+This project aims for a total rewrite TU Dresden OS Group's tutorial OS
+"OOStuBS". However this is in its very early stage and is using some
+boilerplates from the lecture e.g. the startup assembly code.
+
+This project will adapt GPL when the dependencies are sorted out (hopefully very
+soon). Untill then all rights are reserverd.
+
+# The rust port of OOStuBS [WIP]
+
+This is a toy 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)
+[X] - Provide "printf" support
+[ ] - 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.
+