深入解析windows操作系统

时间:2024-10-13 11:43:44编辑:奇事君

有没有好的操作系统的书

全名Operating Systems: Three Easy Pieces
威斯康星的研究生教材,把os分成虚拟化、并发性、持久化,三方面来讲,其实写的很入门,完全就能当本科教材或者自学。每一个主题都是从历史沿革来讲,最初什么方法,如何实现的(真的是实际实现),解决了什么问题,有什么缺点,针对这些缺点人们提出了哪些方法来改进。还给了各种metric。每章末尾还给了相关领域应该看那些著名论文或者教材。
Modern Operating Systems 4th,这本书是教材,Tanenbaum 是谁不用多说了吧,估计 Linus 见了他也得叫一声老师。这本书理论性较强,讲的是普遍原理,但是不够深入,如调度算法等等,有时就是一句话,但是不会跟你说明具体实现。不过是一本操作系统入门的好教材。



2. Operating System Concepts 9th,这本书也叫“恐龙书”,名气与第一本齐名,也是教材,第九版对比前书第三版 (第四版我没看) 来说更好,对于算法的解释更详细,但是对于一些特别基础的东西,比如 MMU 工作起来大概是什么样子的等描述不如第一本详细。

3. Operating Systems Design and Implementation 3rd,还是 Tanenbaum 的书,主要基于 Minix 讲操作系统实现,这本书比前两本书,要落地一些,理论性不是那么强。但是建议你看完前两本任意一本再看这本。


4. 下面就是一些特定平台的书了,基于以上理论,这些书对于特定平台的实现讲的非常深入,比如都是内核,OS X,Windows 实现有何不同,你就要看这些了

比如 Windows,你要看 Windows Internals 6th


比如 OS X,你要看 Mac OS X Internals: A Systems Approach



或 Mac OS X and iOS Internals: To the Apple's Core



移动操作系统,iOS 没有什么特别好的书,因为是闭源的,但是由于其和 OS X 同源,很多东西你可以参考 OS X 以及 XNU 源代码。Android 我不关心也没兴趣,也不知道,Windows 要问做 WP 开发的朋友。

另外,看这些书,你要有一些 C 语言的功底,不然一些例子什么的你搞不定,还要有点汇编语言的知识,不然源代码很多你也看不太懂。


另外,如果觉得这些书很贵,可以到诸如 MIT 等大学网站找操作系统课程的讲义看,都非常不错。免费。


好的有关操作系统的书有什么?

全名Operating Systems: Three Easy Pieces\x0d\x0a威斯康星的研究生教材,把os分成虚拟化、并发性、持久化,三方面来讲,其实写的很入门,完全就能当本科教材或者自学。每一个主题都是从历史沿革来讲,最初什么方法,如何实现的(真的是实际实现),解决了什么问题,有什么缺点,针对这些缺点人们提出了哪些方法来改进。还给了各种metric。每章末尾还给了相关领域应该看那些著名论文或者教材。\x0d\x0aModern Operating Systems 4th,这本书是教材,Tanenbaum 是谁不用多说了吧,估计 Linus 见了他也得叫一声老师。这本书理论性较强,讲的是普遍原理,但是不够深入,如调度算法等等,有时就是一句话,但是不会跟你说明具体实现。不过是一本操作系统入门的好教材。\x0d\x0a\x0d\x0a2. Operating System Concepts 9th,这本书也叫“恐龙书”,名气与第一本齐名,也是教材,第九版对比前书第三版 (第四版我没看) 来说更好,对于算法的解释更详细,但是对于一些特别基础的东西,比如 MMU 工作起来大概是什么样子的等描述不如第一本详细。\x0d\x0a\x0d\x0a3. Operating Systems Design and Implementation 3rd,还是 Tanenbaum 的书,主要基于 Minix 讲操作系统实现,这本书比前两本书,要落地一些,理论性不是那么强。但是建议你看完前两本任意一本再看这本。\x0d\x0a\x0d\x0a4. 下面就是一些特定平台的书了,基于以上理论,这些书对于特定平台的实现讲的非常深入,比如都是内核,OS X,Windows 实现有何不同,你就要看这些了\x0d\x0a\x0d\x0a比如 Windows,你要看 Windows Internals 6th\x0d\x0a\x0d\x0a比如 OS X,你要看 Mac OS X Internals: A Systems Approach\x0d\x0a\x0d\x0a或 Mac OS X and iOS Internals: To the Apple's Core\x0d\x0a\x0d\x0a移动操作系统,iOS 没有什么特别好的书,因为是闭源的,但是由于其和 OS X 同源,很多东西你可以参考 OS X 以及 XNU 源代码。Android 我不关心也没兴趣,也不知道,Windows 要问做 WP 开发的朋友。\x0d\x0a\x0d\x0a另外,看这些书,你要有一些 C 语言的功底,不然一些例子什么的你搞不定,还要有点汇编语言的知识,不然源代码很多你也看不太懂。\x0d\x0a\x0d\x0a另外,如果觉得这些书很贵,可以到诸如 MIT 等大学网站找操作系统课程的讲义看,都非常不错。免费。


