你有没有想过,一块平时只用来做智能开关、传感器的小芯片,能跑起完整的Linux系统?
ESP32-S3,这颗在创客圈几乎人手一块的芯片,最近被证实可以运行Linux内核6.11。不是模拟,不是阉割版,是真的把系统跑起来了。
![]()
它凭什么能跑Linux
先看硬件底子。ESP32-S3里塞了两个Xtensa LX7核心,主频跑到240 MHz,还带着最高16 MB的PSRAM。这个配置放在单片机里算相当能打,也难怪有人会动念头:这玩意儿能不能跑Linux?
答案是能,但过程并不轻松。
问题出在一个叫MMU的东西上——内存管理单元。Linux这类操作系统早就习惯了它的存在,虚拟内存、进程隔离都靠它撑着。而ESP32-S3偏偏没有这个部件。
没有MMU,就得换一条路走。项目采用了NOMMU的Linux配置,还自己实现了一套fork()。简单说,就是绕开硬件限制,用软件方式把系统撑起来。
从"勉强能动"到"真的能用"
这件事不是一蹴而就的。早前的0.7版本只能算勉强跑通,谈不上稳定。到了0.8版本,才算第一次真正可靠地启动,并且启动之后还能剩下可用的内存。
差距有多大?看数字就知道:
- 0.7版本:能跑,但状态勉强
- 0.8版本:启动后可用内存达到3.7 MB
- 整体资源占用和性能,都有大幅改善
3.7 MB听起来不多,但在一颗没有MMU、内存本就紧张的单片机上,这已经是能干活的空间了。
还有一个细节值得注意:Linux只能用其中一个核心。另一个核心被FreeRTOS和ESP-IDF占着,专门负责WiFi和蓝牙。也就是说,这颗芯片是"一半跑系统,一半管通信"。
跑在什么硬件上
这次演示用的是一块N16R8配置的ESP32-S3。拆开看就是:16 MB Flash,同时兼作可写存储;外加8 MB的八线PSRAM。
Flash和PSRAM各司其职,一个存东西,一个当内存用。这套组合是它能跑起来Linux的物质基础。
至于能拿来干什么,项目作者说得很清楚:这是一个研究项目。不过顺着这个思路往下想,类似BusyBox这样的轻量工具跑起来,做成一个嵌入式Linux设备,比如网络路由器,并不是完全没影的事。
这件事有意思在哪
它其实回答了一个很多人心里冒过、但没真去试的问题:便宜芯片的边界到底在哪。
当一颗几块钱的芯片能启动完整内核,很多原本需要更贵方案才能做的事,就有了重新想象的空间。当然,现在它还只是个研究项目,离日常可用还有距离。
但至少,那个"能不能"的问题,已经有了答案。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.