Little Kernel:一个专为嵌入式设备打造的轻量级操作系统内核

 


LK 是什么?
Little Kernel(简称 LK) 是个专为嵌入式设备打造的轻量级操作系统内核。它天生支持 SMP(多核),能跑在从 ARM Cortex‑M 到 RISC‑V、甚至 x86、MIPS 这种“大杂烩”平台上。很多 Android 手机的 bootloader(启动加载器)背后都用了它,算是“隐形英雄”。


它解决了哪些痛点?

传统嵌入式系统的痛点

LK 的解决方案

体积臃肿

:大多数 OS 内核几百 MB,嵌入式设备根本装不下

LK 代码库本身几 MB,配合模块化编译,几乎可以裁到几百 KB

跨平台移植难

:每换一种 CPU 架构,都得从头写一遍启动代码

LK 自带 portable 框架,支持 30+ 架构,移植只需改几个宏

多核调度不友好

:老旧内核只能单核或手动锁屏

LK 天生 preemptive multi‑thread,多核调度即开即用

功能扩展受限

:想加点日志、网络、文件系统,得改内核源码

LK 的 modular build system,把功能当插件挑,随装随用

维护成本高

:源码结构混乱,文档稀缺

官方提供 Index 文档,代码注释严谨,社区活跃,维护省心


安装 & 使用小贴士

  1. 1. 克隆源码

    git clone https://github.com/littlekernel/lk.git
    cd lk
  • 2. 选择目标平台(以 ARM Cortex‑A53 为例)

    export ARCH=arm64
    export BOARD=generic
  • 3. 配置模块(打开或关闭功能)

    make menuconfig   # 类似 Linux 内核的配置界面
  • 4. 编译

    make -j$(nproc)
  • 5. 烧写到设备(使用 fastboot、dd 或 JTAG 都行)

    fastboot flash boot out/arch/arm64/boot.img
  • 运行时,只要把编译好的镜像塞进设备的启动分区,开机后就会看到 LK 打印的 “Hello LK”。随后,你可以直接在 LK shell 里跑 ls, cat, reboot,甚至自定义自己的任务线程。


    优缺点一览

    优点

    缺点

    体积小

    :几百 KB 起步,适配极端资源受限的芯片

    生态相对薄弱

    :相比 Linux,驱动、库的数量少

    跨平台

    :一次代码,跑遍 ARM、RISC‑V、x86 等

    文档分散

    :官方文档虽全,但有时章节跳转不够直观

    实时性强

    :抢占式多线程,延迟低于毫秒级

    功能不完整

    :缺少完整的文件系统、网络栈(需自行集成)

    模块化

    :按需编译,省空间省功耗

    学习曲线

    :对新手来说,build 系统和配置选项稍显繁琐

    社区活跃

    :很多开源项目已经基于 LK 进行二次开发

    调试工具少

    :不像 Linux 那样有丰富的调试辅助工具


    总结
    说白了,LK 就是那种“轻装上阵、随时待命”的小兵。它不追求华丽的特性,也不想把整个系统压得像块砖头;只要你想要一个 快速、可裁剪、跨平台 的内核,它就能帮你把启动时间压到极限。
    如果你的项目是 IoT、裸机启动、或者需要在资源极度受限的芯片上跑点小任务,不妨先把 LK 拉下来玩玩,省时省力又省钱。
    当然,如果你需要完整的 Linux 生态,那还是老套路——直接上 Linux。不过,在嵌入式世界里,LK 已经悄悄成为不少大厂的“暗黑助攻”,值得我们多关注。


    项目地址:https://github.com/littlekernel/lk

     

    发表评论