<!-- 模版文件头 -->
<!-- 模版文件头 结束 -->
<html>
<head>
<title>珍贵资料:uClinux系统分析详解 - 技术应用子站 - 赛迪网</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="keywords" content="uClinux,系统">
<meta name="description" content='Linux是一种很受欢迎的操作系统,它与UNIX系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。'>
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0">
<div align=center>
<script language="JavaScript" src="http://image.ccidnet.com/nav/ccidnet_header.js"></script>
<script language="JavaScript" src="http://tech.ccidnet.com/images/tech/tech_header.js"></script>
<table width="760" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td valign="top" width="170" bgcolor="" align="center">
<SCRIPT src='http://www1.cnnet.com.cn:80/adsunion/get/;pl=pl-9-tech_build;tp=js;sk=0;ck=0;/?'></SCRIPT><br>
<img src="http://image.ccidnet.com/ad_files/home/images/blank.gif" width="20" height="5"><br>
<SCRIPT src='http://www1.cnnet.com.cn:80/adsunion/get/;pl=pl-9-tech_build2;tp=js;sk=0;ck=0;/?'></SCRIPT><br>
<script language=javascript src="http://tech.ccidnet.com/images/tech/artlinux.js"></script>
<script language=javascript src="http://tech.ccidnet.com/images/tech/art_right.js"></script>
</td>
<script language="javascript">
<!--
function doZoom(size){
document.getElementById('zoom').style.fontSize=size+'px'
}
//-->
</script>
<!-- 文章显示开始 -->
<td valign="top">
<table width="580" border="0" cellspacing="0" cellpadding="0" class="content" align="center">
<tr>
<td background="http://tech.ccidnet.com/pub/images/tech/top_2.gif"><img src="http://tech.ccidnet.com/pub/images/tech/kong.gif" width="20" height="5"><a href="http://www.ccidnet.com" target="_blank" class="content">赛迪网</a>
>> <a href="http://tech.ccidnet.com" target="_blank" class="content">技术应用子站</a>
>> <a href="http://comm.ccidnet.com/col/302/302.html" target="_blank" class="content"><b>最新更新</b></a><img src="http://image6.ccidnet.com/ad_files/image/tech/art/blank.gif" border="0" width=0 height=0></td>
<td width="176"><img src="http://tech.ccidnet.com/pub/images/tech/top_4.gif" width="176" height="30"></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" width="590" valign="top">
<table width="580" border="0" cellspacing="0" cellpadding="2" class="p14">
<tr>
<td align="center" class="title01"><b><font color="#660000"><FONT COLOR="red">珍贵资料:uClinux系统分析详解</FONT> (3) </font></b></td>
</tr>
<tr>
<td align="center" class="title02"><font color="#CC0000">作者:华恒科技 来源:赛迪网 发布时间:2005.03.23</font></td>
</tr>
<tr>
<td>
<table width="580" border="0" cellspacing="0" cellpadding="2" class="p14">
<tr>
<td align="center" class="title02">
<a href="http://java.ccidnet.com/" target="_blank" class="title02"><font color="#CC0000">【Java专区】</font></a>
<a href="http://security.ccidnet.com/" target="_blank" class="title02"><font color="#CC0000">【网络安全】</font></a>
<a href="http://network.ccidnet.com/" target="_blank" class="title02"><font color="#CC0000">【网管专区】</font></a>
<a href="http://linux.ccidnet.com/" target="_blank" class="title02"><font color="#CC0000">【linux专区】</font></a>
<a href="http://database.ccidnet.com/" target="_blank" class="title02"><font color="#CC0000">【数据库专区】</font></a>
<a href="http://bbs.tech.ccidnet.com/" target="_blank" class="title02"><font color="#CC0000">【进入论坛】</font></a>
<a href="http://blog.ccidnet.com/" target="_blank" class="title02"><font color="#CC0000">【IT博客】</font></a> </font></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" class="content"><img src="/col/images/tech/line_4.jpg" width="580" height="4"></td>
</tr>
</table>
<table width="580" border="0" cellspacing="0" cellpadding="2" class="article01">
<tr>
<td style="WORD-WRAP: break-word">
<span id=tech_art_center></span>
<p style="text-indent:2em">
<p style="text-indent:2em"> 增加的变量addr将在数据段中占用一个4字节的空间,连接器将app_start的绝对地址存储到该变量。在可执行文件加载时,可执行文件加载器根据程序将要加载的内存空间计算出app_start在内存中的实际位置,写入addr变量。系统在实际处理是不需要知道这个变量的确切存储位置(也不可能知道),系统只要对整个reloc段进行处理就可以了(reloc段有标识,系统可以读出来)。处理很简单只需要对reloc段中存储的值统一加上一个偏置(如果加载的空间比预想的要靠前,实际上是减去一个偏移量)。偏置由实际的物理地址起始值同ld文件指定的地址起始值相减计算出。
<p style="text-indent:2em"> 这种reloc的方式部分是由uClinux的内存分配问题引起的,这一点将在uClinux内存管理分析时说明。
<p style="text-indent:2em"><B><font color="#330099">针对实时性的解决方案</font></b>
<p style="text-indent:2em"> uClinux本身并没有关注实时问题,它并不是为了Linux的实时性而提出的。另外有一种Linux--Rt-linux关注实时问题。Rt-linux执行管理器把普通Linux的内核当成一个任务运行,同时还管理了实时进程。而非实时进程则交给普通Linux内核处理。这种方法已经应用于很多的操作系统用于增强操作系统的实时性,包括一些商用版UNIX系统,WindowsNT等等。这种方法优点之一是实现简单,且实时性能容易检验。优点之二是由于非实时进程运行于标准Linux系统,同其它Linux商用版本之间保持了很大的兼容性。优点之三是可以支持硬实时时钟的应用。uClinux可以使用Rt-linux的patch,从而增强uClinux的实时性,使得uClinux可以应用于工业控制、进程控制等一些实时要求较高的应用。
<p style="text-indent:2em"><B><font color="#330099">uClinux的内存管理</font></b>
<p style="text-indent:2em"> 应该说uClinux同标准Linux的最大区别就在于内存管理,同时也由于uClinux的内存管理引发了一些标准Linux所不会出现的问题。本文将把uClinux内存管理同标准Linux的那内存管理部分进行比较分析。
<p style="text-indent:2em"><B><font color="#330099">标准Linux使用的虚拟存储器技术</font></b>
<p style="text-indent:2em"> 标准Linux使用虚拟存储器技术,这种技术用于提供比计算机系统中实际使用的物理内存大得多的内存空间。使用者将感觉到好像程序可以使用非常大的内存空间,从而使得编程人员在写程序时不用考虑计算机中的物理内存的实际容量。
<p style="text-indent:2em"> 为了支持虚拟存储管理器的管理,Linux系统采用分页(paging)的方式来载入进程。所谓分页既是把实际的存储器分割为相同大小的段,例如每个段1024个字节,这样1024个字节大小的段便称为一个页面(page)。
<p style="text-indent:2em"> 虚拟存储器由存储器管理机制及一个大容量的快速硬盘存储器支持。它的实现基于局部性原理,当一个程序在运行之前,没有必要全部装入内存,而是仅将那些当前要运行的那些部分页面或段装入内存运行(copy-on-write),其余暂时留在硬盘上程序运行时如果它所要访问的页(段)已存在,则程序继续运行,如果发现不存在的页(段),操作系统将产生一个页错误(page fault),这个错误导致操作系统把需要运行的部分加载到内存中。必要时操作系统还可以把不需要的内存页(段)交换到磁盘上。利用这样的方式管理存储器,便可把一个进程所需要用到的存储器以化整为零的方式,视需求分批载入,而核心程序则凭借属于每个页面的页码来完成寻址各个存储器区段的工作。
<p style="text-indent:2em"> 标准Linux是针对有内存管理单元的处理器设计的。在这种处理器上,虚拟地址被送到内存管理单元(MMU),把虚拟地址映射为物理地址。
<p style="text-indent:2em"> 通过赋予每个任务不同的虚拟--物理地址转换映射,支持不同任务之间的保护。地址转换函数在每一个任务中定义,在一个任务中的虚拟地址空间映射
珍贵资料uClinux系统分析详解
需积分: 0 172 浏览量
2008-07-24
10:19:33
上传
评论
收藏 25KB RAR 举报
sunxy3002
- 粉丝: 1
- 资源: 46
最新资源
- 基于C++的程序设计大赛天梯赛L2答案(天梯赛)
- 基于python实现的三次样条插值和均值插值法实现
- Python语言教程2-python批量图片大小处理-多文件夹
- Python语言教程1-python批量图片重命名,将后缀某几个不想要的字去除
- Space Combat Kit 太空战斗套件Unity游戏开发插件资源unitypackage C#
- Universal Device Preview 通用设备预览Unity游戏开发插件资源unitypackage
- Paladin Anim Set 圣骑士动画集Unity游戏动作动画插件资源unitypackage
- 计算机财务管理期末考报表部分题目及答案.doc
- 计算机软件维护论文.doc
- 计算机软件著作权授权书.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0