diff options
| author | Tianhao Wang <shrik3@mailbox.org> | 2024-04-17 11:47:43 +0200 |
|---|---|---|
| committer | Tianhao Wang <shrik3@mailbox.org> | 2024-06-11 15:16:22 +0200 |
| commit | 41be743a05b9350e356ffb1c897a11656ed0b398 (patch) | |
| tree | e727b7d82035770baeb6b8dc5e019353ba2c306a /README.md | |
| parent | c5953a7976bb599be78bb956376c07318c354139 (diff) | |
readme: update info
Signed-off-by: Tianhao Wang <shrik3@mailbox.org>
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 50 |
1 files changed, 43 insertions, 7 deletions
@@ -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** |
