aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2023-05-06 21:45:11 +0300
committerGitHub <noreply@github.com>2023-05-06 21:45:11 +0300
commit2796ce269d14c7540d0a02a351d0899d2956607a (patch)
tree70a445c77fe281074e80e025354fceeb54de7132 /README.md
parent7c29a1004612bf059cc7c6c36ce0eec18c101cf0 (diff)
downloadkmi-2796ce269d14c7540d0a02a351d0899d2956607a.tar.gz
kmi-2796ce269d14c7540d0a02a351d0899d2956607a.zip
Update README.md
Diffstat (limited to 'README.md')
-rw-r--r--README.md25
1 files changed, 25 insertions, 0 deletions
diff --git a/README.md b/README.md
index 4aaefee..4696324 100644
--- a/README.md
+++ b/README.md
@@ -45,3 +45,28 @@ out of this repo.
+ `clean/clean_docs/clean_run/clean_all`: Clean compile artefacts, clean documentation artefacts,
clean run artefacts and clean all artefacts, respectively. Note that `clean_run` and `clean_all` may
need root privileges.
+
+# Top-level view
+
+This should eventually be moved into documentation with more details, but in short, `kmi` is a hybrid
+kernel with thread migration as the main method of inter-process communication. The kernel itself
+handles interrupts, memory management and thread migration, but everything else is inteded to be
+up to the operating system built on top of the kernel.
+
+I chose thread migration as the main IPC method because it seemed interesting, somewhat out of the
+ordinary and has some parallel features that I think might come in handy as computers slowly but surely
+become more parallel.
+
+I chose to implement memory management in the kernel mainly for ease of development. While I am
+generally in favor of microkernels and separating responsibilities, I find that memory is central
+enough to computers that trying to write a kernel without memory management would be too difficult
+for me.
+
+# Future plans
+
+Interrupt and exception handling is still largely TODO.
+
+To keep things interesting I'm working on a heavily simplified Unix-like operating system,
+as of yet unreleased, that runs on the `kmi` kernel, with my main goals to provide a shell environment
+and disk access. I'm hoping that having a somewhat usable 'full' system will help me run into bugs more
+effectively and keep me more motivated to work on the project.