commit e376fc3c982002a291659c282f34526c2aba7be1
parent 2955a2d98a02cbe2b37bbf5ed34689502e559a72
Author: Virgil Dupras <hsoft@hardcoded.net>
Date: Tue, 4 Jul 2023 20:49:30 -0400
Update ROADMAP.md and add HARDWARE.md
Diffstat:
3 files changed, 65 insertions(+), 15 deletions(-)
diff --git a/HARDWARE.md b/HARDWARE.md
@@ -0,0 +1,33 @@
+# Hardware support
+
+This page lists what kind of drivers are available for what kind of machines.
+What is listed is known to work, but not necessarily ironclad. Glitch can be
+expected and some configurations might not be available yet.
+
+## i386
+
+### PC
+
+* Supported models:
+ * Any compatible PC with a 80386 or later CPU
+* Input/Output:
+ * PS/2 Keyboard
+ * PS/2 Mouse
+ * COM serial port
+ * VGA Text mode
+ * VESA Graphical mode
+* Storage
+ * Floppy
+ * ATA
+ * AHCI+SATA
+
+## ARM
+
+### Raspberry Pi
+
+* Supported models:
+ * Model 1 A/B
+* Input/Output:
+ * UART accessible through GPIO pins
+* Storage:
+ * SD card
diff --git a/README.md b/README.md
@@ -1,9 +1,10 @@
# Dusk OS
-Dusk OS is a 32-bit Forth and big brother to [Collapse OS][collapseos]. Its
-[primary purpose][purpose] is to be maximally useful during the [first stage of
-civilizational collapse][coswhy], that is, when we can't produce modern
-computers anymore but that there's still many modern computers still around.
+Dusk OS is a 32-bit Forth running on [i386 and ARM CPUs][hardware] and big
+brother to [Collapse OS][collapseos]. Its [primary purpose][purpose] is to be
+maximally useful during the [first stage of civilizational collapse][coswhy],
+that is, when we can't produce modern computers anymore but that there's still
+many modern computers still around.
It does so by aggressively prioritizing [simplicity][simplicity] at the cost of
[unorthodox constraints][limits], while also aiming to make
@@ -14,7 +15,8 @@ piggy-back on UNIX C code, through a modest [porting effort][port], to reach
its goals and stay true to its design constraints with a minimal effort.
This is Dusk OS' source code and the rest of the README assumes that you want to
-run it. To read more about why this OS exists, see its [website][website].
+run it. To read more about why this OS exists, see its [website][website]. To
+see where it's going, you can look at the [roadmap][roadmap].
## Build and run Dusk
@@ -82,6 +84,8 @@ Press Escape to return to prompt. You can try the same thing with:
[website]: http://duskos.org
[collapseos]: http://collapseos.org
+[hardware]: HARDWARE.md
+[roadmap]: ROADMAP.md
[coswhy]: http://collapseos.org/why.html
[creative]: http://collapseos.org/why.html#creative
[purpose]: fs/doc/design/purpose.txt
@@ -90,4 +94,5 @@ Press Escape to return to prompt. You can try the same thing with:
[port]: fs/doc/design/port.txt
[shell]: fs/doc/design/shell.txt
[docs]: fs/doc/index.txt
+[duskcc]: fs/doc/cc/index.txt
[varvara]: https://wiki.xxiivv.com/site/varvara.html
diff --git a/ROADMAP.md b/ROADMAP.md
@@ -12,6 +12,24 @@ involved, please reach out on the mailing list.
If you're inspired by an idea that isn't below, you can reach out too :)
+## Collapse OS rewrite
+
+After I'm done with the ARM port, my next aim is to rewrite Collapse OS from
+within Dusk OS so that they blend better.
+
+My ideas about this are still a bit fuzzy, but the guiding principles are thus:
+
+1. Collapse OS design goals stay the same.
+2. There is no CVM any more, only a Forth compatibility layer that allows code
+ written for Collapse OS to run within Dusk just fine.
+3. Assemblers and disassemblers for 8-bit CPUs, 16-bit CPUs and microcontrollers
+ live in Collapse OS, not in Dusk.
+4. Wrappers around those assemblers exist in Dusk so that someone wanting, for
+ example, to assemble Z80 code in Dusk can easily do so.
+5. All emulators live in Dusk, including 8-bit and 16-bit ones. Emulation is too
+ big a subject for Collapse OS. If post-collapse users really want emulators
+ in Collapse OS, they'll port them.
+
## Complete DuskCC
In a general way, here's the list of things missing from Dusk C for it to be
@@ -30,13 +48,10 @@ consider complete:
So, there's a fair chunk of work left, but there's also a lot that's already
done.
-## Text editor, hex editor
-
-A naive first idea would be to port vi to Dusk, but I think we can do much
-better than this. The Grid is a much richer environment than a curses one and
-I think we can build a much more powerful vi-lookalike.
+## Hex editor
-Same thing for a hex editor.
+There's already a text editor, but what we generally call a "hex editor" would
+be useful.
## Begin porting UNIX apps
@@ -60,9 +75,7 @@ something brutally simple can work too. TBD.
## New architectures
-What about the Raspberry pi? An [ARM port is in progress][arm-port].
-
-Otherwise, I have an old Powerbook 520 lying around and I'd love to have Dusk
+I have an old Powerbook 520 lying around and I'd love to have Dusk
running on this, so m68k is right there on the roadmap.
## Assemblers, disassemblers, emulators
@@ -80,5 +93,4 @@ isn't to run Linux on it, but to use it as a development tool.
[diffutils]: https://www.gnu.org/software/diffutils/
[diffalt]: https://lists.sr.ht/~vdupras/duskos-discuss/%3C067cd8b3-8678-49c0-bf02-d99cb3275b7a%40app.fastmail.com%3E#%3C87pmchj4hh.fsf@forest.lan%3E
-[arm-port]: https://lists.sr.ht/~vdupras/duskos-discuss/%3Cd5376d1b-1607-4f2e-bb7d-1da55f358de9%40app.fastmail.com%3E
[libcaca]: http://caca.zoy.org/wiki/libcaca