1# Zircon and LK
2
3Zircon was born as a branch of [LK](https://github.com/littlekernel/lk) and even
4now many inner constructs are based on LK while the layers above are new. For
5example, Zircon has the concept of a process but LK does not. However, a Zircon
6process is made of LK-level constructs such as LK's ``thread_t``.
7
8LK is a Kernel designed for small systems typically used in embedded
9applications. It is a good alternative to commercial offerings like
10[FreeRTOS](http://www.freertos.org/) or [ThreadX](http://rtos.com/products/threadx/).
11Such systems often have a very limited amount of ram, a fixed set of peripherals
12and a bounded set of tasks.
13
14On the other hand, Zircon targets modern phones and modern personal computers
15with fast processors, non-trivial amounts of ram with arbitrary peripherals
16doing open ended computation.
17
18More specifically, some the visible differences are:
19
20+ LK can run in 32-bit systems. Zircon is 64-bit only.
21+ Zircon has first class user-mode support. LK does not.
22+ Zircon has a capability-based security model. In LK all code is trusted.
23
24Over time, even the low level constructs have changed to accommodate the new
25requirements and to better fit the rest of the system.
26
27