diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2016-03-05 23:59:59 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2016-03-06 01:30:07 -0800 |
commit | a538edba2d461f785093f36e48c046cce3eee920 (patch) | |
tree | 222c45c63d6ec9534ff145b294123521f07189d0 | |
parent | a70ce311134a98add10a2f7d4fe4919c3d64439b (diff) | |
download | mu-a538edba2d461f785093f36e48c046cce3eee920.tar.gz |
2729
-rw-r--r-- | Readme.md | 19 |
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 |