易截截图软件、单文件、免安装、纯绿色、仅160KB

深入理解linux内核笔记七:内存管理(1)之内存寻址

1 内存地址
       linux中,我们必须区分三种不同的地址
逻辑地址:机器语言指令中用来指定一个操作数和一个指令的地址.在X86中,每一个逻辑地址都由一个段(segment)和偏移量(offset)组成.
线性地址(也称虚拟地址):是一个32位无符号函数,可以表示高达4GB的地址,范围从0x00000000到0xffffffff.
物理地址:用于内存芯片级寻址,它们与从微处理器的地址引脚发送到内存总线上的电信号相对应.
 
逻辑地址转换图
 
2         分段
①     硬件分段
段选择符和段寄存器
一个逻辑地址由一个段标识符和一个段内相对地址的偏移量组成.段标识符是一个16位长的字段,称为段选择符
                                       
Index:指定在GDT或LDT中相应段描述符的入口
TI:指明段描述符在GDT(TI=0)或LDT(TI=1)中
RPL:请求者特权级,当相应段选择符装入到cs寄存器中指示出cpu当前的特权级.
 
X86中提供了6个段寄存器cs ss ds es fs gs,段寄存器的唯一目的就是存放段选择符.
 
段描述符
每一个段描述符由8个字节组成,段描述符放在全局描述符表或局部描述符表中
Base:包含段的首字节的线性地址
G:  粒度标志,0以字节为单位,否则以4096字节为单位
Limit:存放段中最后一个内存单元的偏移量,从而决定段的长度.如果G为0,则一个段的大小在1个字节到1MB之间,否则,在4KB到4GB之间
S:  系统标志,0为系统段,否则普通的代码段或数据段
Type:描述段的类型特征和它的存取权限
DPL: 描述段的特权级.表示访问这个段要求的cpu最小的优先级
P: Segment-Present标志,等于0表示段不在主存中,linux总把这个标志设为1
D或B:称为D或B标志,取决于是代码段还是数据段,如果段偏移量地址是32位,就基本把它设置为1,如果这个偏移量是16位,它被清为0
AVL: 被linux忽略
 
Linux中广泛使用下面三种段描述符
代码段描述符:可以放在GDT或LDT中,该描述符置S为1
数据段描述符:可以放在GDT或LDT中,该描述符置S为1,栈段通过一般的数据段实现
任务状态段描述符:表示一个任务状态段


相关文档:

实战Linux Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

Linux下Java环境变量的设置

如果想让所有用户share:
emacs -nw /etc/profile
然后在未尾加入
#set java environment
set JAVA_HOME=/usr/java/jdk1.5.0_16
set PATH=.:$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME
如果仅当前用户使用:
把上面的加入用户目录下的.bash_profile或.bash-rc
然后运行source /etc/profile生效 ......

七款嵌入式Linux操作系统简介

除了智能数字终端领域以外,Linux在移动计算平台、智能工业控制、金融业终端系统,甚至军事领域都有着广泛的应用前景。这些Linux被统称为“嵌入式Linux”。下面就来看看都有哪些嵌入式Linux在以上领域纵横驰骋吧!
  RT-Linux
  这是由美国墨西哥理工学院开发的嵌入式Linux操作系统。到目前为止,RT-Linux已 ......

Redhat5 Linux 下利用yum安装SVN客户端

 
Redhat5下利用yum安装SVN客户端

由于Redhat5自带的SVN的版本是1.4.1的,比较老,不能读取SVN1.5的库,所有要更新:
直接运行:yum update subversion
会抱错:
http://ftp.sjtu.edu.cn/centos/5/updates/i386/repodata/repomd.xml: [Errno 14] HTTP Error 403: Forbidden
将repo地址改称USTC(科大的),
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号