uClinux和Linuxsleep和yield的异同同

21ic官方微信 -->
【参考】盘点uC/OS和uClinux操作系统的对比
系统的应用与开发是当今计算机行业发展的一个热点。现今软件的应用与开发的领域主要有:国防、通信、电子、办公自动化、机/车顶盒、掌上电脑(或PDA)、手机软件、工业控制、信息家电等领域。
随着技术的发展,由于应用不断增长、系统复杂性不断提高,导致软件的规模和复杂性也在相应的不断提高。目前软件、硬件的应用与开发体现如下趋势:随着计算技术、通信技术的飞速发展,计算机、通信、消费电子的一体化趋势日益明显,技术已成为一个研究热点;特别是互联网的迅速普及,使得网络化、微型化和专业化成为发展的新趋势;产品的开发和应用成为信息产业的主流之一,中间件技术开始和软件的应用与开发相结合起来。
应用是继 PC 后的重要应用,具有广阔的发展应用前景,涉及软件应用的领域也日见增加,应用所产生的市场经济价值也越来越大。同时,随着电子信息技术的发展,应用产品将和人民的日常生活联系变得更加紧密。从技术应用的层面来看,技术的应用发展空间巨大,在工业控制、汽车电子、数字电视技术等领域中将会得到大量的应用。
uC/OS和uClinux操作系统是两种性能优良、源码公开且被广泛应用的免费操作系统,可以作为研究实时操作系统和非实时操作系统的典范。本文通过对uC/OS和uClinux的对比,分析和总结操作系统应用中的若干重要问题,归纳系统开发中操作系统的选型依据。
两种操作系统主要性能比较:
操作系统是系统软硬件资源的控制中心,它以尽量合理的有效方法组织多个用户共享系统的各种资源。其中用户指的是系统程序之上的所有软件。所谓合理有效的方法,指的就是操作系统如何协调并充分利用硬件资源来实现多任务。复杂的操作系统都支持文件系统,方便组织文件并易于对其规范化操作。
操作系统还有一个特点是,针对不同的平台,系统不是直接可用的,一般需要经过针对专门平台的移植操作系统才能正常工作。
1.系统结构
&C/OS-II的组成部分:
&C/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。
1) 核心部分(OSCore.c)
是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这里。
2) 任务处理部分(OSTask.c)
任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为&C/OS-II是以任务为基本单位调度的,所以这部分内容也相当重要。
3) 时钟部分(OSTime.c)
&C/OS-II中的最小时钟单位是timetick(时钟节拍)。任务延时等操作是在这里完成的。
4) 任务同步和通信部分
为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。
5) 与CPU的接口部分
是指&C/OS-II针对所使用的CPU的移植部分。由于&C/OS-II是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体CPU的具体内容和要求作相应的移植。这部分内容由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。
内核的功能结构,与Linux基本相同,不同的只是对内存管理和进程管理进行改写,以满足无MMU处理器的要求。uClinux是Linux 操作系统的一种,是由Linux2.0内核发展来的,是专为没有MMU的微处理器(如ARM7TDMI、Coldfire 等)设计的Linux操作系统。另外,由于大多数内核源代码都被重写,uClinux的内核要比原Linux 2.0内核小的多, 但保留了Linux 操作系统的主要优点:稳定性,优异的网络能力以及优秀的文件系统支持
2.任务调度
1.uC/OS-II 采用的是可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的任务。
uC/os-II的任务调度是完全基于任务优先级的抢占式调度,也就是最高优先级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。为了简化系统设计,uC/OS-II规定所有任务的优先级不同,因为任务的优先级也同时唯一标志了该任务本身。
任务调度将在以下情况下发生:
1) 高优先级的任务因为需要某种临界资源,主动请求挂起,让出处理器,此时将调度就绪状态的低优先级任务获得执行,这种调度也称为任务级的上下文切换。
2) 高优先级的任务因为时钟节拍到来,在时钟中断的处理程序中,内核发现高优先级任务获得了执行条件(如休眠的时钟到时),则在中断态直接切换到高优先级任务执行。这种调度也称为中断级的上下文切换。
这两种调度方式在uC/OS-II的执行过程中非常普遍,一般来说前者发生在系统服务中,后者发生在时钟中断的服务程序中。
调度工作的内容可以分为两部分:最高优先级任务的寻找和任务切换。其最高优先级任务的寻找是通过建立就绪任务表来实现的。u C / O S 中的每一个任务都有独立的堆栈空间,并有一个称为任务控制块TCB(Task Control Block)的数据结构,其中第一个成员变量就是保存的任务堆栈指针。任务调度模块首先用变量OSTCBHighRdy 记录当前最高级就绪任务的TCB 地址,然后调用OS_TASK_SW()函数来进行任务切换。
2.uClinux没有MMU管理存储器,在实现多个进程时(fork调用生成子进程)需要实现数据保护。由于uClinux的多进程管理是通过vfork来实现,因此fork等于vfork。这意味着uClinux系统fork调用完成后,要么子进程代替父进程执行(此时父进程已经sleep)直到子进程调用exit退出;要么调用exec执行一个新的进程,这个时候将产生可执行文件的加载,即使这个进程只是父进程的拷贝,这个过程也不能避免。当子进程执行exit或exec后,子进程使用wakeup把父进程唤醒,使父进程继续往下执行。
uClinux的这种多进程实现机制同它的内存管理紧密相关。uClinux针对没有mmu处理器开发,所以被迫使用一种flat方式的内存管理模式,启动新的应用程序时系统必须为应用程序分配存储空间,并立即把应用程序加载到内存。缺少了MMU的内存重映射机制,uClinux必须在可执行文件加载阶段对可执行文件reloc处理,使得程序执行时能够直接使用物理内存。
3.内存管理
在ANSI C中是使用malloc和free两个函数来动态分配和释放内存。但在实时系统中,多次这样的错作会导致内存碎片,且由于内存管理算法的原因,malloc和free的执行时间也是不确定。
uC/OS-II中把连续的大块内存按分区管理。每个分区中包含整数个大小相同的内存块,但不同分区之间的内存快大小可以不同。用户需要动态分配内存时,系统选择一个适当的分区,按块来分配内存。释放内存时将该块放回它以前所属的分区,这样能有效解决碎片问题,同时执行时间也是固定的。
uClinux不能使用处理器的虚拟内存管理技术(应该说这种不带有MMU的处理器在设备中相当普遍)。uClinux仍采用存储器的分页管理,系统在启动时把实际存储器进行分页。在加载应用程序时程序分页加载。但是由于没有MMU管理,所以实际上uClinux采用实存储器管理策略(real memeory management)。这一点影响了系统工作的很多方面。uClinux系统对于内存的访问是直接的,(它对地址的访问不需要经过MMU,而是直接送到地址线上输出),所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护(这实际上是很多系统的特点),各个进程实际上共享一个运行空间(没有独立的地址转换表)。 一个进程在执行前,系统必须为进程分配足够的连续地址空间,然后全部载入主存储器的连续空间中。与之相对应的是标准Linux系统在分配内存时没有必要保证实际物理存储空间是连续的,而只要保证虚存地址空间连续就可以了。此外磁盘交换空间也是无法使用的,系统执行时如果缺少内存将无法通过磁盘交换来得到改善。
要使?C/OS-Ⅱ正常运行,处理器必须满足以下要求:
1. 处理器的C编译器能产生可重入代码。
2. 用C语言就可以打开和关闭中断。
3. 处理器支持中断,并且能产生定时中断(通常在10至100Hz之间)。
4. 处理器支持能够容纳一定量数据(可能是几千字节)的硬件堆栈。
5. 处理器有将堆栈指针和其它CPU寄存器读出和存储到堆栈或内存中的指令。
像Motorola 6805系列的处理器不能满足上面的第4条和第5条要求,所以?C/OS-Ⅱ不能在这类处理器上运行。
uClinux的移植大致可以分为3个层次:
1.结构层次的移植。如果待移植处理器的结构不同于任何已经支持的处理器结构,则需要修改linux/arch目录下相关处理器结构的文件。虽然uClinux内核代码的大部分是独立于处理器和其体系结构的,但是其最低级的代码也是特定于各个系统的。这主要表现在它们的中断处理上下文、内存映射的维护、任务上下文和初始化过程都是独特的。这些例行程序位于linux/arch/目录下。由于Linux所支持体系结构的种类繁多,所以对一个新型的体系,其低级例程可以模仿与其相似的体系例程编写。
2.平台层次的移植。如果待移植处理器是某种uClinux已支持体系的处理器,则需要在相关体系结构目录下建立相应目录并编写相应代码。如MC68EZ328就是基于无MMU内核的m68k内核的。移植需创建linux/arch/m68knommu/platform/ MC68EZ328目录,并在其下编写跟踪程序(实现用户程序到内核函数的接口等功能)、中断控制调度程序和向量初始化程序等。
3.板级移植。如果所用处理器已被uClinux支持,就只需要板级移植了。板级移植需要在linux/arch/?platform/中建立一个相应板的目录,再在其中建立相应的启动代码crt0_rom.s或crt0_ram.s和链接描述文档rom.ld或ram.ld就可以了。板级移植还包括驱动程序的编写和环境变量设置等内容。
通过对uC/OS和uClinux的比较可以看出,这两种操作系统在应用方面各有优劣。uC/OS占用空间少、执行效率高、实时性能优良,且针对新处理器的移植相对简单。UClinux则占用空间相对较大,实时性能一般,针对新处理器的移植相对复杂。但是,uClinux具有对多种文件系统的支持能力、内嵌了TCP/IP协议,可以借鉴Linux丰富的资源,对一些复杂的应用,uClinux具有相当优势。总之,操作系统的选择是由系统的需求决定的。简单地说就是,小型控制系统可充分利用uC/OS小巧且实时性强的优势;如果开发PDA和互联网连接终端等较和为复杂的系统,则uClinux是不错的选择。
微软在Windows Central网页公布了两款即将推出的Lumia手机的配置,分别为代号“Talkman”的Lumia 950和代号“Cityman”的Lumia 950 XL。两款手机采用最新的......关键字:
斯沃琪集团(Swatch Group)CEO尼克?哈耶克(Nick Hayek)周四称,该集团正在开发一款“瑞士制造”的操作系统(OS),为用户提供主流操作系统以外的规模更小也更加灵活的替代性选择,以便为智能手表等设备提供联网支持。......关键字:
相比于谷歌在谷歌网络开发年会Google I/O 2015上对Andriod系统的乐观,目前Andriod系统在高端智能手机中的市场份额进一步降低,同时Andriod平板电脑也未对消费者产生足够多的吸引力,在视频游戏领域也未争取到更多的市场......关键字:
微软首席执行官萨蒂亚?纳德拉(Satya Nadella)日前接受采访时,承认微软曾犯过两次大错。过于专注PC而错过了向移动业务转型的良机他说:“我们过去曾犯下的一个大错误就是认为PC将永远是一切的中心。” 10年前,90%的联网设备都运行......关键字:
李光焱闲话3C网事 吹水ON LINE近日,微软CEO萨提亚?纳德拉(Satya Nadella)接受媒体采访时表示,虽然外界的传言甚多,但他并不准备退出移动市场。稍早,微软宣布重组手机业务并裁员逾7800人,引发外界担忧。但纳德拉接受采访......关键字:
今年的双十一,在销售额不断创新高的同时,竞争也在变得更加激烈。根据京东和天猫的数据显示,手机产品两大平台累计销售了将近600万台,打破去年的记录。同时,作为全球最大的手机销售市场,中国也在手机市场上扮演......关键字:
为了防止美国监控,中国试图自主开发安全智能手机。这项计划涉及中国国有企业和中国私营科技公司,这是中国政府摆脱美国供应商、打造本土科技行业的最新举措。美国公司在智能手机系统和处理器领域占据统治地位,出于......关键字:
距离微软发布Windows 10正式版还有两周左右的时间,然而新操作系统的零售包装已经泄露。据德国网站WinFuture透露,Windows 10 零售包装盒在外观上非常简单。此前,Windows 8在包装盒中重点强调了微软的新标志。如今,......关键字:
7月16日消息,日前,清华紫光要以230亿美元收购全球第3大DRAM厂美光(Micron),不过该消息终究还只是个传言,能否成功我们不得而知。除了加强硬件实力之外,紫光开始扩张软件版图了,这家公司已经宣布斥资1亿美元投资移动操作系统创业公司......关键字:
每一个新版本的安卓操作系统,谷歌官方都会为它定出一个以甜食命名的名字,这一有趣的举动,也成为每年谷歌围绕安卓升级开发的媒体热点话题。据最新外媒报道,谷歌极有可能采取网络民调的方式,让各国网民自主决定下一代安卓操作系统的甜食名字。......关键字:
我 要 评 论
大家都爱看
CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。
关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边…
大疆周一表示,在美国陆军因为&网络缺陷&而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot…
SC9853I采用的Intel的14nm FinFET制程,架构为8核64位Airmont架构,主频1.8GHz,GPU为Mali-T820 MP2,号称面向799~1299元档次的手机。…
业界早知道
09-3009-3009-3009-3009-3009-30
精读涨姿势
03-2309-0810-1606-0802-1706-30实时操作系统uClinux,最全面的实时操作系统uClinux文章 - 电子工程世界网
实时操作系统uClinux
在电子工程世界为您找到如下关于“实时操作系统uClinux”的新闻
实时操作系统uClinux资料下载
现阶段,中国的自动售货行业蓬勃发展。作为自动服务的核心部件,基于单片机的纸币识别系统已经越来越不能满足市场需求。 本文对基于uClinux操作系统和S3C4510B的纸币识别系统的各个方面进行了研究。研究表明,纸币识别系统要求能满足硬实时性,但uClinux操作系统的实时性不强。由于uClinux功能强大,免费且资源丰富,如能成功改进本纸币识别系统的实时性,纸币识别系统将在成本,性能和功能性...
采用双内核机制基于uClinux的实时操作系统分析与实现采用双内核机制基于uClinux的实时操作系统分析与实现上网时间: 日引言:本文提出了一种基于uClinux的实时操作系统,在对于资源要求苛刻而应用场合多变的嵌入式领域很有优势。该系统采用了双内核机制、借助实时硬件抽象层(RTHAL)概念、利用模块动态加载,对普通uClinux进行了...
...291.3.2.5. 进入BOOTSTRAP 电路模块..301.3.3. TQFP 和LQFP 器件的焊接方法..301.3.4. 硬件调试..31第二章 操作系统...322.1. 基础知识.322.1.1. 操作系统功能..322.1.2. 操作系统发展史..322.1.3. Linux 与嵌入式Linux..332.2. 操作系统内核.342.2.1. 内存管理..342.2.1.1. 内存管理功能...
本文提出了一种基于uClinux的实时操作系统,在对于资源要求苛刻而应用场合多变的嵌入式领域很有优势。该系统采用了双内核机制、借助实时硬件抽象层(RTHAL)概念、利用模块动态加载,对普通uClinux进行了实时性改进,实验表明完全满足实时系统的时限约束。...
。uClinux已成为许多嵌入式系统研究领域的首选操作系统之一。 本课题以嵌入式手持式电能质量分析仪前期实验开发板为研究目标,根据嵌入式体系结构和嵌入式系统设计的原理,构建了基于Samsung公司S3C44B0X ARM7 TDMI处理器的硬件开发平台,并根据该硬件平台的结构特点移植了uClinux操作系统,同时针对uClinux实时性能不高和嵌入式平台硬件资源有限的缺点,结合uClinux多进程和共享...
Router Project,LOAF,uCLinux,muLinux,ThinLinux,FirePlug,Linux和PizzaBox Linux   相对,Linux的图形界面还相对较弱,但近年Linux的图形界面发展也很快,这也就不是问题。   2. 什么是嵌入式Linux   嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统...
Router Project,LOAF,uCLinux,muLinux,ThinLinux,FirePlug,Linux和PizzaBox Linux   相对,Linux的图形界面还相对较弱,但近年Linux的图形界面发展也很快,这也就不是问题。   2. 什么是嵌入式Linux   嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式...
资源性的优势。ECOS 另一个优点是使用了多任务抢占机制,具有最小的中断延迟,支持嵌入式系统所需的所有同步原语,并拥有灵活的调度策略和中断处理机制,因而它具有良好的实时性。比起现今常用的UCLINUX 和UCOS 等操作系统更适用于处理实时性信号如移动通信、WLAN 等通信设备开发。ECOS 正式推广使用是在1997 年,是非常年轻的嵌入式操作系统。因而虽然ECOS 具有以上所描述的优势,但是现在...
虚拟机运行系统提供的服务可完成对应用程序的调试纠错;讨论了uCLinux操作系统和编译调试技术,以及采用ModBus/TCP工业通信协议的通信接口用于开发系统和运行系统之间的通信。 另一方面,本文分析了虚拟机运行系统,它运行于安装了uCLinux的ARM7平台上,包括运行内核模块、系统管理模块和通信接口模块。由于uCLinux没有MMU和本身对实时性没有什么要求,而针对基于软PLC的嵌入式系统的研究...
非抢占性和较大的延迟而远非实时操作系统。在这篇文章中将采用中断线程化和优先级继承协议来得到确定的加锁时间。由于在带有CPU缓冲和TLB(转移目标缓冲区)的ARM处理器会给程序的运行带来许多不确定因素,在典型的实时系统中都是采用关掉MMU和CPU缓冲来保证时间的确定性。在我们的试验中,主要采用不带MMU的ARM处理器作为硬件平台,同时在试验中也将采用SKYEYE模拟器来运行uClinux操作系统...
实时操作系统uClinux相关帖子
应用程序。 单片机主要用C语言和汇编语言开发,复杂的要涉及到实时嵌入式操作系统(ucLinux,VxWorks,uC-OS,WindowsCE等等)的开发、移植。 大部分搞电子技术的人都是从事这一方向,主要用于工业控制、监控等方面。 2)通信方向。一个分支是工程设计、施工、调试(基站、机房等)。另一分支是开发,路由器、交换机、软件等,要懂7号信令,各种通信相关协议,开发平台从ARM、DSP到Linux...
主流嵌入式微处理器的结构与原理(初步定为arm9) (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定) (3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。 从事嵌入式软件开发的好处是: (1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触...
主流嵌入式微处理器的结构与原理(初步定为arm9) (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定) (3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。 从事嵌入式软件开发的好处是: (1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触...
) (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定) (3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。 从事嵌入式软件开发的好处是: (1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。 (2)与企业计算等应用软件不同,嵌入式领域人才的工作...
的应用体验评估,如相关平台的性能比较等。
第4条详细说明:
1.体验Mbed(若即将支持);
2.与探索者F4作比较,性能提升部分对比;
3.扩展应用:基于云平台的智能家居系统综合案例;
4.移植操作系统FreeRTOS案例;
好强悍的开发板:victory: 本帖最后由 star_66666 于
11:16 编辑
1.从事嵌入软硬件开发工作...
Row-os和ucos的区别,raw os 在中低端cpu 上速度和体积都是精心优化过的,特别是在cortex-m 系列的cpu 上具有很大的优势。
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC...
(1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9)
(2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定)
(3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。
从事嵌入式软件开发的好处是:
(1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快...
高的应该单独分一类,然后将其余的归到其它当中。
另外,就我所能想到的,我觉得还应该加上以下三类,
一是应该加上国产一类:例如目前有raw os,RT-Thread,都江堰实时操作系统;
二是怎么能没有FreeRTOS呢?我感觉FreeRTOS不能少啊!这么好的RTOS,必须要有啊!
三是既然提到了操作系统,那文件系统是不是也应该有呢?要不也弄个文件系统吧。 linjiang 发表于...
嵌入式操作系统与通用的操作相比较主要特点在于:
1.小内核,稳定可靠。
2.需要可装卸、可裁剪,以便能灵活应对各种不同的硬件平台。
3.面向应用,强实时性,可用于各种设备控制当中。
国际上常见的嵌入式操作系统大约有40种左,右如:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX...
烨)第一版[PDF]内容简介
作为一种16/32位的高性价比的RSIC处理器,ARM成为应用最广泛的嵌入式微处理器之一。目前最流行的当属ARM7和ARM9两个系列。随着对系统性能要求的提高和开发技术的成熟,ARM9有逐渐占领高中端市场的趋势。
本书以ARM9处理器和Linux操作系统为主线,全面介绍了嵌入式系统的开发过程,详细讲解了系统的软硬件设计、调试,以及嵌入式操作系统移植和嵌入式驱动程序...
实时操作系统uClinux视频
你可能感兴趣的标签
热门资源推荐博客访问: 974172
博文数量: 280
博客积分: 10311
博客等级: 上将
技术积分: 3321
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
&&& 由于Linux和UNIX相似,是多用户、多任务的操作系统,内核必须采取特殊的防范措施,以保证同一系统内来自不同用户的上千个操作正确安全地运行。UNIX的安全模型(即Linux之前的设计)能够保护每个用户操作的自身环境和地址空间。每个用户操作都受到保护,防止被其它用户唤醒,而且,虚拟内存(VM)系统对现代CPU还有另外的要求,比如在个人处理内存中实现动态内存分配和随机内存区域规划。有一些设备,如Blackfin 处理器,没有提供全功能的MMU内存管理单元,因为开发者的应用程序并不使用操作系统,通常也不需要MMU,而且,Blackfin的弱MMU的处理器往往具有更高的效率,其价格也明显低于其它产品。
为使Linux与这些设备相适应,必须进行一些改动: 1. 没有实际的存储器保护(一个错误的环节可以让整个系统停机) 2. 没有交叉(fork)系统调用 3. 只有简单的内存分配 4. 其它一些较小的区别
存储器保护对大多数嵌入式系统来说不是很大的问题。Linux是一个很稳定的平台,尤其是在嵌入式系统中,软件崩溃的情况很少发生。
第二点的问题要大一些。在为UNIX和Linux编写的软件中,开发者常常使用fork系统调用来实现并行处理,fork调用可以准确拷贝原始程序并同时予以执行。为了提高效率,它使用MMU将父程序映射到子程序,并只拷贝写入子程序的内存区。因此uClinux不能提供fork系统调用。它提供vfork,一种特殊版本的fork,在vfork程序中当子程序执行时父程序即会终止。 因此,使用fork系统的软件在使用uClinux支持的vfork或线程时必须重写,因为他们使用相同的内存空间,包括堆栈。
就第三点来说&& ,一般情况下支持uClinux的malloc系统不会有问题,但是,有些时候必须进行小的调整。大部分适用于UNIX和uClinux的软件(可在上找到此类软件)能够直接在uClinux上编译,其它的则可使用微小的移植或调整(tweaking)。 只有很少的应用软件不能在uClinux上运行,其中大部分不能作为嵌入式应用软件。&&&
阅读(2512) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。初学嵌入式linux应该从标准嵌入式linux,还是从uclinux学起?哪个更容易入门?应该怎么学? - 知乎15被浏览1031分享邀请回答0添加评论分享收藏感谢收起0添加评论分享收藏感谢收起查看更多回答}

我要回帖

更多关于 苏格拉底和孔子的异同 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信