Skip to content

Instantly share code, notes, and snippets.

@groundwater
Last active August 29, 2015 14:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save groundwater/42a39036923aab7a7703 to your computer and use it in GitHub Desktop.
Save groundwater/42a39036923aab7a7703 to your computer and use it in GitHub Desktop.

The Nano Kernel

A nano-kernel (nK) a cross between a second boot-loader, and a micro-kernel. The nK does not provide memory isolation or process segregation. It's only role is to bootstrap high-level VMs in kernel space.

A nK serves a special type of system where all programs are JIT compiled by the kernel before execution.

Features

  1. no context switching – everything runs in CPU ring 0
  2. no paging – isolation must be provided by the VM, not the hardware
  3. direct hardware access – programs directly access the hardware

Design

+------------+-------------+--------------+
|   js apps  |  lua apps   |  dart apps   |  user space applciations
+------------+-------------+--------------+
|     v8     |   lua vm    |   dartvm     |  various virtual machines
+------------+-------------+--------------+
| v8-binding | lua-binding | dart-binding |  bindings/shims to kernel
+------------+-------------+--------------+
|            nK kernel api                |  minimal necessary api to hardware
+-----------------------------------------+
|          platform dependent nK          |  implementation of api (asm, etc)
+-----------------------------------------+
|                hardware                 |  x86
+-----------------------------------------+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment