3 ms·
It's a kernel in the library operating system sense [0]. A kernel doesn't have to run in a privileged context. [0]: https://en.wikipedia.org/wiki/Operating_sys
by nialv7 1y ago
It's a kernel in the library operating system sense [0]. A kernel doesn't have to run in a privileged context.
[0]: https://en.wikipedia.org/wiki/Operating_system#Library https://en.wikipedia.org/wiki/Operating_system#Library
- cryptonector 1y agoIsn't that what user-mode Linux is?
- quietbritishjim 1y agoUser mode Linux does actually run something like a real kernel in user space. OP is just providing a POSIX API with no kernel implementation whatsoever. It just forwards those calls to the Window's API. The library OS concept linked to above is different again – that is an actual kernel running in kernel mode but as part of a unikernel (kernel code and application code linked together into a single process). Still pretty cool but overshadowed by the claim that they've written a whole kernel.
- cryptonector 1y agoI see. Thanks!
- quietbritishjim 1y agoI hadn't heard the term library operating system before, but what is described at that link is nothing like your project. The "kernel" referred to at that link is a full actual kernel, with networking, proceed scheduling, device drivers and hardware access, etc. It means the full implementation of those features. The reason it can be linked into the application's process as a library is because it's taking about a situation where there's only a single application running on the whole machine (presumably a virtual machine). The kernel and application then run together in a single memory space, with the kernel code (maybe the whole thing?) running in kernel mode. You have implemented the user mode API that makes system calls to the (Windows) kernel. That is not a kernel in any sense. It is confusing and wrong to call it a kernel.