Author: Virgil Dupras <email@example.com>
Date: Wed, 1 Jun 2022 13:51:40 -0400
README: design consideration - build from source on the fly
|M||README.md|| | ||55||+++++++++++++++++++++++++++++++++++++++++++++----------|
1 file changed, 45 insertions(+), 10 deletions(-)
diff --git a/README.md b/README.md
@@ -42,22 +42,37 @@ likelihood.
But we can't have our cake and eat it too, right? Either you have a simple toy
OS or a complex one. Well, maybe not?
-Its authors believe that in the history of computing, Forth has been under-
-explored. Its approach to simplicity is, we think, revolutionary. It has
-significant shortcomings when system specifications become more complex (Forth
-hates complexity and doesn't manage it well), but we believe it possible to
-elegantly marry it with languages that like complexity better.
+Its authors believe that in the history of computing, Forth has been
+under-explored. Its approach to simplicity is, we think, revolutionary. It
+has significant shortcomings when system specifications become more complex
+(Forth hates complexity and doesn't manage it well), but we believe it
+possible to elegantly marry it with languages that like complexity better.
This mix, we believe, could provide a creative user with computing powers rarely
seen with other approaches. We've got to try it.
+## Design considerations
-Nothing so far, we're just dreaming on. Development happens on [sourcehut].
+### Build from source on the fly
-Unlike Collapse OS which is a personal effort and doesn't lend itself well to
-collaboration, Dusk OS' wider scope makes it fitting for a collaborative effort.
-Let's discuss this on its [public mailing list].
+With Dusk OS, I'd like to try having a system that starts from a smaller kernel
+than Collapse OS and that kernel would compile its way up to a usable system
+For Collapse OS, this option is impractical because compiling takes a long
+time on 8-bit machines. It's much better to cross-compile the kernel up to
+something that is usable as is. The drawback of this is that
+cross-compilation tooling has to be more complex.
+Modern machines compile forth code much, much, much faster. Because Dusk OS
+will have a much "wider" system at boot and that cross-compiling this wider
+system can get complicated quickly, it seems simpler to me to initialize from
+source at boot time. So I'll try that.
+This principle could extend to words written in C throughout the system. We
+could have a system where all compilation takes place on-the-fly through some
+lazy-loading mechanism only when the word is used the first time. That might be
@@ -75,6 +90,26 @@ The roadmap so far is, of course, very fuzzy, but here's what I have in mind:
8. Steal drivers from Linux and/or BSD kernels to widen hardware support.
9. Port exiting POSIX applications so that Dusk OS fulfills its stated goals.
+Not much so far. Step 1 of the roadmap above is well underway. Development
+happens on [sourcehut].
+Unlike Collapse OS which is a personal effort and doesn't lend itself well to
+collaboration, Dusk OS' wider scope makes it fitting for a collaborative effort.
+Let's discuss this on its [public mailing list].
+## Build and run
+To build Dusk OS, you need:
+* GNU Make
+* A C99 compiler
+* Python 3
+Run `make` and then run `./dusk`. You'll get a prompt. Look at `forth.txt`
+to have an idea of the vocabyulary available. Type `bye` to quit.