给一个很有趣的进程并发性的小例子: 一共开了三个进程,分别打印X, Y,Z,看运行结果(每次都是随机的) ...
分类:
系统相关 时间:
2016-10-21 10:26:16
阅读次数:
314
这个问题折腾了一整天,快下班时候终于解决。事情缘由:一台E6430笔记本,早上把系统重装为win101607后,默认扬声器没有声音,但是接上耳机有声音。解决方法:IDT网卡驱动对win10不兼容,导致无法正常使用,网上的方法是去官网下载win7,win8对应64位驱动安装即可。声卡驱动:ID..
fdisk:对于一块硬盘来讲,最多只能管理15个分区fdisk-l[-u][device...]fdiskdevice子命令:管理功能p:print,显示已有分区:n:new,创建d:delete,删除w:write,写入磁盘并退出q:quit,放弃更新并退出m:获取帮助l:列表,列出所有分区idt:调整分区id查看内核是否已经识别新的分区,ca..
分类:
其他好文 时间:
2016-09-20 18:14:38
阅读次数:
179
harib03a: 内容没有变化 ;P109 从这里开始,代码开始工程化了. 将原本300多行的bootpack.c分割成了三部分: graphic.c : 用来处理界面图像 dsctbl.c : 用来处理中断和段表(GDT,IDT)等 bootpack.c : 和后面的bootpack.h文件一起 ...
分类:
其他好文 时间:
2016-08-18 23:08:24
阅读次数:
199
对于CPU级的异常,CPU会通过IDT表寻找异常的处理函数,也就是KiTrapXX例程,会调用CommonDispatchException准备参数,然后调用内核分发函数KiDispatchException进行异常分发。 下面的图是内核异常分发总管KiDispatchException处理的流程。 ...
分类:
其他好文 时间:
2016-08-06 19:07:11
阅读次数:
1390
当有异常发生时,CPU会通过IDT表找到异常处理函数,即内核中的KiTrapXX系列函数,然后转去执行。但是,KiTrapXX函数通常只是对异常做简单的表征和描述,为了支持调试和软件自己定义的异常处理函数,系统需要将异常分发给调试器或应用程序的处理函数。 为了更好的管理异常,Windows系统定义了 ...
这节讲了中断与异常的一些基本概念。然后通过代码实现一个显示字符的中断和时钟中断。
实模式与保护模式下的中断有区别
保护模式下的中断与实模式下的中断有几点不同。
实模式下的中断向量表在保护模式下被IDT取代实模式下可以使用BIOS中断,而保护模式下不能用
这里面出现了一个新的名词IDT,接下来就介绍什么是IDT。
中断描述符表(IDT,Interrupt
Des...
分类:
其他好文 时间:
2016-06-10 11:09:30
阅读次数:
316
搞内核研究的经常对中断这个概念肯定不陌生,经常我们会接触很多与中断相关的术语,按照软件和硬件进行分类: 硬件CPU相关: IRQ、IDT、cli&sti 软件操作系统相关: APC、DPC、IRQL 一直以来对中断这一部分内容弄的一知半解,操作系统和CPU之间如何协同工作也是很模糊。最近花了点时间认 ...
IDT是处理异常,实现操作系统与CPU的交互的关口。 系统在初始化阶段会去填写这个结构。 IDT的每一个表项都成为门描述符,因为IDT的功能就像大门一样,从一个空间跳到另一个空间去执行。 IDT中包含三种门描述符 任务门描述符:用于任务切换 中断门描述符:用于描述中断处理例程 陷阱们描述符:用于描述 ...
对于IDT第一次的认知是int 2e ,在系统调用的时候原来R3进入R0的方式就是通过int 2e自陷进入内核,然后进入KiSystemService函数,在根据系统服务调用号调用系统服务函数。而2e就是IDT(系统中断描述符表)中的索引位2e的项,而KiSystemService就是该项的例程函数 ...
分类:
其他好文 时间:
2016-04-03 22:01:05
阅读次数:
206