linux 2.6 内核学习小结(1)---硬件相关概念

原创 2006年06月11日 00:10:00

1、特权级

Intel体系结构引入特权级是为了实现保护。所谓386保护模式就是在此基础上建立起来的。系统中每个段(CS、DS、SS)都有自己的特权级,系统中每个任务或程序也都有自己的特权。

2、操作模式

处理器加电或重启后,首先进入实模式,操作系统初始化部分负责从实模式到保护模式的切换。

3、段、段描述符

段是一块连续的内存区域,是基本的内存保护单位。用段描述符来描述。

4、全局和局部描述符表(GDT、LDT)

为了段的管理和查找方便。

5、门描述符

一种特殊的段描述符,属于系统段描述符。因为仅按段级保护,应用程序就无法使用操作系统段中的过程,为此,操作系统就把这些需要公开的过程建成门,从而应用程序可以通过这些门使用操作系统的过程。(这里的过程可以简单理解为函数调用),一个门对应一个过程或者任务。

6、分页机制

Intel体系结构提供两种内存管理机制:分段和分页。段是一种基本的内存管理机制,它把处理器的线性地址空间划分为小的地址段。段与段相互独立,对段的访问要受到严格的检查和保护。段可以再分为页,从而实现对虚拟内存的基本支持。

Intel按页目录和页表两级结构组织一个任务的页。页目录是一个数组,其元素叫页目录项(PDE)每个PDE描述一个页表,PDE占4个字节。页目录的大小为4KB,所以一个页目录中有1024个PDE。

页表也是数组,其元素叫页表项(PTE),每个PTE描述一页,PTE占4个字节。页表的大小为4KB,所以一个页表中有1024个PTE。

故系统中可以表示1024*1024个4KB的页,即线性地址范围0-4GB。

由逻辑地址到线性地址要用到描述符表,而由线性地址到物理地址转换要用到页目录和页表。

// 下图为页地址的格式:
//     10bits 10bits 12bits
// ||----dir----||-----page-----||-------offset--------||

Intel用寄存器CR3存放当前使用的恶页目录的物理地址,从而可以实现到物理地址的转化。

系统中可以只有一个页目录,所有任务共享;也可以有多个页目录,每个任务一个,任务页目录的机制地址保存在任务的TSS段中(CR3域)

6、TLB

由于每次访问存储器都要存取页目录和页表,大大降低了内存访问速度,所以Intel处理器加了一个CACHE,用于存储最近使用的页目录项和页表项,即DTLB和ITLB(Translation Lookaside Buffers)

TLB存取权限为0特权级,所以刷新TLB必须由操作系统完成。

linux 2.6 内核学习小结---硬件相关概念

1、特权级  Intel体系结构引入特权级是为了实现保护。所谓386保护模式就是在此基础上建立起来的。系统中每个段(CS、DS、SS)都有自己的特权级,系统中每个任务或程序也都有自己的特权。  2、操...
  • abo8888882006
  • abo8888882006
  • 2010年03月06日 16:41
  • 321

linux 2.6 内核配置说明

转自:http://blog.chinaunix.net/uid-25304914-id-3029140.html 链接: http://wenku.baidu.com/view/b939...
  • JY_Sharer
  • JY_Sharer
  • 2014年02月09日 23:05
  • 4539

现在的 Linux 内核和 Linux 2.6 的内核有多大区别?

origin:  http://www.zhihu.com/question/35484429/answer/62964898?from=timeline&isappinstalled...
  • yazhouren
  • yazhouren
  • 2015年09月14日 15:42
  • 602

ubuntu05.04 linux2.6.10 内核安装

linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说 2012-05-17 00:38:37 分类: LINUX   linux内核编程4部曲之一:linux内核编译(...
  • liu0808
  • liu0808
  • 2017年01月10日 17:10
  • 393

关于linux2.6.32-2内核源码分析

对Linux内核源码的分析与学习已经有一段时间了。一直想写点东西,但是嫌麻烦,也怕时间上的不允许。然而,从最近的学习中体会到,自己的理解过程和能够清楚的写出来还是有很大差别的。所以,决定在以后的学习中...
  • bullbat
  • bullbat
  • 2011年12月19日 10:44
  • 1984

Ubuntu12.04 安装2.6.xxx内核步骤

1.准备环境 #apt-get install libncurses5-dev build-essential kernel-package 2.
  • sxsboat
  • sxsboat
  • 2014年07月06日 21:35
  • 3195

ldd3学习笔记--环境搭建(构建linux2.6.10源码树)

ldd3《Linux设备驱动程序(第三版)》使用的内核是linux-2.6.10,所以想要搭建一个该版本的内核,方便学习。 //***********************************...
  • u013162593
  • u013162593
  • 2015年04月24日 22:25
  • 1577

RFID学习(一)概念、分类

现代社会智能卡已经渗透到生活的方方面面,公交卡、考勤卡、身份证、手机卡等等数不胜数。     智能卡按使用时是否和读卡器接触可分为接触式智能卡和非接触式智能卡,接触式智能卡上有6-8个触点,使用时插...
  • zhouqiyao2009
  • zhouqiyao2009
  • 2014年07月24日 14:40
  • 519

Linux 2.6.34内核编译步骤

因为想使用26sec相关的东西,所以想下载个新版本的kernel玩玩。   基础知识:   uname -r   2.6.18-164.e15xen   [主版本].[次版本].[发布版本...
  • rosetta
  • rosetta
  • 2012年04月23日 09:39
  • 5620

我的Linux内核学习之路

现在回首看看,接触Linux已经很长时间了。 在大三的时候开始学习Java, 但是一直学Java的话, 感觉有点腻, 就尝试找点其他东西来学习。 所以当时就选择学习了Linux。 至于为什么要学习Li...
  • brave2211
  • brave2211
  • 2014年03月02日 18:34
  • 14812
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux 2.6 内核学习小结(1)---硬件相关概念
举报原因:
原因补充:

(最多只允许输入30个字)