Clone this repo:
  1. ce8beec [arch] add arch-specific function for setting userspace TLS register. by Nick Bray · 11 days ago master
  2. 305413f [arch][arm] save and restore user TLS registers on context switch. by Nick Bray · 12 days ago
  3. c1f5e82 [arch] align user stack pointer inside arch_enter_uspace by Nick Bray · 2 weeks ago
  4. 34c3965 [include] warn if return result from usercopy is unused. by Nick Bray · 4 weeks ago
  5. d877e21 Use unified syntax for problematic asm files. by Nick Bray · 5 weeks ago


The LK embedded kernel. An SMP-aware kernel designed for small systems.

See for the latest version.

See for documentation.


Build Status

To build and test for ARM on linux

  1. install or build qemu. v2.4 and above is recommended.
  2. install gcc for embedded arm (see note 1)
  3. run scripts/do-qemuarm (from the lk directory)
  4. you should see ‘welcome to lk/MP’

This will get you a interactive prompt into LK which is running in qemu arm machine ‘virt’ emulation. type ‘help’ for commands.

note 1: for ubuntu: sudo apt-get install gcc-arm-none-eabi or fetch a prebuilt toolchain from