文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>uclinux总结(3)

uclinux总结(3)

时间:2007-03-24  来源:pywj777

1.         应用程序的链接与内核链接方式不同,应用程序由内核加载,由于应用程序的ld文件给出的内存空间与应用程序实际被加载的内存位置可能不同,这样在应用程序加载的过程中需要一个重新定位的过程,即对reloc段进行修正,使程序进行间接寻址时不至于出错。

2.         reloc段是用于保存一些绝对寻址变量地址的空间。当可执行文件加载时,加载器根据ld文件指定的起始地址与实际加载到内存的起始地址的差值对reloc段中存储的值统一加上这个差值。

3.         可执行文件
coff:一种通用对象文件格式。
elf:一种为linux系统所采用的通用文件格式,支持动态链接。
flat:elf格式有很大的文件头,flat文件对文件头和一些段信息做了简化。

4.       uclinux系统使用flat可执行文件格式。Gcc的编译器不能直接形成这种文件格式,但是可以形成coff或elf格式的可执行文件,这两种文件需要使用coff2flt和elf2flt工具进行格式转换,形成flat文件。

5.         可以使用Rt-linux的patch,从而增强uclinux的实时性。

6.       uclinux针对没有MMU的处理器。uclinux仍然采用存储器的分页管理,系统在启动时把实际存储器进行分页。uclinux系统对于内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护,各个进程实际上共享一个运行空间。一个进程在执行前,系统必须为进程分配足够的连续地址空间,然后全部载入主存储器的连续空间。(ARM7TDMI是无MMU功能)。

7.         uclinux是支持无MMU功能的CPU系统,无MMU功能时弊端:

a.       操作系统内核空间没有保护。

b.       系统必须为进程分配足够的连续空间,然后全部载入主存储器连续空间中。

c.       程序加载地址与预期(ld文件指定)的通常都不同,这样就需要relocation过程。

d.       磁盘交换空间也是无法使用。

e.       因为uclinux内核可能使用绝对寻址,所以内核加载到内存地址空间必须与ld文件中给定的内存空间完全相同。

8.         uclinux多进程处理

a.       uclinux的fork等于vfork,uclinux的多进程管理是通过vfork实现的。

b.       uclinux使用flat内存管理模式,启动新的应用程序时系统必须为应用程序分配足够的存储空间,并立即把应用程序全部加载到内存。

c.       uclinux必须在可执行文件加载阶段对可执行文件reloc处理,使程序执行使能够直接使用物理内存。

相关阅读 更多 +
排行榜 更多 +
剑术大乱斗

剑术大乱斗

动作格斗 下载
南钛HSSE

南钛HSSE

商务办公 下载
战场攻防大乱斗

战场攻防大乱斗

飞行射击 下载