git404hub

what is lk fr?

littlekernel/lk — explained in plain English

Analysis updated 2026-05-18

3,634CAudience · developerComplexity · 5/5Setup · hard

tl;dr

A small, portable operating system kernel for embedded systems, used as the bootloader in many Android phones.

vibe map

mindmap
  root((LK Kernel))
    What it does
      Embedded OS kernel
      Android bootloader
      Multi-threaded scheduling
    Tech stack
      C
      ARM
      RISC-V
      x86
    Use cases
      Build a phone bootloader
      Run software on microcontrollers
      Port an OS to new hardware
    Audience
      Embedded systems engineers
      OS developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

what do people make with this?

VIBE 1

Build a custom bootloader for an embedded or mobile device.

VIBE 2

Run a small, preemptive multi-threaded kernel on constrained hardware.

VIBE 3

Port the kernel to a new processor architecture using its modular build system.

VIBE 4

Study how a widely deployed embedded kernel handles multi-core scheduling.

what's the stack?

CARMRISC-Vx86

how it stacks up fr

littlekernel/lksandboxie/sandboxiepsycopg/psycopg2
Stars3,6343,6333,630
LanguageCCC
Setup difficultyhardmoderateeasy
Complexity5/53/52/5
Audiencedeveloperops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

how do i run it?

Difficulty · hard time til it works · 1day+

Requires cross-compilation toolchains and target hardware or emulator setup.

No license information given in the README.

in plain english

LK, short for Little Kernel, is a small operating system kernel designed for embedded systems. An operating system kernel is the core layer of software that manages hardware resources and lets programs run on a device. LK focuses on small, resource-constrained systems rather than full desktop or server computers. The kernel is notably used as the bootloader in many Android phones across different manufacturers. A bootloader is the piece of software that runs when a device first powers on and is responsible for loading the main operating system. LK's use in this role across a wide range of Android hardware shows that it is both stable and portable. Portability is a major design goal. LK runs on a broad range of processor architectures, including several generations of ARM processors (both the smaller Cortex-M class used in microcontrollers and the more powerful Cortex-A class used in phones), RISC-V in both 32-bit and 64-bit forms, standard x86 processors, and older architectures like Motorola 68000, MIPS, and VAX. This wide support means the same kernel codebase can run across very different hardware with relatively little change. On the software side, LK supports multiple threads running at the same time, can handle multiple processor cores simultaneously (SMP), and uses a preemptive scheduling approach, meaning it can pause one task to give time to another without waiting for the first task to voluntarily stop. The build system is described as modular, so you can select which optional components to include when building for a specific platform. Documentation is available in the docs folder of the repository, with a command-line tab-completion script provided for bash and zsh shells to make development easier.

prompts (copy fr)

prompt 1
Explain what a bootloader does and how it differs from a full operating system kernel.
prompt 2
Walk me through the supported CPU architectures and what SMP support means for LK.
prompt 3
Help me understand how a modular embedded build system selects optional components at build time.
prompt 4
Summarize the difference between preemptive and cooperative thread scheduling in an OS kernel.

Frequently asked questions

what is lk fr?

A small, portable operating system kernel for embedded systems, used as the bootloader in many Android phones.

What language is lk written in?

Mainly C. The stack also includes C, ARM, RISC-V.

What license does lk use?

No license information given in the README.

How hard is lk to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is lk for?

Mainly developer.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.