浅谈Windows7日志的上限及覆盖原则

  日志的重要性已经深入人心。但是随着时间的延长,整个事件日志所占用的空间也在不断的膨胀之中。为此需要为日志文件设置一个最大的上限值,防止其占用过多的硬盘空间。这不仅是中浪费,给给阅读造成了一定的障碍。而且不同的日志文件其重要性也不同。为此系统管理员要根据日志文件的重要性、硬盘空间、部署的应用等情况,来确定每个日志文件的最大上限以及日志覆盖的原则。在这方面,Windows7比Windows2003有一定的改进。笔者接下去就谈谈在Windows7中如果做好日志文件的限制,着重会谈谈其在这方面的一些改进。   如上图,这就是Windows7日志文件的管理界面。在Windows7操作系统中,可以针对每个日志文件来定义上面这些设置。由于操作系统中的日志文件比较多,而且每个日志文件专门记录某部分内容。为此其重要性、记录容量等等都是不同的。为此作为系统管理员,就需要了解每个日志文件的内容、重要性等等,然后根据这些情况来确定上面这些控制因素。对于单机操作系统来说,其日志文件往往是保存在系统盘中。所以日志文件不能够占用太多的空间,否则的话会影响到操作系统的运行性能。   一、日志文件的上限设置。   系统管理员可以分别为每个日志文件设置其最大占用的硬盘空间。设置的方法很简单,只需要选择对应的日志文件,然后点击右键,然后选择属性,就会弹出上面这个对话框。然后就可以看到一个选项,叫做日志最大大小。在后面的文本框中可以输入日志文件的'最大限制。在设置这个上限的时候,主要需要注意两个方面的内容。   首先,这里输入的数字必须是64的倍数。如上面输入的20480,其就是64的320倍。如果我们在这里输入的数字不是64的倍数,如输入为20481,系统就会提示错误信息:“日志大小值的增量必须为64KB,并且必须大于零。日志大小将设置为64KB的最小倍数”。按确定以后,这个值就会自动更改为最接近这个64倍数值。如笔者输入20416然后按确定,这个值就会自动变为20416。这个限制条件系统管理员需要引起一定的关注。   其次,日志文件并不是越大越好。虽然说日志文件大的话,可以记录全部的事件信息。但是,其也会给以后的阅读带来麻烦。在大量记录中查找所需要的内容,并不是一件容易的事情。而且日志占用太多的系统盘空间,也会影响操作系统的性能。为此对于这个日志空间的大小,要进行合理的限制。不过这个到底多少合适,也没有一个统一的标准。往往需要系统管理员根据自己的经验,并结合在操作系统上部署的具体应用,来确定该把这个日志文件大小设置为多少合适。不过总的来说,日志空间在系统盘上占用的空间,最好不要超过5%。   二、日志文件达到限值时的处理方式。   在上面这个窗口中,在定义了日志文件的限值后,还需要同时定义如果达到这个限值的话,该如何处理。在Windows7操作系统中这里有三个选项。其选项的种类跟2003操作系统是相同的。但是其在一些选项的设置上跟2003有所不同。   一是按需要覆盖事件(旧事件优先)。也就是说,当日志文件达到上限时,会把一些旧的日志文件记录删除掉,以存储新的日志信息。这个选项跟2003操作系统类似。不过这里需要注意的是,如果选择这个选项的话,那么对于日志空间的大小需要特别的注意。如在Windows7 中有一个防火墙日志,如果系统启用了防火墙,而且这台操作系统网络通信比较频繁的话,那么这个日志空间的上限就需要设置的大一点。否则的话,当系统遇到故障时,可能无法查到一些有用的信息,因为这些信息已经被覆盖掉了。   二是不覆盖事件。当日志文件达到上限值之后,系统不会继续记录新的事件信息。需要系统管理员手工清楚日志文件后,系统才会记录记录日志信息。显然这不是很好的处理方式。除非有特殊的需要,最好不要选择这个选项。   三是日志满时将其存档,不覆盖事件。这个选项是2003操作系统中没有的,在Windows7操作系统中新增加的选项。笔者个人认为,这个选项非常实用。对于一些稳定性要求比较高档服务器,对一年甚至更长时间的日志进行存档是必须的。如一些文件访问的审核日志等等。如果选择了这个选项,那么到日志文件的大小达到上限时,操作系统不会覆盖原有的日志记录。而是先把旧的日志记录进行存档,然后再利用新的日志信息来覆盖旧的日志信息。此时如果系统管理员需要查看比较旧的日志信息,如去年这个时候的日志,那么就可以去查看相关的归档文件,这确实是Windows7种一个很有吸引力的改进。   不过Windos7种删除了2003操作系统中的某个选项,即“覆盖事件超过多少天的事件”。如我们可以把这个事件设置为30。则当日志文件满了时,系统会自动把30天以前的记录空间释放出来,以方便存储新的记录信息。其实这个选项虽然有一些不足的地方,如当日志空间满了时但是还没有达到这个天数的日志信息,此时该如何处理?不过在某些应用场合,这个选项还是比较有用的。如在一台专门的日志服务器中记录日志文件的话,此时由于日志文件的空间大小不怎么受限制(至少没有在本机上保存日志文件那么多的限制),为此这个选项就非常的有用。其在限制最大空间的同时,可以保障日志信息能够保留一段时间,如最少30天等等。笔者想不通,为什么微软操作系统的专家会把这个选项去除掉。   三、部署完操作系统后要及时的清空日志。   有时候,给用户部署好操作系统后,如果有必要的话,最好手工把日志文件清空掉。右键点击相关日志,然后选择属性。在打开对话框中,有一个“清除日志”的按钮。系统管理员只需要点一下这个按钮,系统就会自动清除相关的日志文件。   这主要是因为在部署完操作系统后,由于测试等需要,会在短时间内产生比较多的日志记录。而且这些日志信息也不能够反映企业应用的实际情况。如果把它们放在那边的话,反而会给以后的工作带来误导。为此,笔者认为比较理想的方法就是,系统管理员先对这些日志文件进行备份。然后再清空日志文件。当把这个操作系统交给企业用户使用的时候,就是一个比较干净的部署好相关应用的操作系统。那么以后需要阅读相关日志的时候,由于原先的测试时的一些事件日志没有在日志中体现出来,这对于系统管理员阅读日志、解决系统与服务故障是非常有帮助的。   最后,系统管理员需要注意Windows7与2003在日志覆盖上的一个不同。笔者认为,如果企业部署Windows7操作系统的话,可以选择“日志满时归档,不覆盖日志”这个选项。这个选项相比其他选项来说,日志文件相对完整一些。而且在阅读的时候,其保存的也是最新的日志信息,故也不会带来多到的阅读障碍。而且还可以查看归档日志来获得以前的一些日志信息。

