diff --git a/readme.md b/readme.md index 6252101..f8b51ce 100644 --- a/readme.md +++ b/readme.md @@ -10,7 +10,7 @@ NT-Lite is a 64-bit operating system kernel written from scratch. It has a UEFI It boots into a shell, launches user processes, survives application crashes, and can run things it probably should not be able to run yet. -The codebase is still small enough to understand, but large enough to hurt your feelings. +The codebase is still small enough to understand, but large enough to hurt your feelings. The kernel is just 7k lines of code and the entire project is about 15k lines. ## features @@ -52,7 +52,7 @@ The codebase is still small enough to understand, but large enough to hurt your Single address space for the whole system. No separate kernel/user page tables. Isolation comes from compilers, page permissions and privilege levels, not from switching CR3. -Kernel lives in the higher half. User processes only see what they are explicitly given. Kernel pages are supervisor-only so user-mode code cannot touch them. User pages are isolated from each other through the allocator and process creation path, not by hardware address-space separation. One rogue pointer can't crash the kernel but it might corrupt other processes. +Kernel lives in the higher half. User processes only see what they are explicitly given. Kernel pages are supervisor-only so user-mode code cannot touch them. User pages are isolated from each other through the allocator and process creation path, not by hardware address-space separation. One rogue pointer can't crash the kernel but it might corrupt other processes. But what are the chances? Is this how a serious modern OS should isolate processes? No. @@ -112,7 +112,7 @@ Everything goes through the VFS. Disk access, filesystem parsing, path resolutio Disk drivers expose devices. The I/O manager calls drivers through `IoCallDriver()`. Completion goes through `IoCompleteRequest()`. -Async file I/O exists. It is currently worker-backed at the filesystem layer, which means the user-facing async contract is real. We are somewhere between right and dangerous. +Async file I/O exists. We are somewhere between right and dangerous. Async requests can complete by: