1 引言 内存管理在嵌入式操作系统中是很重要的子模块,能够对系统性能起决定性作用。uclinux是嵌入式Linux领域非常重要的分支,已成功应用于路由器、机顶盒、PDA等领域,与标准Linux在内存管理方面有着本质的区别。 2 uclinux概述 uclinux从Linux2.0/2.4内核派生而来,其内核二进制映像文件小于512K。无MMU (Memory Management Unit),内存管理单元)处理器设计,具 有完备的TCP/IP、支持多任务、多种网络协议和文件系统。...
by sun2006_fly - Linux文档专区 - 2008-11-11 21:14:01 阅读(1168) 回复(0)
一.概述: 由于缺少了MMU硬件支持,uclinux不能支持虚拟内存管理(virtual memory management)和内存保护.这就意味着它完全不使用标准linux内核(kernel)中的分页管理机制,也就没有了页表(page table)和页目录(page directory)对线性地址的映射,从而线性地址到物理地址的转 换也是不需要进行任何工作的。换句话说,uclinux中所使用的都是直接物理地址。而且,由于没有了虚拟内存管理的功能,uclinux不再使用”按需调页”(...
应该说uclinux同标准Linux的最大区别就在于内存管理,同时也由于uclinux的内存管理引发了一些标准Linux所不会出现的问题。本文将把uclinux内存管理同标准Linux的那内存管理部分进行比较分析。 标准Linux使用的虚拟存储器技术 标准Linux使用虚拟存储器技术,这种技术用于提供比计算机系统中实际使用的物理内存大得多的内存空间。使用者将感觉到好像程序可以使用非常大的内存空间,从而使得编程人员在写程序时不用考虑计算机中...
uclinux系统对于内存的访问是直接的,(它对地址的访问不需要经过MMU,而是直接送到地址线上输出),所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护(这实际上是很多嵌入式系统的特点),各个进程实际上共享一个运行空间(没有独立的地址转换表)。 一个进程在执行前,系统必须为进程分配足够的连续地址空间,然后全部载入主存储器的连续空间中。与之相对应的是标准Linux系统在分配内存时没有必要...
针对实时性的解决方案 uclinux本身并没有关注实时问题,它并不是为了Linux的实时性而提出的。另外有一种Linux--Rt-linux关注实时问题。Rt-linux执行管理器把普通Linux的内核当成一个任务运行,同时还管理了实时进程。而非实时进程则交给普通Linux内核处理。这种方法已经应用于很多的操作系统用于增强操作系统的实时性,包括一些商用版UNIX系统,Windows NT等等。这种方法优点之一是实现简单,且实时性能容易检验。优点之二是由于非...
uclinux: vendors: 目标处理器相关,包括脚本,该处理器的默认的配置文件,在这里增加对目标处理器的支持 openswan: IPsec相关 config: 配置内核 make menuconfig&&xconfig&&config相关脚本 scripts/lxdialog: 实现内核配置时的菜单、消息(配置选择框)等的脚本文件 scripts/Menuconfig: (make menuconfig)实现配置选项的选择、取消、设置为模块、帮助工 tools: ucfront:gcc(ucfront-gcc,ucfront-g++)和ld(ucfront-ld) bin:...
[color="#02368d"]什么是uclinux? uclinux uclinux是Lineo公司的主打产品,同时也是开放源码的嵌入式Linux的典范之作。 uclinux主要是针对目标处理器没有存储管理单元MMU(Memory Management Unit)的嵌入式系统而设计的。它已经被成功地移植到了很多平台上。由于没有MMU,其多任务的实现需要一定技巧。uclinux是一种优秀的嵌入式 Linux版本,是micro-Conrol-Linux的缩写。它秉承了标准Linux的优良特性, 经过各方面的小型化改...
uclinux uclinux即“微控制器领域中的Linux系统”。 uclinux从Linux 2.0/2.4内核派生而来,沿袭了Linux的绝大部分特性。它是专门针对没有MMU(内存管理单元)的CPU,并且为嵌入式系统做了许多小型化的工作。它通常用于具有很少内存或Flash的嵌入式操作系统。在GNU通用许可证的保证下,运行uclinux操作系统的用户可以使用几乎所有的Linux API函数。由于经过了裁剪和优化,它形成了一个高度优化,代码紧凑的嵌入式Linux。它具有体积小、稳...
我安装uclinux前几步都顺利,就最后一步"make "出了问题 [root@localhost uclinux-dist]# make make ARCH=arm CROSS_COMPILE=arm-linux- -C linux-2.6.x zImage || exit 1 make[1]: Entering directory `/root/uclinux/uclinux-dist/linux-2.6.x' CHK include/linux/version.h make[2]: “arch/arm/kernel/asm-offsets.s”是最新的。 CHK include/asm-arm/constants.h make[2]: “include/asm-arm/mach-types.h”是最新...