aboutsummaryrefslogtreecommitdiff
path: root/static
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-07-17 23:13:07 +0200
committerHimbeer <himbeer@disroot.org>2024-07-17 23:13:07 +0200
commit46fa4429ddc39fecf9e925423a5418738b0504cc (patch)
tree0390e7b730374bd4b8e7464376ef27569bc42aa9 /static
parentd5dfb31d355a02cacdcdeacb2c8a772bb0ff69fb (diff)
Document SRVRE kernel builtin VFS resources
Diffstat (limited to 'static')
-rw-r--r--static/md/srvre/kernel/wiki.md2
-rw-r--r--static/md/srvre/kernel/wiki/vfs.md37
2 files changed, 38 insertions, 1 deletions
diff --git a/static/md/srvre/kernel/wiki.md b/static/md/srvre/kernel/wiki.md
index 3c0da75..92d829f 100644
--- a/static/md/srvre/kernel/wiki.md
+++ b/static/md/srvre/kernel/wiki.md
@@ -15,7 +15,7 @@ List
* [Startup](/md/srvre/kernel/wiki/startup.md)
* [userinit](/md/srvre/kernel/wiki/userinit.md)
* [Syscalls](/md/srvre/kernel/wiki/syscalls.md)
-* [VFS](/md/srvre/kernel/wiki/vfs.md)
+* [VFS and builtin resources](/md/srvre/kernel/wiki/vfs.md)
* [Errors](/md/srvre/kernel/wiki/errors.md)
[Project Page](/md/srvre/kernel.md)
diff --git a/static/md/srvre/kernel/wiki/vfs.md b/static/md/srvre/kernel/wiki/vfs.md
index b46e891..8bcdfe9 100644
--- a/static/md/srvre/kernel/wiki/vfs.md
+++ b/static/md/srvre/kernel/wiki/vfs.md
@@ -65,6 +65,43 @@ contained within.
Example use cases: Filesystem drivers, network protocols
+Builtin resources
+=================
+
+The kernel provides the following builtin resources for providers
+and other programs to build upon:
+
+`/io`
+-----
+
+The `/io` directory provides interfaces for byte-grained, often text-based
+communication with the environment the program is running in.
+
+* `/io/debug`: Write-only access to the debug console, usually provided by the SBI (firmware)
+
+`/userinit`
+-----------
+
+The `/userinit` directory provides read-only access to the
+[userinit](/md/srvre/kernel/wiki/userinit.md) tree.
+Its purpose is to make essential drivers and the data required to run them
+to the init process.
+
+* `/userinit/init`: The executable started as the init process. There is nothing special about it internally but it's noteworthy enough to be listed here explicitly.
+
+`/process`
+----------
+
+The `/process` directory provides information about as well as control
+interfaces to processes and threads, including the caller.
+
+### `/process/self`
+
+The `/process/self` subdirectory provides information about as well as control
+interfaces to the calling process and thread.
+
+* `/process/self/terminate`: A [hook](#hook) that terminates the current thread. The extra data is ignored. This is likely to be made more powerful in the future.
+
Interaction from U-mode
=======================