单片机为什么不能跑Linux
单片机-Cortex M的定位
- 单片机,常被称为微控制器(MCU)
- 比较常见的STM32单片机,它的CPU采用的ARM公司的Cortex-M系列的内核设计。
其实常说的单片机开发,即MCU开发,或者说就是Cortex-M开发。
Cortex M的定位
ARM处理器的体系结构定义了指令集(ISA)和基于这一体系结构下处理器的模型。ARM的指令集从ARMv1发展到今天的ARMv9。
ARMv7开始,其指令集架构变成了3种款式
- Cortex-A:高性能的处理器级平台,性能比肩计算机。
- Cortex-R:定位应用于高端嵌入式系统,高可靠及高时效性。
- Cortex-M:用于深度嵌入、定制的嵌入式系统。Cortex-M的处理器没有内存管理单元MMU。
内存管理单元MMU
负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。在多用户,多进程的操作系统中,MMU使得各个用户进程都有独立的地址空间。

操作系统
- 一般将操作系统分为实时操作系统和非实时操作系统
- 实时操作系统大多为单进程、多线程(多任务),所有线程共享一套物理地址空间,不需要MMU,例如VxWorks、FreeRTOS。
- Linux系统属于非实时 操作系统,多进程是主要的特点。
总结
Linux系统依赖于MMU,M系列没有MMU,可以到A系列上开发Linux。