1# The Little Kernel Embedded Operating System
2
3The LK kernel is an SMP-aware kernel designed for small systems ported to a variety of platforms and cpu architectures.
4
5See https://github.com/littlekernel/lk for the latest version.
6
7### High Level Features
8
9- Fully-reentrant multi-threaded preemptive kernel
10- Portable to many 32 and 64 bit architectures
11- Support for wide variety of embedded and larger platforms
12- Powerful modular build system
13- Large number of utility components selectable at build time
14
15### Supported architectures
16
17-   ARM32
18-   -  Cortex-M class cores (armv6m - armv8m)
19-   -  ARMv7+ Cortex-A class cores
20-   ARM64
21-   RISC-V 32 and 64bit bit in machine and supervisor mode
22-   x86-32 and x86-64 386 up through modern cores
23-   microblaze
24-   MIPS
25-   OpenRISC 1000
26
27### [TODO](docs/todo.md)
28
29### To build and test for ARM on linux
30
311. install or build qemu. v2.4 and above is recommended.
322. install gcc for embedded arm (see note 1)
333. run scripts/do-qemuarm  (from the lk directory)
344. you should see 'welcome to lk/MP'
35
36This will get you a interactive prompt into LK which is running in qemu
37arm machine 'virt' emulation. type 'help' for commands.
38
39Note: for ubuntu x86-64:
40sudo apt-get install gcc-arm-none-eabi
41or fetch a prebuilt toolchain from
42https://newos.org/toolchains/x86_64-elf-10.2.0-Linux-x86_64.tar.xz
43