1。你要开发一个系统内核?
2。还是你要开发一些例如杀毒软件那样可以监控线程,调度程序,windows 的任务管理器那样的东西?
如果是第一个,你要开发个系统内核,那么需要很多硬件知识,不仅看那些类似于《linux 内核设计与实现》(这类书看后你只能通过linux原内核进行修改,改出自己想要的版本,从头开始一个内核却少了很多硬件知识),你还得看很多类似《intel 微处理器》(你为什么机器开发,你就用去找该类型机器的硬件方面的书)这样的书,最后还得看你各人的造诣了,写出来的系统内核好坏全凭个人能力。
要是你要的是第二种,关于调用某 *** 作系统内核编程的话。
例如《windows核心编程》里面就讲解了很多关于windows 内核编程的 *** 作,例子也有不少。
里面就提及了很多 内存分配 线程调度 如何使用钩子 同步啊 异步啊什么的 *** 作,你可以自己去看看。
就《windows 核心编程》里面就提到了4种结束进程的方法:
1。主线程的进入点函数返回(最好用这种方法,也就是你调用的进程的main或WinMain函数自己返回结束了进程)
2.你要关闭的进程调用了ExitProcess函数,自己结束了自己(应该避免运用这种方法)
3.其他进程调用TerminateProcess函数来结束你要关闭的进程(应该避免使用)
4.进程中的进程终止运行。(这种情况基本没有发生过)
从书里的这4个方法可以看出其实让进程主函数自己返回是最好的,例如用PostMessage函数向一个只要主窗口被关闭就自动结束的进程发送一个WM_CLOSE消息来通知它“喂,你可以关闭主窗口了,关闭后你也自己关闭吧”,如果该窗口没有在WM_CLOSE消息里d出个是否关闭的d窗询问客户,而是直接调用DestroyWindow函数关闭了窗口,那么顺着主窗口的关闭,收到了WM_QUIT消息的GetMessage和TranslateMessage、DispatchMesssage函数结束了信息回圈返回了WinMain函数,进程就此就结束了。
其实上面的方法只是我突然想到的,其实你可以去看看《windows 核心编程》里面有更多可能是你想找的东西
电脑蓝屏的原因以及解决方案,希望对您对有帮助根据成因大致可以分为软件和硬件两个方面。现在还是遵循先软后硬的原则来看看故障的成因和解决办法吧!
一、软件引起的蓝屏故障
1.重要文件损坏或丢失引起的蓝屏故障(包括病毒所致)。
解决方法一:记下所丢失或损坏的文件名�用Win98启动盘中的“Ext”命令从Win98安装盘中提取和恢复被损坏或丢失的文件,步骤如下:
(1)用Win98启动盘引导计算机,在提示符下敲入“Ext”命令。
(2)在提示“Please enter the path to the Windows CAB files( a):”后输入Win98安装压缩包所在的完整路径,如“F�\Pwin98\Win98”,完成后回车。
(3)在提示“Please enter the name(s)of the file(s) you want to extract:”后输入你记下的丢失文件名,如“Bios.Vxd”,回车。
(4)在解压路径提示“Please enter path to extract to(‘Enter’ for current directory):”后输入文件将被解压到的完整路径,如“C� \Windows\System”并敲回车。
(5)最后出现确认提示“Is this Ok?(y/n):”,输入“y”后回车。“Ext”程序会自动查找安装盘中的CAB压缩包,并将文件释放到指定的位置。
(6)重新启动即可。
解决方法二:用杀毒软件杀毒。有的病毒可能会破坏注册表项�杀毒后注册表应恢复中毒之前的备份。
解决方法三:如果能启动图形界面,可以采取重装主板以及显卡的驱动程序,和进行“系统文件扫描”来恢复被破坏或丢失的文件。“系统文件扫描”的方法为�单击“开始/程序/附件/系统工具/系统信息/工具/系统文件检查器”,然后扫描改动过的文件即可。
2.注册表损坏导致文件指向错误所引起的蓝屏。
实例:注册表的擅自改动(包括人为地改动和软件安装时的自动替换)�其现象表现为开机或是在调用程序时出现蓝屏,并且屏幕有出错信息显示(包含出错的文件名)。
解决方法一:恢复备份。
(1)单击“开始/关机/重新启动计算机并切换到MS-DOS方式”,然后单击“是”;
(2)进入Windows目录下。例如,如果你的Windows安装
在“C�\Windows” 目录下,应键入以下内容�“CD C�\WINDOWS”后回车;
(3)键入“SCANREG\RESTORE”后回车。
(4)按照上述步骤,可以将注册表恢复到最近一次启动计算机时的状态。
解决方法二:删除键值。
如果是在卸载程序后出现蓝屏的话,笔者断定故障是由于程序卸载不完善造成的。解决这类问题非常简单,首先你要记下出错的文件名,然后再到注册表中找到以下分支“HKEY_LOCAL_MACHINE\System
\CurrentControlSet\Services\VxD”。在“查找”中输入刚才的文件名,把查到的键值删除即可。此时,千万不要忘记备份注册表哦!
3.System.ini 文件错误引起的“蓝屏”。
解决方法:禁用注册表中该项或是重新安装相应的软件或驱动程序。
4.Win98自身的不完善造成的蓝屏。
解决方法:快去下载吧,如华军网站http�//nj.onlinedown.net/Win98SP1.htm�Win98sp1 及http�//nj.onlinedown.net/Windows98VxDpatch.htm� Vxd_fix.exe 。
5.系统资源耗尽引起的蓝屏故障。
解决方法:打开你的资源状况监视器,看一下剩余资源,如果你的三种资源都在50%甚至更低,就很容易出现诸如“非法 *** 作”、“蓝屏”或“死机”故障。为此,必须减少资源浪费,减少不必要的程序加载,避免同时运行在“C�\Windows” 目录下,应键入以下内容�“CD C�\WINDOWS”后回车;
6.DirectX问题引起的蓝屏故障。
解决方法:升级或是重装DirectX。如果是显卡不支持高版本的DirectX那就说明你的显卡实在是太老了,尝试更新显卡的BIOS和驱动程序,否则,只好花钱升级显卡了。
二、硬件引起的蓝屏故障
1.内存超频或不稳定造成的蓝屏。
实例:随机性蓝屏。
解决方法:先用正常频率运行,若还有问题。找一根好的内存条进行故障的替换查找,一般可以解决。再就是应当注意当CPU离内存很近时内存的散热问题。 2.硬件的兼容性不好引起的蓝屏。
兼容机好就好在它的性价比较高,坏就坏在它在进行组装的时候,由于用户没有完善的监测手段和相应的知识,无法进行一系列的兼容性测试,从而把隐患留在了以后的使用过程中。
实例:升级内存时,将不同规格的内存条混插引起的故障。
解决方法:注意内存条的生产厂家、内存颗粒和批号的差异,往往就是因为各内存条在主要参数上的不同而产生了蓝屏或死机,甚至更严重的内存故障。也可以换一下内存条所插的插槽位置。如果内存条还是不能正常工作,那就只好更换了。此处,提醒各位:内存在整个微机系统中起着非常重要的作用,它的好坏将直接影响到系统的稳定性,所以在内存的选购时要注意,最好是有内行人陪伴,避免买到Remark过的条子或频率过低的条子。 3.硬件散热引起的“蓝屏”故障。
实例:在微机的散热问题上所出现的故障,往往都有一定规律,一般在微机运行一段时间后才出现,表现为蓝屏死机或随意重启。故障原因主要是过热引起的数据读取和传输错误。
解决方法:采取超频的应降频,超温的应降温。其实不一定所有的故障都那么复杂,有时候从简单的方面考虑,也能很好地解决问题�要学会触类旁通。
4.I/O冲突引起的蓝屏现象。
解决方法:这种现象出现得比较少,如果出现了,可以从系统中删除带!号或?号的设备名,重新启动计算机进行确认,或者请高手手动分配系统资源。
凡事要防患于未然,下面是笔者总结出来的一些经验,可供大家参考:
1 定期对重要的注册表文件进行手工备份,避免系统出错后,未能及时替换成备份文件而产生不可挽回
的错误。
2 尽量避免非正常关机,减少重要文件的丢失。如.VxD .DLL文件等。
3 对普通用户而言,只要能正常运行,没有必要去升级显卡、主板的BIOS和驱动程序,避免升级造成的危害。
4 定期检查优化系统文件,运行“系统文件检查器”进行文件丢失检查及版本校对。检查步骤参见前面相关介绍。
5 减少无用软件的安装,尽量不用手工卸载或删除程序,以减少非法替换文件和文件指向错误的出现。
6 如果不是内存特别大和其管理程序非常优秀,尽量避免大程序的同时运行,如果你发现在听MP3时有沙沙拉拉的声音,基本可以判定该故障是由内存不足而造成的
内核是 *** 作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件 *** 作多长时间。内核的分类可分为单内核和双内核以及微内核。
严格地说,内核并不是计算机系统中必要的组成部分。内核,是一个 *** 作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
程序可以直接地被调入计算机中执行,这样的设计说明了设计者不希望提供任何硬件抽象和 *** 作系统的支持,它常见于早期计算机系统的设计中。
最终,一些辅助性程序,例如程序加载器和调试器,被设计到机器核心当中,或者固化在只读存储器里。这些变化发生时, *** 作系统内核的概念就渐渐明晰起来了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)