runtime.js
Posted: Sat Jun 07, 2014 4:49 pm
Hi! I've just released the first version (0.0.1-alpha) of my kernel.
runtime.js is a kernel built on V8 JavaScript engine. It uses event-driven and non-blocking I/O model inspired by Node.js.
I ported V8 engine and wrote simple keyboard and VGA display drivers in JavaScript.
System boots into JavaScript REPL application
(you can use F1-F4 to switch consoles).
Some technical details:
- supported x86_64 only
- software isolated applications (processes)
- no heavy context switches, single address space
- does not use cpu protection rings
- non-blocking asynchronous IPC
- drivers and system services are implemented in JavaScript
- written in C++11
It's available on GitHub https://github.com/runtimejs/runtime
You can download prebuilt binaries to try it in QEMU from releases page
https://github.com/runtimejs/runtime/releases
It's probably very unstable, but runs fine on my desktop.
Currently it's pretty much useless, but I'm planning to implement simple network stack and
some ethernet driver. I'd like to host a JavaScript web server on it someday.
If you want to contribute, your help is very welcome. Unfortunately, I haven't had time
to write documentation so far. Tests are lacking too.
Thank you. If anyone interested, I'd like some feedback on this please.
runtime.js is a kernel built on V8 JavaScript engine. It uses event-driven and non-blocking I/O model inspired by Node.js.
I ported V8 engine and wrote simple keyboard and VGA display drivers in JavaScript.
System boots into JavaScript REPL application
(you can use F1-F4 to switch consoles).
Some technical details:
- supported x86_64 only
- software isolated applications (processes)
- no heavy context switches, single address space
- does not use cpu protection rings
- non-blocking asynchronous IPC
- drivers and system services are implemented in JavaScript
- written in C++11
It's available on GitHub https://github.com/runtimejs/runtime
You can download prebuilt binaries to try it in QEMU from releases page
https://github.com/runtimejs/runtime/releases
It's probably very unstable, but runs fine on my desktop.
Currently it's pretty much useless, but I'm planning to implement simple network stack and
some ethernet driver. I'd like to host a JavaScript web server on it someday.
If you want to contribute, your help is very welcome. Unfortunately, I haven't had time
to write documentation so far. Tests are lacking too.
Thank you. If anyone interested, I'd like some feedback on this please.