📄 读核日记(三).htm
字号:
的386 保护模式,内存管理,作了一个初步的学习.当初学习操作系统课时老觉得理论没用.
如今,真的时间了,才知道理论知识是多么的缺乏.也许是书到用时方恨少 闲话少说 目前,linux 被移植到了各种机器上.如apple
等.但我个人认为linux的真正魅力.还是在i386机器上.因为llinus前辈在写linux 时的初衷,就是在386
平台上实现类unix的os linux使用了intel
80386系列处理器的”保护模式”.操作系统的资源的管理和分配.由80386硬件存储管理和保护机制实现
虚拟存储器,是一种扩种内存的设计方案.他来源于当初主存非常昂贵的年代.用到了程序的局部性原则,即程序在运行时没有必要全部装入内存.支部当前要运行的那一部分调入内存即可
实际上,整个存储系统是 由 高速缓存--- 内存--- 硬盘 等多级存储介质构成的,但这对程序原始透明的,比如我们在程序中执行这样一天指令
move ax 1997 这样地址是1997 的内容背拷贝到了ax
,这样由程序产生的地址时虚地址.这个地址与实际的物理地址是不同的.要有这个地址转换到实际的物理地址,就需要有一个转换机制.通常叫做MMU的硬件单元完成这个任务
所谓的保护机制就是在这个基础上进行的.它的目的是要使不同的程序段互不干涉.系统进程与用户进程严格分开已达到系统安全与多用户多进程的要求.在linux
中通过给不同的任务分配不同的虚拟地址到物理地址的映射.来实现不同任务的切换与保护.同时.linux
“可能”是把系统进程与用户进程分开(我不太确定,可能是把系统进程的地址控制在100000以内?,当然在iipv通行中的共享内存,由于操作不当可能产生不可预料的后果).
另外,linux对统一任务也进行了不同程度的保护.它使用优先级来决定的.比如内核的优先级是0,系统调用 :1 库:2
用户进程3.在程序对某一个数据段进行读写的时候,.应县检查优先级,.在决定它运行的优先级或存取权限.
我想,这个优先级一定会和struct_task 的某些表示调度优先级的参数关联.
对于内存管理,通常是有段式,页式和段页式三种方式.在这里讨论的使者两种方式的虚拟-物理转换机制的不同.因为linux实行的是段页式内存管理.因此这两种映射机制,也就必须都存在
段式管理,使用了一系列的可改变大小的地址集合进行管理.它的好处是,可以充分利用物理内存.缺点是难以管理, 通常在c 中
我们可以这样定义一个段(此定义只是解释段的概念,linux中绝不是如此) typedef stucrt duan { struct duan *
next ,*pre ;/*双连标所需指针*/ int tag; iint begin ,end /*始末点*/ int size; data
data ; /*内容*/ …….. }
以上实在是实际内存中可能用到的段的数据结构.而我们在保护模式中,所谓的段是保护管理.大体上和汇编语言中基址寻址有些相似:他是实现虚拟-物理地址转换的基础(说白了,我个人认为,把所有的段定义成一样大就是页,不过实际上我还没看linux
是怎样做的,所以千万不要被我误导) 段 有一个基址 (base address)规定了在线性物理内存中的开始地址 有一个限制位,(limit)
表示段内最大偏移量,(也就是大小) 段的属性 (attribute) 表示该段是否会被读写<BR>这3 个属性,包含在段的描述符中
所谓的描述符.是一个8个子节的存储单元,其结构大概如下: 字节0 -----0—7 位描述苻 字节1 ------8—15位描述符 字节2
-----0—7 位基址 字节3 -----8—15 位基址 字节4 -----16—24 段基址 字节5 -----存储权限的字节 字节6
-----G| D|0|0| 16-19位段界限 字节7 -----31-—24 段基址
其中第五个字节,是存取权字节,它包含有好几个标志位,用来标志该段是在内存中,还是没有.后者该段是用户段或者是系统段之类的.被人水平有限.在此不一一说明.希望有兴趣的朋友可以查一下资料,将给我们大家听
在系统段中.有一个字节.可以来定义系统段的类型,好像是有16类
像标志为有效的386.TSS,386中断门,386陷阱门等等,在此不一一介绍.在此要弄清楚两个名次 TSS(系统状态标)
LDT(局部描述标),在相关的资料中,经常会碰到
在LINUX的内核中有一系列的描述苻表.像全局描述苻表(GDT),中断描述苻表(IDT)还有上面介绍的LDT等等,在他们中间.定义了系统可用的描述苻,中断门,等等.它的作用是使得机器的兼容性得到保证
在LDT 中.则定义了一些和具体的任务相联系的代码段,数据段等等.描述苻表的内数据结构大致如下: typedef struct
desc_struct { unsigned long a,b; } 后面用以下两行完成了描述苻表的定义以及外部描述苻的定义:
desc_table[256]; //定义了可以在局部描述苻表中的最大描述苻量 extern dessc_table idt,gdt
//外部的描述变量 至此,关于linux的分段机制大体上节讲解完毕了,剩下的就是在寄存器与选择器之间的映射,还有一些寻址方法
这部分内容,大概和<<汇编语言>>中讲的大同小异,在此不多费唇舌 <BR>
<DIV align=right>发布人:netbull 来自:LinuxAid </DIV><BR></UL><IMG
src="读核日记(三).files/line.jpg"><BR>
<FORM action=post.php?skin=reart&ID=1595 method=post>
<UL>-- 发表评论 --<BR> 昵称:<INPUT name=name> Email:<INPUT
name=email><BR> 内容:<BR><TEXTAREA name=content rows=5 cols=56></TEXTAREA><BR> <INPUT type=submit value=确定回复> <INPUT type=reset value=清除></UL></FORM><IMG
src="读核日记(三).files/line.jpg"><BR>
<UL>
<LI>以下是对此文的评论:<BR><BR>昵称:zben Email:zxfly0979_cn@sina.co<BR>hello:
<BR>我是一个新手,最近对linux很感兴趣,杂七杂八看了几天,最大的感觉是头大了,能否将各位入门经验传授一二?万分感激。
<BR>thanks a lot.
<HR width="100%" noShade SIZE=1>
</LI></UL></TD><!--第三列-->
<TD vAlign=top align=left width="25%"> <IMG
src="读核日记(三).files/online.jpg" border=0>
<UL>
<LI><A href="http://www.heblinux.org/addnews.php"
target=_blank>新闻发布</A><BR><BR>
<LI><A href="http://www.heblinux.org/addart.php"
target=_blank>文献发布</A><BR><BR>
<LI><A href="http://www.heblinux.org/addsoft.php"
target=_blank>软件发布</A><BR><BR>
<LI><A href="http://www.heblinux.org/manger.php"
target=_blank>软件管理</A><BR></LI></UL><IMG height=5
src="读核日记(三).files/tabledi2.jpg" width="100%"><!--下载排行--> <IMG
src="读核日记(三).files/download.jpg" border=0> <BR> <A
href="http://www.heblinux.org/view.php?skin=soft&id=676">Red Hat
Linux</A> (78904)<BR> <A
href="http://www.heblinux.org/view.php?skin=soft&id=93">星际译王1.31版</A> (36834)<BR> <A
href="http://www.heblinux.org/view.php?skin=soft&id=219">Oracle9i
Enterprise</A> (36781)<BR> <A
href="http://www.heblinux.org/view.php?skin=soft&id=785">kylix</A> (35589)<BR> <A
href="http://www.heblinux.org/view.php?skin=soft&id=287">AOL
server</A> (27226)<BR> <A
href="http://www.heblinux.org/view.php?skin=soft&id=969">RedHat
中文环境</A> (25499)<BR> <A
href="http://www.heblinux.org/view.php?skin=soft&id=647">Chinput</A> (23572)<BR> <A
href="http://www.heblinux.org/view.php?skin=soft&id=1041">中软Linux</A> (21135)<BR> <A
href="http://www.heblinux.org/view.php?skin=soft&id=946">RedHat Linux
7.1正式</A> (20829)<BR> <A
href="http://www.heblinux.org/view.php?skin=soft&id=134">XteamLinux</A> (20642)<BR><IMG
height=5 src="读核日记(三).files/tabledi2.jpg" width="100%">
<!--文摘分类--> <IMG src="读核日记(三).files/artstyle.jpg" border=0>
<BR> <A
href="http://www.heblinux.org/arttype.php?dno=1">内核分析</A><BR> <A
href="http://www.heblinux.org/arttype.php?dno=2">网络技术及应用</A><BR> <A
href="http://www.heblinux.org/arttype.php?dno=3">应用编程</A><BR> <A
href="http://www.heblinux.org/arttype.php?dno=4">硬件应用</A><BR> <A
href="http://www.heblinux.org/arttype.php?dno=5">软件应用</A><BR> <A
href="http://www.heblinux.org/arttype.php?dno=6">系统管理</A><BR> <A
href="http://www.heblinux.org/arttype.php?dno=7">数据库应用</A><BR> <A
href="http://www.heblinux.org/arttype.php?dno=8">系统安全</A><BR> <A
href="http://www.heblinux.org/arttype.php?dno=9">Linux中文化</A><BR> <A
href="http://www.heblinux.org/arttype.php?dno=10">市场与观点</A><BR><IMG
height=5 src="读核日记(三).files/tabledi2.jpg" width="100%">
<BR><!--合作伙伴--> <IMG src="读核日记(三).files/friends.jpg" border=0>
<BR> <A href="http://www.5ilinux.com/"
target=_blank>我爱linux</A><BR> <A
href="http://www.heblinux.org/"
target=_blank>河北LINUX协会</A><BR> <A
href="http://www.xteamlinux.com.cn/"
target=_blank>冲浪软件下载中心</A><BR> <A
href="http://cosoft.org.cn/html/"
target=_blank>共创联盟</A><BR> <A
href="http://www.coventive.com.cn/"
target=_blank>XLinux</A><BR> <A
href="http://www.it365.net/"
target=_blank>诺金软件电脑网络</A><BR> <A
href="http://www.ch2000.com.cn/"
target=_blank>中文2000软件</A><BR> <A
href="http://www.csuu.com/"
target=_blank>中国Unix联盟</A><BR> <A
href="http://freewares.cn/"
target=_blank>自由软件在中国</A><BR> <A
href="http://www.pconline.com.cn/pcedu"
target=_blank>太平洋电脑信息网</A><BR> <A
href="http://www.linuxaid.com.cn/"
target=_blank>LinuxAid</A><BR> <A
href="http://www.cosoft.org.cn/"
target=_blank>共创软件联盟</A><BR> <A
href="http://wsdn.org/"
target=_blank>WEB程序开发网络</A><BR> <A
href="http://linux.softhouse.com.cn/"
target=_blank>软件屋Linux之家</A><BR> <A
href="http://ljb.vpnet.cn/"
target=_blank>随意网络</A><BR> <A
href="http://linux.ccidnet.com/"
target=_blank>赛迪网Linux专区</A><BR></TD></TR></TBODY></TABLE>
<CENTER>Completed in 0.0506069660187 seconds</CENTER>
<CENTER>COPYRIGHT 2002-2003 <FONT color=#9b2626>LinuxByte.net</FONT> <A
href="mailto:oneteam@mail.linuxbyte.net">联系本站</A></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -