Build a custom bootloader for an embedded or mobile device.
Run a small, preemptive multi-threaded kernel on constrained hardware.
Port the kernel to a new processor architecture using its modular build system.
Study how a widely deployed embedded kernel handles multi-core scheduling.
| littlekernel/lk | sandboxie/sandboxie | psycopg/psycopg2 | |
|---|---|---|---|
| Stars | 3,634 | 3,633 | 3,630 |
| Language | C | C | C |
| Setup difficulty | hard | moderate | easy |
| Complexity | 5/5 | 3/5 | 2/5 |
| Audience | developer | ops devops | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires cross-compilation toolchains and target hardware or emulator setup.
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.
A small, portable operating system kernel for embedded systems, used as the bootloader in many Android phones.
Mainly C. The stack also includes C, ARM, RISC-V.
No license information given in the README.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.