保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

嵌入式操作系统uCLinux


开发人员在编程时可以访问任意的地址空间),但与此同时系统的安全性也大为下降。此外,系统对多进程的管理将有很大的变化,这一点将在uClinux的多进程管理中说明。
  
  4uClinux的多进程处理
  
  uClinux没有MMU管理存储器,在实现多个进程时(fork调用生成子进程)需要实现数据保护。由于uClinux的多进程管理是通过vfork来实现,因此fork等于vfork。这意味着uClinux系统fork调用完成后,要么子进程代替父进程执行(此时父进程已经sleep)直
  
  
  
  到子进程调用exit退出;要么调用exec执行一个新的进程,这个时候将产生可执行文件的加载,即使这个进程只是父进程的拷贝,这个过程也不能避免。当子进程执行exit或exec后,子进程使用wakeup把父进程唤醒,使父进程继续往下执行。
  
  uClinux的这种多进程实现机制同它的内存管理紧密相关。uClinux针对没有mmu处理器开发,所以被迫使用一种flat方式的内存管理模式,启动新的应用程序时系统必须为应用程序分配存储空间,并立即把应用程序加载到内存。缺少了MMU的内存重映射机制,uClinux必须在可执行文件加载阶段对可执行文件reloc处理,使得程序执行时能够直接使用物理内存。
  
  5uCLinux针对实时性的解决方案
  
  uClinux本身并没有关注实时问题,它并不是为了Linux的实时性而提出的。另外有一种Linux:RT-Linux关注实时问题。RT-Linux执行管理器把普通Linux的内核当成一个任务运行,同时还管理了实时进程。而非实时进程则交给普通Linux内核处理。这种方法已经应用于很多的操作系统用于增强操作系统的实时性,包括一些商用版UNIX系统,WindowsNT等等。这种方法优点之一是实现简单,且实时性能容易检验。优点之二是由于非实时进程运行于标准Linux系统,同其它Linux商用版本之间保持了很大的兼容性。优点之三是可以支持硬实时时钟的应用。uClinux可以使用RT-Linux的patch,从而增强uClinux的实时性,使得uClinux可以应用于工业控制、进程控制等一些实时要求较高的应用。
  
  6uClinux的开发环境
  
  1,GNU开发套件
  
  GNU开发套件作为通用的Linux开放套件,包括一系列的开发调试工具。主要组件:
  Gcc:编译器,可以做成交叉编译的形式,即在宿主机上开发编译目标上可运行的二进制文件。
  Binutils:一些辅助工具,包括objdump(可以反编译二进制文件),as(汇编编译器),ld(连接器)等等。
  Gdb:调试器,可使用多种交叉调试方式,gdb-bdm(背景调试工具),gdbserver(使用以太网络调试)。
  
  2,Clinux的打印终端
  
  通常情况下,uClinux的默认终端是串口,内核在启动时所有的信息都打印到串口终端(使用printk函数打印),同时也可以通过串口终端与系统交互。
  
  uClinux在启动时启动了telnetd(远程登录服务),操作者可以远程登录上系统,从而控制系统的运行。至于是否允许远程登录可以通过烧写romfs文件系统时由用户决定是否启动远程登录服务。
  
  3,交叉编译调试工具
  
  支持一种新的处理器,必须具备一些编译,汇编工具,使用这些工具可以形成可运行于这种处理器的二进制文件。对于内核使用的编译工具同应用程序使用的有所不同。在解释不同点之前,需要对gcc连接做一些说明:
  ld(linkdescription)文件:ld文件是指出连接时内存映象格式的文件。
  
  crt0.S:应用程序编译连接时需要的启动文件,主要是初始化应用程序栈。
  
  pic:positionindependencecode,与位置无关的二进制格式文件,在程序段中必须包括reloc段,从而使的代码加载时可以进行重新定位。
  
  内核编译连接时,使用ucsimm.ld文件,形成可执行文件映象,所形成的代码段既可以使用间接寻址方式(即使用reloc段进行寻址),也可以使用绝对寻址方式。这样可以给编译器更多的优化空间。因为内核可能使用绝对寻址,所以内核加载到的内存地址空间必须与ld文件中给定的内存空间完全相同。
  
  应用程序的连接与内核连接方式不同。应用程序由内核加载(可执行文件加载器将在后面讨论),由于应用程序的ld文件给出的内存空间与应用程序实际被加载的内存位置可能不同,这样在应用程序加载的过程中需要一个重新地位的过程,即对reloc段进行修正,使得程序进行间接寻址时不至于出错。(这个问题在i386等

《嵌入式操作系统uCLinux(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/144616.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。