commit 3dff6de1426f5f2877970de0d5f78cecdba68db0
parent 9a24c269b6be9185674169562c720d20cfa54f50
Author: Virgil Dupras <hsoft@hardcoded.net>
Date: Fri, 17 Jun 2022 11:54:44 -0400
Add doc/design
Diffstat:
2 files changed, 46 insertions(+), 1 deletion(-)
diff --git a/fs/doc/cc.txt b/fs/doc/cc.txt
@@ -23,4 +23,14 @@ idea is that the porting effort should be mostly a mechanical effort and
it should be as little prone as possible to subtle logic changes caused by the
porting.
-For this reason, the core of the language is the same.
+For this reason, the core of the language is very close to ANSI.
+
+## Differences in the core language
+
+* no 64bit types
+ * no long, redundant with int
+ * no double, float is always 32b
+ * char is always 8b, short is always 16b, int is always 32b
+* tightened parsing requirements for simplification purposes
+ * "unsigned" always goes first
+ * no "signed" (always default), no "auto"
diff --git a/fs/doc/design.txt b/fs/doc/design.txt
@@ -0,0 +1,35 @@
+# Dusk OS design principles
+
+## Computing within limits
+
+Dusk OS' authors believe that an important factor in software complexification
+is the inability to accept limits. Dynamic allocation is discouraged (in fact,
+probably not possible). Semi-temporary data is managed through the scratchpad
+(sys/scratch), non-temporary data is placed in buffers of fixed size.
+
+This means that applications will need to be accompanied with resource usage
+analysis. It's a bit less convenient than a simple malloc(), but in a macro
+perspective, this helps simplicity.
+
+4GB ought to be enough for anybody, which is why the OS doesn't support any 64b
+type. Some specialized applications might need 64b numbers, but they'll have to
+make their own abstractions.
+
+## Text interface
+
+While Dusk OS will be able to display graphics (for example, to render a PDF on
+screen), it won't have a GUI. The way to interact with the system is through
+text.
+
+## Power user paradise
+
+The goal is for the Dusk OS console to be supremely powerful. All bells and
+whistles needed to allow the user to maximally use their system in a minimum
+amount of time will be there.
+
+## Assume grid display
+
+UNIX consoles, being based around a serial interface, are more complex than they
+should be (curses etc.). Dusk OS is able to be accessed serially, but with
+greatly reduced powers. The "full featured" console as well as most interesting
+applications will assume a grid display.