max wrote:
Really nice work. The model is very similar to the first version of my kernel, with a virtual machine running Java, also all in a single address space. How are you planning to do security-related things?
embryo will be interested in this, too
Thanks.
I'm planning to remove global system functions and pass resources program needs in arguments (I use JS object instead of string). This way it's possible to provide completely isolated environment for every app.
I have JavaScript objects which represent resources like IRQ, IRQRange, MemoryBlock, IORange, IO port, ProcessManager.
For example IRQRange object provides access to IRQ1-IRQ16, MemoryBlock to physical memory at 0xb8000, etc.
What's interesting you can pass regular JavaScript function to other program through arguments too. And it will do IPC when called and return Promise object.
MessiahAndrw wrote:
This is awesome! Did you have any trouble porting V8 to bare metal? What challenges did you encounter?
Thanks. I think the biggest problem so far was to correctly set up local storage V8 uses extensively. And this is required to support multitasking with multiple contexts.
embryo wrote:
Well, we have a bit of OS that is used as a starter for a third party application.
Thank you for your interest.
V8 is actually a library you can use to execute JavaScript code. It doesn't provide platform services programs need. For example there is no setTimeout function provided by engine. Kernel itself provides services V8 needs to run, and environment for user apps.
As for implementation of different kernel subsystems, I'm planning to write docs. But I can't say for sure when it will be available.
As for web server, no solution here yet.
- Serge