嵌入式uClinux的内核结构和开发环境

上传人:桔**** 文档编号:445819314 上传时间:2023-11-18 格式:DOCX 页数:3 大小:33.28KB
返回 下载 相关 举报
嵌入式uClinux的内核结构和开发环境_第1页
第1页 / 共3页
嵌入式uClinux的内核结构和开发环境_第2页
第2页 / 共3页
嵌入式uClinux的内核结构和开发环境_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《嵌入式uClinux的内核结构和开发环境》由会员分享,可在线阅读,更多相关《嵌入式uClinux的内核结构和开发环境(3页珍藏版)》请在金锄头文库上搜索。

1、嵌入式uClinux的内核结构和开发环境时间:2009-05-12 23:27 来源:Linux Website 作者:admin 点击:900 次1引言 嵌入式操作系统是嵌入式系统的灵魂,而且在同一个硬件平台上可以嵌 入不同的嵌入式操作系统。比如ARM7TDMI内核,可以嵌入Nucleus VxWorks、 uClinux等操作系统。在此主要对uClinux的1引言嵌入式操作系统是嵌入式系统的灵魂,而且在同一个硬件平台上可以嵌入不 同的嵌入式操作系统。比如ARM7TDMI内核,可以嵌入Nucleus、VxWorks、uClinux 等操作系统。在此主要对uClinux的进行介绍,嵌入式uCl

2、inux操作系统主要有 三个基本部分组成:引导程序、uClinux内核(由内存管理、进程管理和中断处 理等构成)和文件系统uClinux可以通过定制使内核小型化,还可以加上GUI(图 形用户界面)和定制应用程序,并将其放在ROM、RAM、FLASH或Disk On Chip 中启动。由于嵌入式uClinux操作系统的内核定制高度灵活性,开发者可以很容 易地对其进行按需配置,来满足实际应用需要。又由于uClinux是源代码公开, 因此开发人员只有了解内核原理就可以自己开发部分软件,例如增加各类驱动程 序。下面将详细分析嵌入式操作系统uClinux。2嵌入式uCinux内核结构uClinux内核结

3、构如图1所示:图1代表了内核的功能结构,与Linux基本相同,不同的只是对内存管理和 进程管理进行改写,以满足无MMU处理器的要求uClinux是Linux操作系统的 一种,是由Linux2.0内核发展来的,是专为没有MMU的微处理器(如ARM7TDMI、 Coldfire等)设计的嵌入式Linux操作系统。另外,由于大多数内核源代码都被 重写,uClinux的内核要比原Linux 2.0内核小的多,但保留了 Linux操作系统 的主要优点:稳定性,优异的网络能力以及优秀的文件系统支持。3 uClinux的内存管理uClinux同标准Linux的最大区别就在于内存管理。标准Linux是针对有M

4、MU 的处理器设计的。在这种处理器上,虚拟地址被送到MMU,MMU把虚拟地址映射 为物理地址。通过赋予每个任务不同的虚拟一物理地址转换映射,支持不同任务 之间的保护。对于uCLinux来说,其设计针对没有MMU的处理器,不能使用处理 器的虚拟内存管理技术。uClinux不能使用处理器的虚拟内存管理技术(应该说这种不带有MMU的处 理器在嵌入式设备中相当普遍)。uClinux仍采用存储器的分页管理,系统在启动时把实际存储器进行分页。 在加载应用程序时程序分页加载。但是由于没有MMU管理,所以实际上uClinux 采用实存储器管理策略(real memeory management) o这一点影响

5、了系统工作的 很多方面。uClinux系统对于内存的访问是直接的,(它对地址的访问不需要经过MMU, 而是直接送到地址线上输出),所有程序中访问的地址都是实际的物理地址。操 作系统对内存空间没有保护(这实际上是很多嵌入式系统的特点),各个进程实 际上共享一个运行空间(没有独立的地址转换表)。一个进程在执行前,系统必须为进程分配足够的连续地址空间,然后全部载 入主存储器的连续空间中。与之相对应的是标准Linux系统在分配内存时没有必 要保证实际物理存储空间是连续的,而只要保证虚存地址空间连续就可以了。此 外磁盘交换空间也是无法使用的,系统执行时如果缺少内存将无法通过磁盘交换 来得到改善。uCli

6、nux对内存的管理减少同时就给开发人员提出了更高的要求。如果从易 用性这一点来说,uClinux的内存管理是一种倒退,退回了到了 UNIX早期或是 Dos系统时代。开发人员不得不参与系统的内存管理。从编译内核开始,开发人 员必须告诉系统这块开发板到底拥有多少的内存(假如你欺骗了系统,那将在后 面运行程序时受到惩罚),从而系统将在启动的初始化阶段对内存进行分页,并 且标记已使用的和未使用的内存。系统将在运行应用时使用这些分页内存。由于应用程序加载时必须分配连续的地址空间,而针对不同硬件平台的可一 次成块(连续地址)分配内存大小限制是不同(目前针对EZ328处理器的uClinux 是128k,而针

7、对Coldfire处理器的系统内存则无此限制),所以开发人员在开 发应用程序时必须考虑内存的分配情况并关注应用程序需要运行空间的大小。另 外由于采用实存储器管理策略,用户程序同内核以及其它用户程序在一个地址空 间,程序开发时要保证不侵犯其它程序的地址空间,以使得程序不至于破坏系统 的正常工作,或导致其它程序的运行异常。从内存的访问角度来看,开发人员的权利增大了(开发人员在编程时可以访 问任意的地址空间),但与此同时系统的安全性也大为下降。此外,系统对多进 程的管理将有很大的变化,这一点将在uClinux的多进程管理中说明。4 uClinux的多进程处理uClinux没有MMU管理存储器,在实现

8、多个进程时(fork调用生成子进程) 需要实现数据保护。由于uClinux的多进程管理是通过vfork来实现,因此fork 等于vfork。这意味着uClinux系统fork调用完成后,要么子进程代替父进程 执行(此时父进程已经sleep)直到子进程调用exit退出;要么调用exec执行 一个新的进程,这个时候将产生可执行文件的加载,即使这个进程只是父进程的 拷贝,这个过程也不能避免。当子进程执行exit或exec后,子进程使用wakeup 把父进程唤醒,使父进程继续往下执行。uClinux的这种多进程实现机制同它的内存管理紧密相关。uClinux针对没 有mmu处理器开发,所以被迫使用一种f

9、lat方式的内存管理模式,启动新的应 用程序时系统必须为应用程序分配存储空间,并立即把应用程序加载到内存。缺 少了 MMU的内存重映射机制,uClinux必须在可执行文件加载阶段对可执行文件 reloc处理,使得程序执行时能够直接使用物理内存。5 uCLinux针对实时性的解决方案uClinux本身并没有关注实时问题,它并不是为了 Linux的实时性而提出的。 另外有一种Linux: RT Linux关注实时问题RT-Linux执行管理器把普通Linux 的内核当成一个任务运行,同时还管理了实时进程。而非实时进程则交给普通 Linux内核处理。这种方法已经应用于很多的操作系统用于增强操作系统的实时 性,包括一些商用版UNIX系统,Windows NT等等。这种方法优点之一是实现简 单,且实时性能容易检验。优点之二是由于非实时进程运行于标准Linux系统, 同其它Linux商用版本之间保持了很大的兼容性。优点之三是可以支持硬实时时 钟的应用。uClinux可以使用RT-Linux的patch,从而增强uClinux的实时性, 使得uClinux可以应用于工业控制、进程控制等一些实时要求较高的应用。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号