操作系统
li4850729
这个作者很懒,什么都没留下…
展开
-
tr寄存器
转自:http://hi.baidu.com/cnppk/blog/item/7c88c911b8fd302734fa41c8.html 任务寄存器tr保存 16 位的段选择子、32 位基地址、16 位段界限和当前任务的 TSS属性。它引用 GDT 中的 TSS 描述符。基地址指明 TSS 的第一个字节(字节 0)的线性地址,段界限确定 TSS 的字节个数。TR寄存器包含了当前正在CPU运转载 2012-07-17 11:33:26 · 2883 阅读 · 0 评论 -
汇编字符串处理指令 一
转自:http://blog.csdn.net/cay22/article/details/7429830一、字符串处理指令(1) lodsb、lodsw:把DS:SI指向的存储单元中的数据装入AL或AX,然后根据DF标志增减SI(CLD递增, STD递减)(2) stosb、stosw:把AL或AX中的数据装入ES:DI指向的存储单元,然后根据DF标志增减DI(CLD递增, STD递转载 2012-07-30 15:32:49 · 3268 阅读 · 0 评论 -
软盘结构(磁头号和起始扇区的计算方法)
转自:http://blog.csdn.net/littlehedgehog/article/details/2147361;----------------------------------------------------------------------------; 函数名: ReadSector;---------------------------------------转载 2012-07-28 13:29:19 · 1532 阅读 · 1 评论 -
IRET/IRETD - 中断返回
转自:http://scc.qibebt.cas.cn/docs/optimization/VTune(TM)%20User's%20Guide/mergedProjects/analyzer_ec/mergedProjects/reference_olh/instruct32_hh/vc143.htmhttp://szkn28szkn.iteye.com/blog/1362460说明转载 2012-08-06 21:06:11 · 11943 阅读 · 0 评论 -
一致性/非一致性代码段的总结
关于一致性代码段和非一致性代码段的由来:http://wenda.tianya.cn/wenda/thread?tid=0cc76471fd94f119 代码段分为一致代码段和非一致代码段,这会对特权级比较产生影响,是否一致由段描述符的第42位决定。数据段和代码不同,它总是非一致的。代码段只在作为被访问一方(或者说目标代码段)时一致性才会对特权级比较产生影响,在作为访问一方时没有区别。是否原创 2012-07-13 14:41:03 · 2359 阅读 · 0 评论 -
系统调用全过程分析
参考:http://man.lupaworld.com/content/develop/joyfire/kernel/6.html参考:http://blog.csdn.net/zhangwenjianqin/article/details/7637354 通过这两篇文章就能对比如,调用fork()函数,他的整个调用过程有很清晰的认识。原创 2012-08-05 17:55:21 · 493 阅读 · 0 评论 -
8086寄存器总结
转自:http://blog.sciencenet.cn/blog-618303-510346.html 在8086的EU--执行单元(Execution Unit)和BIU--总线接口单元(Bus Interface Unit)两部分中包含有一些工作寄存器,这些寄存器用来存放计算过程中的各种信息,如操作数地址、操作数及运算的中间结果等。微处理器从寄存器中存取数据比从存储器中存取数据要快的转载 2012-07-18 11:07:37 · 5265 阅读 · 0 评论 -
linux0.11学习笔记-技术铺垫-简单AB任务切换程序(5)-实现三个任务切换
转自:http://www.cnblogs.com/linucos/archive/2012/04/14/2447054.html上篇我们实现了时钟中断的响应,以及输出简单的字符功能。本篇我们实现系列文章的最终目的:任务切换。任务切换在x86上,硬件给提供了硬件支持,简单可行。涉及到tss切换,并自动实现了ldt切换。非常简单。1. 看代码head.sSCRN_SEL = 0x转载 2012-07-19 15:05:42 · 1224 阅读 · 0 评论 -
lea指令
转自:http://blog.163.com/strive_only/blog/static/8938016820119318385213/加载有效地址(load effective address)指令lea实际上是mov指令的变形。它的指令形式是从存储器读数据到寄存器,但实际上根本没有引用存储器。它的第一个操作数看上增是一个存储器引用,但该指令并不是从指定的位置读入数据,而是奖有效地址写入转载 2012-07-19 10:16:54 · 862 阅读 · 0 评论 -
linux0.11学习笔记-技术铺垫-简单AB任务切换程序(1)-实现一个简单的bootloader
转自:http://www.cnblogs.com/linucos/archive/2012/04/01/2428262.html 直接看代码,即使已经理解了代码,但是还是会有种没有学到手的感觉.真正的掌握来自实践,来自己动手做出来.“简单AB任务切换程序”系列文章的目的是,在bochs下,实践出简单AB两个任务的切换.1. bochs安装或者编译参考Ubuntu10.04搭建li转载 2012-07-18 14:57:48 · 1237 阅读 · 0 评论 -
linux0.11学习笔记-技术铺垫-简单AB任务切换程序(3)-调试手段和方法
转自:http://www.cnblogs.com/linucos/archive/2012/04/01/2428862.html 写底层代码,我们需要特别的手段去调试,去debug.本文针对几种应用场景,介绍几种手段.1. 查看文件的二进制值 - hexdump命令以文章(2)中的head程序为例子ld head.o -m elf_i386 -Ttext 0 -e start转载 2012-07-18 15:00:41 · 556 阅读 · 0 评论 -
Ubuntu10.04搭建linux-0.11编译环境(1.bochs安装和使用)
转自:Ubuntu10.04搭建linux-0.11编译环境(1.bochs安装和使用)oldlinux发布的bochs配置文件与Ubuntu10.04上的bochs版本不匹配,造成配置文件解析的一系列问题,本文解决此类问题.1. 安装bochs sudo apt-get install bochs vgabios bochs-x bochsbios bochs-doc b转载 2012-07-18 14:55:59 · 1203 阅读 · 0 评论 -
段选择器 段描述符 段描述符表 线性地址形成
转自:http://hi.baidu.com/%B7%E7%D6%AE%D2%E2/blog/item/02f0c71a473bb1bf4bedbc5d.html段选择器:32位汇编中16位段寄存器(CS、DS、ES、SS、FS、GS)中不再存放段基址,而是段描述符在段描述符表中的索引值,D3-D15位是索引值,D0-D1位是优先级(RPL)用于特权检查,D2位是描述符表引用指示位TI,TI=转载 2012-07-18 19:34:18 · 1050 阅读 · 0 评论 -
Ubuntu10.04搭建linux-0.11编译环境(2.bochs编译)
转自:http://www.cnblogs.com/linucos/archive/2012/03/31/2426927.htmlubuntu10.04上自带的bochs不能调试,需要自行编译带有调试功能的bochs.1.源码bochs-2.4.6.tar.gz2.安装依赖库sudo apt-get install build-essential xorg xorg-dev g转载 2012-07-18 14:55:00 · 529 阅读 · 0 评论 -
linux0.11学习笔记-技术铺垫-简单AB任务切换程序(2)-可加载执行其他程序的bootloader
转自:http://www.cnblogs.com/linucos/archive/2012/04/01/2428402.html 上篇文章我们完成了一个简单的bootloader,与其说是bootloader,不如说是boot,本篇我们完成loader部分功能.loader部分是在boot部分基础上,通过到约定好的启动盘位置上读数据载入内存,达到loader的目的。到启动盘读数据是bio转载 2012-07-18 14:59:49 · 649 阅读 · 0 评论 -
关于PTR的说明
转自:http://blog.csdn.net/elevenxjz/article/details/64671338086CPU的指令,可以处理两种尺寸的数据,byte和word。所以在机器指令中要指明,指令进行的是字操作还是字节操作。对于这个问题,汇编语言中用一下方法处理。(1)通过寄存器名指明要处理的数据的尺寸。例如:下面的指令中,寄存器指明了指令进行的是字操作是字操作:m转载 2012-07-18 11:15:10 · 1391 阅读 · 0 评论 -
汇编,ret retf iret指令
RET : CALL 的返回,Pop IP from Stack; RETF: FAR RET, Pop IP and CS from Stack; IRET: Interrupt RET, Pop IP, CS and Flag register.原创 2012-08-02 10:03:49 · 4195 阅读 · 0 评论 -
32位保护模式下的寻址方式
转自:http://blog.sina.com.cn/s/blog_65db99840100lc6g.html 16位实模式下,一个物理地址由段地址和偏移地址两部分组成,段地址在16位段寄存器中,然后在指令中用16位偏移地址寻址。物理地址=段地址*0x10+偏移地址 ------关于“实模式与保护模式”定义的相关内容,参看:http://www.cppblo转载 2012-08-02 09:17:42 · 1877 阅读 · 0 评论 -
内核熵池entropy pool
随机数在许多领域都有重要应用,如Monte Carlo模拟、密码学和网络安全。随机数的质量直接关系到网络安全系统的可靠性和安全性,关系到 Monte Carlo模拟结果的可信度。自从计算机诞生起,寻求用计算机产生高质量的随机数序列的研究就一直是个长期受到关注的课题。Linux内核从 1.3.30版本开始实现了一个高强度的随机数发生器,本文根据Linux 2.6.10内核的源代码,详细分析该随机数产转载 2013-08-26 11:24:10 · 3477 阅读 · 0 评论