查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Linux内核完全剖析 > 试读

Linux内核完全剖析[试读]

    本书是一本有关Linux操作系统内核基本工作原理的入门读物。    本书的主要目标     本书的主要目标是使用尽量少的篇幅,对完整的Linux内核源代码进行解剖,使读者对操作系统的基本功能和实际实现方式获得全方位的理解。     本书读者应是知晓Linux系统的一般使用方法或具有一定的编程... 查看全部[ 序 ]

数学协处理器

    内核目录kernel/math目录中包含数学协处理器仿真处理代码文件,共包含9个C语言程序,见表11-1。本章内容与具体硬件结构关系非常密切,因此需要读者具备较深的有关Intel CPU和协处理器指令代码结构的知识。但好在这些内容与内核实现关系不大,因此跳过本章内容并不会妨碍读者对内核实现方... 查看全部[ 数学协处理器 ]

浮点数据类型

    具有整数部分和小数(尾数)部分的数称为实数或浮点数。实际上整型数是小数部分为0的实数,是实数集的一个子集。由于计算机使用固定长度位来表示一个数,因此并不能精确地表示所有实数。由于计算机表示实数时为了在固定长度位内能表示尽量精确的实数值,分配给表示小数部分的位个数并不是固定的,即小数点是可以“... 查看全部[ 浮点数据类型 ]

特殊实数

    与上面表中格式某些值无法表示的情况类似,使用实数格式表示的某些值也有其特殊含义。对于80位长度格式的临时实数,80387并没有使用其可表示的所有范围数值。表11-3是80387使用中的临时实数所能表示的所有可能的数值,其中有效数一栏虚线左侧1位表示临时实数位63,即明确表示数值1的位。短实数... 查看全部[ 特殊实数 ]

数学协处理器功能和结构

    80386虽然是一个通用微处理器,但其指令并不是非常适用于数学计算。因此若使用80386来执行数学计算,那么就需要编制非常复杂的程序,而且执行效率也相对较低。80387作为80386的辅助处理芯片,极大地扩展了程序员的编程范围。以前程序员不太可能做到的事,使用协处理器后就可以很容易地,并且快... 查看全部[ 数学协处理器功能和结构 ]

栈式浮点累加器

    在浮点指令执行过程中,8个80位长度的物理寄存器组被作为栈式累加器使用。虽然每个80位寄存器有固定的物理顺序位置(即左边的0~7),但当前栈顶则由ST(即ST(0))来指明。ST之下的其余累加器使用名称ST(i)来指明(i = 1~7)。至于哪个80位物理寄存器是当前栈顶ST,则由具体操作过... 查看全部[ 栈式浮点累加器 ]

状态与控制寄存器

    三个16位的寄存器(TAG字、控制字和状态字)控制着浮点指令的操作并且为其提供状态信息。它们的具体格式如图11-6所示。下面逐一对它们进行说明。     (1)控制字     控制字(Control Word)可用于程序设置各种处理选项来控制80387的操作。其中可分为三个部分。位11~10... 查看全部[ 状态与控制寄存器 ]

出错指针寄存器

    出错指针寄存器(Error-Pointer Register)是4个32位的80387寄存器,其中含有80387最后执行指令和所用数据的指针,参见图11-6。前两个寄存器FIP和FCS中是最后执行指令中2个操作码的指针(忽略前缀码)。FCS是段选择符和操作码,FIP是段内偏移值。后两个寄存器... 查看全部[ 出错指针寄存器 ]

math_emulate.c程序

    math_emulate.c程序中的所有函数可分为3部分:第一类是设备不存在异常处理程序接口函数math_emulate(),只有这一个函数;第二类是浮点指令仿真处理主函数do_emu(),也只有一个函数;另外所有函数都是仿真运算辅助类函数,包括其余几个C语言程序中的函数。     在一台不... 查看全部[ math_emulate.c程序 ]