WINDOWS驱动开发如何入门?

对于初学者,我们需要一个简单的例子,就和C语言里面的HelloWorld一样,编译运行,接着打印出"Helloworld!"。我们要先建立起对WDF驱动的一个初步而强烈的感性认识,然后再对照着例子来学习WDF的概念,看它的代码是怎么实现的,这样就会有深刻的认识。这就是教育学上所谓的循序渐进。按照这个思路,我们就先要编译安装运行一个简单驱动程序例子。我浏览了下WDF的例子之后,发现Echo这个例子比较适合我们的这个思路。下面就开始编译、安装和运行Echo这个例子。我是在XP下面做的实验,如果在其他操作系统下,也类似。在开始试验之前,读者可以从微软的网站下载WDK开发包,大小约700Mbytes,需要耐心地下才能下完。

如何正确入门Windows系统驱动开发领域

看书:1.界面:《Windows程序设计》VC++程序员:也就是要学MFC了,关于这方面网上书很多,看你写的方向应该是关于逆向工程吧,如果想学下这方面的内容的话看下《孙鑫VC++视频教程》2.Windows驱动:楚狂人的两本:《寒江独钓--Windows内核安全编程》 〈天书夜读--从汇编语言到Windows内核〉(建议你之前先学下汇编知识,可以对操作系统和语言有更深入的了解,这方面有:〈汇编语言第二版〉王爽的再看下〈琢石成器--Windows环境下32位汇编语言程序设计〉看过〈Windows程序设计〉后看这本书用不了多长时间)3.破解方面:看雪学院出的书〈加密与解密〉……后面还有很多……我不清楚,不过我觉得大致方面没错,我也正在学习。总之还有很多东西要学……(希望能帮到你)


上一篇:少年冒险王

下一篇:没有了