about summary refs log tree commit diff stats
path: root/Readme.md
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-03-05 23:59:59 -0800
committerKartik K. Agaram <vc@akkartik.com>2016-03-06 01:30:07 -0800
commita538edba2d461f785093f36e48c046cce3eee920 (patch)
tree222c45c63d6ec9534ff145b294123521f07189d0 /Readme.md
parenta70ce311134a98add10a2f7d4fe4919c3d64439b (diff)
downloadmu-a538edba2d461f785093f36e48c046cce3eee920.tar.gz
2729
Diffstat (limited to 'Readme.md')
-rw-r--r--Readme.md19
1 files changed, 12 insertions, 7 deletions
diff --git a/Readme.md b/Readme.md
index af869685..260bbdea 100644
--- a/Readme.md
+++ b/Readme.md
@@ -32,13 +32,18 @@ recording manual tests right after the first time you perform them:
 
 I hope to attain this world by creating a comprehensive library of fakes and
 hooks for the entire software stack, at all layers of abstraction (programming
-language, OS, standard libraries, application libraries).
-
-To reduce my workload and get to a proof-of-concept quickly, this is a very
-*alien* software stack. I've stolen ideas from lots of previous systems, but
-it's not like anything you're used to. The 'OS' will lack virtual memory, user
-accounts, any unprivileged mode, address space isolation, and many other
-features.
+language, OS, standard libraries, application libraries). As a concrete
+example, the `open()` syscall in modern unix implicitly requires the file
+system. The implicit dependency makes it hard to test code that calls
+`open()`. The Mu Way is to make the file system an explicit argument, thereby
+allowing us to use a fake file system in tests. We do this for every syscall,
+every possible way the system can interact with the outside world.
+
+As you might surmise, this is a lot of work. To reduce my workload and get to
+a proof-of-concept quickly, this is a very *alien* software stack. I've stolen
+ideas from lots of previous systems, but it's not like anything you're used
+to. The 'OS' will lack virtual memory, user accounts, any unprivileged mode,
+address space isolation, and many other features.
 
 To avoid building a compiler I'm going to do all my programming in (extremely
 type-safe) assembly (for an idealized virtual machine that nonetheless will