摘要: Windows XP Professional计算机启动过程概述从按下计算机开关启动计算机,到登入到桌面完成启动,一共经过了以下几个阶段:1. 预引导(Pre-Boot)阶段;2. 引导阶段;3. 加载内核阶段;4. 初始化内核阶段;5. 登陆。--------------------------------------------------------------------------------每个启动阶段的详细介绍a) 预引导阶段在按下计算机电源使计算机启动,并且在Windows XP专业版操作系统启动之前这段时间,我们称之为预引导(Pre-Boot)阶段,在这个阶段里,计算机首先运 阅读全文
posted @ 2014-01-21 12:51 晨曦语晴 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 人们在使用电脑时,有时由于异常操作,有时由于病毒侵袭,会导致某个分区消失或硬盘无法启动。究其原因,就是硬盘分区表受损。硬盘分区表可以说是支持硬盘正常工作的骨架.操作系统正是通过它把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,写入数据文件.本文主要讲述的是分区表的位置,结构以及各个分区表是如何链接起来的.当掌握了这些知识后,即使分区表受到破坏,一样也可以根据残存的数据手工修复分区表,从而修复分区。一.分区表的位置及识别标志 分区表一般位于硬盘某柱面的0磁头 1扇区.而第1个分区表(也即主分区表)总是位于 (0柱面,1磁头,1扇区),剩余的分区表位置可以由主分区表依次推导出来.分区表. 阅读全文
posted @ 2014-01-21 12:50 晨曦语晴 阅读(1823) 评论(0) 推荐(0) 编辑
摘要: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 主引导记录(MBR)的反汇编分析;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MBR代码分析网上早就有了,但我找到的都是针对老版MBR的分析。这里所谓的老版MBR,指的是早期的MBR,那时大容量硬盘还没有出现,MBR使用传统的Int 13h接口访问硬盘。随着硬盘容量越来越大,传统的Int 13h已经无法完全访问硬盘上所有扇区(Int 13h接口理论上可访问的最 阅读全文
posted @ 2014-01-21 12:23 晨曦语晴 阅读(1690) 评论(0) 推荐(0) 编辑
摘要: (一)巴什博弈(BashGame):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。很容易想到当n%(m+1)0时,先取必胜,第一次先拿走n%(m+1),以后每个回合到保持两人拿走的物品总和为m+1即可。这个游戏还可以有一种变相的玩法:两个人轮流报数,每次至少报一个,最多报十个,谁能报到100者胜。(二)威佐夫博弈(WythoffGame):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。如果甲面对(0,0),那么甲已经输了,这种局势我们称为奇异局势。前几个奇异局势是:(0,0)、( 阅读全文
posted @ 2014-01-21 12:16 晨曦语晴 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 广度优先搜索(BFS)的原理和应用二叉树中的层序遍历就属于一种BFS(Board First Search)层序遍历会得到ABCDEFG的层序优先序列(BFS序列)。在层序遍历过程中,可以注意到先访问的节点的孩子节点必然先被访问(如访问了A后访问B和C,那么B的孩子结点一定在C的孩子结点前被访问――仅针对下一层的孩子而言)。据这个特性,可以用队列来实现这个遍历。void Layer(bitree *p){queue Q; //定义一个队列node *N;Q.push(*p); //起始点入队while(!Q.empty()){N=Q.front();Q.pop();coutdatalchild 阅读全文
posted @ 2014-01-21 12:13 晨曦语晴 阅读(529) 评论(0) 推荐(0) 编辑
摘要: 我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数。还比如我们通过记录函数或者算法开始和截至的时间,然后利用两者之差得出函数或者算法的运行时间。编译器和操作系统为我们提供了很多时间函数,这些时间函数的精度也是各不相同的,所以,如果我们想得到准确的结果,必须使用合适的时间函数。现在我就介绍windows下的几种常用时间函数。1:Sleep函数使用:sleep(1000),在Windows和Linux下1000代表的含义并不相同,Windows下的表示1000毫秒,也就是1秒钟;Linux 阅读全文
posted @ 2014-01-21 12:09 晨曦语晴 阅读(340) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #define DRIVER_NAME "123467"#define DRIVER_PATH "..\\HelloDDK.sys"//装载NT驱动程序BOOL LoadNTDriver(char* lpszDriverName,char* lpszDriverPath){/************************ 加载NT驱动的代码******************************* ① 调用OpenSCManager,打开SCM管理器.如果返回NULL,则返回失 阅读全文
posted @ 2014-01-21 12:06 晨曦语晴 阅读(1028) 评论(0) 推荐(0) 编辑
摘要: 1、稳定排序和非稳定排序简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就说这种排序方法是稳定的。反之,就是非稳定的。比如:一组数排序前是a1,a2,a3,a4,a5,其中a2=a4,经过某种排序后为a1,a2,a4,a3,a5,则我们说这种排序是稳定的,因为a2排序前在a4的前面,排序后它还是在a4的前面。假如变成a1,a4,a2,a3,a5就不是稳定的了。2、内排序和外排序在排序过程中,所有需要排序的数都在内存,并在内存中调整它们的存储顺序,称为内排序;在排序过程中,只有部分数被调入内存,并借助内存调整数在外存中的存放顺序排序方法称为外排序。3、算法的时间 阅读全文
posted @ 2014-01-21 12:05 晨曦语晴 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 在Debian不同,Ubuntu下安装bochs的文件路径与前者不同,需要稍加变化在安装过程,还要重新下载一下bochs编译的文件================================================================================= 我的安装过程主要参照了ubuntu中文论坛里面的一篇帖子(http://forum.ubuntu.org.cn/viewtopic.php?f=65&t=177608&start=0) 一、准备工作 1.bochs是由C++编写的,我们要安装相应的编译环境,否则的话在make的时候会出现“ 阅读全文
posted @ 2014-01-21 12:00 晨曦语晴 阅读(882) 评论(0) 推荐(0) 编辑
摘要: 突然发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码#include using namespace std;main(){char *c1 = "abc";char c2[] = "abc";char *c3 = ( char* )malloc(3);c3 = "abc";printf("%d %d %s\n",&c1,c1,c1);pri 阅读全文
posted @ 2014-01-21 11:58 晨曦语晴 阅读(4533) 评论(0) 推荐(1) 编辑