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。

        参考LinuxDevices

Tags: