Linux和uClinux的区别
来源:互联网 发布:知乎 英语语言文学 编辑:程序博客网 时间:2024/05/29 16:12
Linux和uClinux的区别
由于Linux和UNIX相似,是多用户、多任务的操作系统,内核必须采取特殊的防范措施,以保证同一系统内来自不同用户的上千个操作正确安全地运行。UNIX的安全模型(即Linux之前的设计)能够保护每个用户操作的自身环境和地址空间。每个用户操作都受到保护,防止被其它用户唤醒,而且,虚拟内存(VM)系统对现代CPU还有另外的要求,比如在个人处理内存中实现动态内存分配和随机内存区域规划。有一些设备,如Blackfin 处理器,没有提供全功能的MMU内存管理单元,因为开发者的应用程序并不使用操作系统,通常也不需要MMU,而且,Blackfin的弱MMU的处理器往往具有更高的效率,其价格也明显低于其它产品。
为使Linux与这些设备相适应,必须进行一些改动:
1. 没有实际的存储器保护(一个错误的环节可以让整个系统停机)
2. 没有交叉(fork)系统调用
3. 只有简单的内存分配
4. 其它一些较小的区别
1. 没有实际的存储器保护(一个错误的环节可以让整个系统停机)
2. 没有交叉(fork)系统调用
3. 只有简单的内存分配
4. 其它一些较小的区别
存储器保护对大多数嵌入式系统来说不是很大的问题。Linux是一个很稳定的平台,尤其是在嵌入式系统中,软件崩溃的情况很少发生。
第二点的问题要大一些。在为UNIX和Linux编写的软件中,开发者常常使用fork系统调用来实现并行处理,fork调用可以准确拷贝原始程序并同时予以执行。为了提高效率,它使用MMU将父程序映射到子程序,并只拷贝写入子程序的内存区。因此uClinux不能提供fork系统调用。它提供vfork,一种特殊版本的fork,在vfork程序中当子程序执行时父程序即会终止。 因此,使用fork系统的软件在使用uClinux支持的vfork或线程时必须重写,因为他们使用相同的内存空间,包括堆栈。
就第三点来说 ,一般情况下支持uClinux的malloc系统不会有问题,但是,有些时候必须进行小的调整。大部分适用于UNIX和uClinux的软件(可在http://freshmeat.net上找到此类软件)能够直接在uClinux上编译,其它的则可使用微小的移植或调整(tweaking)。 只有很少的应用软件不能在uClinux上运行,其中大部分不能作为嵌入式应用软件。
转自: http://blog.chinaunix.net/space.php?uid=7396260&do=blog&cuid=1668662
- Linux和uClinux的区别
- 杂记之uclinux 和linux的区别
- uclinux 与 linux的区别
- uclinux 与 linux的区别
- uclinux 与 linux的区别
- uClinux和Linux的异同
- uClinux和Linux的异同
- uclinux 与 linux的区别
- uCLinux LINUX区别
- uCLinux LINUX区别
- uCLinux LINUX区别
- uclinux 与 linux 区别
- uClinux和Linux的异同 [出处不详]
- uClinux和Linux的异同分析
- ucos 和uclinux的区别及各自的特点
- Linux和uClinux比较分析
- Linux和uClinux比较分析
- Linux和uClinux比较分析
- Qt窗口位置及注意
- ACPI的设计与实现 - ACPI实现细节(1)
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架
- Unix Network Programming vol1 笔记 TCP/IP的缓冲,全双工,半关闭 shutdown 函数
- x264运动估计的1/2像素和1/4像素搜索
- Linux和uClinux的区别
- linux性能监控工具collectl安装及简要使用说明
- sql loader ---ORACLE SQLLDR
- 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
- SVN搭建
- Tutorial: Networking and Bonjour on iPhone
- ACPI设计与实现-技术参考(1)
- 在main函数之前调用函数,以及对设计的作用(转)
- 面试了美国一个公司,估计没戏,特此纪念