aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorTianhao Wang <shrik3@mailbox.org>2024-04-17 11:47:43 +0200
committerTianhao Wang <shrik3@mailbox.org>2024-06-11 15:16:22 +0200
commit41be743a05b9350e356ffb1c897a11656ed0b398 (patch)
treee727b7d82035770baeb6b8dc5e019353ba2c306a /README.md
parentc5953a7976bb599be78bb956376c07318c354139 (diff)
readme: update info
Signed-off-by: Tianhao Wang <shrik3@mailbox.org>
Diffstat (limited to 'README.md')
-rw-r--r--README.md50
1 files changed, 43 insertions, 7 deletions
diff --git a/README.md b/README.md
index 3f33c66..48ef0ed 100644
--- a/README.md
+++ b/README.md
@@ -32,6 +32,7 @@ Universities. This one in perticular, is based on the TU Dresden version
(Operating System Construction), led by my Professor Dr. Horst Schirmeier.
**Status / Roadmap**
+- [ ] GDB support (qemu stub)
- [X] Basic code structure
- [X] Build minimal iso image
- [X] bootable using grub
@@ -73,30 +74,65 @@ Beyond the original StuBS
Please take a look at the CI manifest:
`.builds/x86_64.yml`
-**>general dependencies:**
+**general 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)
+- qemu-system-x86_64 (optional for simulation)
-**before building**
-- You may need to add the rust sources component by `rustup component add rust-src`
+**Add rust sources**
+- We use `no_std` in the rust build. To use the `core` components, you need to
+ add the rust sources by running e.g. `rustup component add rust-src`
**build and run**
- 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
+## Structure
+```
+.
+├── boot # early boot/startup code
+├── defs # specs for target arch, linking and compiler
+├── docs # namely
+├── isofiles # assets for the grub generated iso
+├── src # main source code
+```
+
# Remarks
-**Why not projects like [blog_os](https://os.phil-opp.com/)?**
+**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.
+**Relationship w. OOStuBS**
+This project is inspired by OOStuBS. It started as a mere copy, but the path
+quickly diverged.
+
+> The third stage masks the absence of a profound reality, where the sign
+> pretends to be a faithful copy, but it is a copy with no original. Signs and
+> images claim to represent something real, but no representation is taking
+> place and arbitrary images are merely suggested as things which they have no
+> relationship to. -- Baudrillard, Jean (1981). Simulacres et simulation
+
+- This project DOES NOT try to complete and/or disclose the solutions to OOStuBS
+ lab assignments. (There are indeed overlapping parts, but it would be the same
+ amount of difficulty, if not more difficult, to read, understand and
+ translate rust code into the OOStuBS CPP code, than to read manuals and write
+ CPP code yourself).
+- This project DOES NOT aim to be a 1:1 port. (i.e. do the same thing but in
+ rust).
+- The "OO" (objekt orientiert) aspect is torn. The OOP concept creates an illusion
+ that "data" and "code" magically belong to "object", which is never the case.
+ I personally prefer NOT to use too much OOP in system programming.
+- The "startup" code is borrowed from the OOStuBS labs @ TU Dresden. This is
+ why you are still seeing "all rights reserved" instead of a copy-left license.
+ I'll do the clean-room rewrite as soon as possible.
+
+**Your code sucks**
+yes.
**Helper docs**