Linux和uClinux编程
August 16, 2004
Linux Journal文章uClinux for Linux Programmers概括了Linux和uClinux编程的一些差别。
主要讨论内容包括:
内存管理
从开发时起,uClinux就被规划为运行在没有MMU的CPU上的--所以很自然,uClinux没有虚存管理;uClinux上的进程也不能在运行时动态增加他们的可用“内存”--没有请求调页;任何进程都能访问任意内存,不能指望这些野蛮的代码相互隔离并被保护--所以,它们都有可能crash其他人乃至OS。
内核
uClinux不支持分页,或者tmpfs。标准的Linux ELF格式被换成flat format。uClinux下的驱动程序通常需要重写。内核的mmap当然也大有不同。
内存分配(内核与应用)
uClinux提供了另一个适用于小系统的内存分配器,当然,缺省的Linux分配器也可以使用。
应用与进程
uClinux可没有fork(),开发者得习惯使用vfork(),移植使用了fork()的应用可能非常困难。当然,好消息是,uClinux支持XIP execute in place--在工具链支持的平台上。XIP对减少内存使用有相当好处,应用可以直接在ROM上运行--而不是要预先搬进内存--说这么麻烦,我想他说的就是flash。
共享库
有很大不同--只是没有再进一步细化说明,还是自己看看吧
740)this.width=740″ border=undefined>
SnapGear LITE2 VPN/Router 运行 uClinux。
Tags: BabyBus