用于单片机的uCLinux和Linux有什么区别?
uCLinux是针对没有MMU(Memory Management Unit)的微控制器和微处理器而设计的嵌入式操作系统,
Linux是针对所有具备MMU的处理器而设计的通用操作系统。
我来说一下区别:
没有内存保护
没有自动生长的堆栈
通用架构的内核不同
细节我就不多分享,百度里面很多讲解。
uCLinux不能运行时增加进程栈,不支持分页,RAMDISK uClinux是针对控制领域的嵌入式linux操作系统,它从Linux 2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。适合不具备内存管理单元(MMU)的微处理器/微控制器,没有MMU支持是uClinux与主流Linux的基本差异。对uCLinux来说,其设计针对没有MMU的处理器,不能使用处理器的虚拟内存管理技术。uCLinux仍然采用存储器的分页管理,系统在启动时把实际存储器进行分页。在加载应用程序时程序分页加载。但是,由于没有MMU管理,所以实际上uCLinux采用实存储器管理策略。uCLinux系统对于内存的访问是直接的,所所有程序中访问的地址都是实际的物理地址。
这个是在网上找的,其实写的很清楚,下面我进么解释一下。
uCLinux和Linux的区别:uCLinux是针对没有内存管理单元(MMU)的微控制器和微处理器设计的嵌入式操作系统,而Linux是针对所有具备MMU的处理器设计的通用操作系统。这是两者最主要的区别。
uCLinux的特点:由于没有MMU支持,uCLinux不能运行时增加进程栈,也不支持分页。但是,uCLinux仍然采用存储器的分页管理,系统在启动时把实际存储器进行分页,在加载应用程序时程序分页加载。另外,由于没有MMU管理,uCLinux实际上采用实存储器管理策略,也就是说内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。
大致就是这样的意思,虽然我查阅了蛮多资料,才理解到,写的不好,请大神们多分享一下,学习学习。
|