MMU、虚存与UClinux

2019-07-13 03:16发布

        uClinux是专为无存储器管理单元(MMU)的微控制器打造的嵌入式Linux操作系统。uClinux首先被移植到摩托罗拉的MC68328 DragonBall集成微处理器上。从那以后, uClinux越来越受到业界的青睐, 被移植到更多的无MMU芯片上。目前,uClinux已成功移植到ARM7TDMI微处理器上。 由于uClinux主要是针对无MMU 微处理器开发的,大多数内核的二进制代码和源代码都被重写,但保留了Linux 操作系统的主要优点:稳定性、优异的网络能力以及优秀的文件系统支持。 uClinux的内存管理与传统Linux区别最大的地方在标准Linux是针对有MMU的处理器设计的。在这种处理器上,虚拟地址被送到MMU,把虚拟 地址映射为物理地址。通过赋予每个任务不同的虚拟物理地址转换映射,支持不同任务之间的保护。对于uCLinux来说,其设计是针对没有MMU的处理 器,即uCLinux不能使用处理器的虚拟内存管理技术。uCLinux仍然采用存储器的分页管理,系统在启动时把实际存储器进行分页,在加载应用程序时 程序分页加载。但是由于没有MMU管理,所以uCLinux实际上是采用实存储器管理策略的。这一点影响了系统工作的很多方面。uCLinux系统对于内 存的访问是直接的,所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护,各个进程实际上共享一个运行空间。一个进程在执行前,系统必须 为进程分配足够的连续地址空间,然后全部载入主存储器的连续空间中。