diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-05-06 21:45:11 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-06 21:45:11 +0300 |
| commit | 2796ce269d14c7540d0a02a351d0899d2956607a (patch) | |
| tree | 70a445c77fe281074e80e025354fceeb54de7132 /README.md | |
| parent | 7c29a1004612bf059cc7c6c36ce0eec18c101cf0 (diff) | |
| download | kmi-2796ce269d14c7540d0a02a351d0899d2956607a.tar.gz kmi-2796ce269d14c7540d0a02a351d0899d2956607a.zip | |
Update README.md
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -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. |
