关于Windows
关于《WINDOWS核心编程》这本书,看了许多次了。有些地方看了许多遍,总的来说是全拉通了一次。但感觉收获不多。于是决定从头开始,一边看一边实践,进一步打牢自己的基础。 有些东西工作中是用不上了,所以只好自己回家练习。 不管如何,重在坚持。打算系统地过一遍WINDOWS编程的相关知识,没有一个稳固的系统的知识体系是完全不行的。
打算就此开始吧。
从前言开始吧。。。
不得不说,我们太依赖微软了,特别是在PC平台上做开发的朋友们。甚至许多开发出来的产品也是针对WINDOWS平台而言的,这就不得不促使我们对这个系统有一个良好的把握。其实我也不想,但无奈也是“寄人篱下”。并且,多了解了解总没有坏处吧。 反正不会遇到
有人对我说“你知道得太多了”。
笔者介绍了3种不同的操作系统内核,WINDOWS 2000,WINDOWS 98,WINDOWS CE。 其实东西都是差不多,只是对于与平台接触的地方,都经过了专门的优化,以使之适应某种特定的计算机环境。MS声称每种平台都提供了相同的API,以便吸引软件开发人员使用WINDOWS。 但是,话又说回来。真正用于开发的,并不是API的使用,而是对整个系统的内存、资源等等的管理有一个深刻的理解才行。而不同的平台之前总是有差异的。有些差异不足为道,但有一些却很致命。 对于高级API,比如GUI方面的,我们大可做到不用理会平台相关性。但对于某些特定的事物,如内存操作、线程调度等。就不得不使我们要更加关注系统底层,了解其管理方法。才能够编写出正确而高效的程序。 正如 《WINDOWS核心编程》的作者所说“本书讲述了如何使用WIN API来编写应用程序,因此本书中学习的任何知识,理论上都适用于所有的内核。实际上,各个内核是有差异的,操作系统的功能是用不同的方法来实现的。这意味着不同的内核的基本概念相同,但是它们的具体细节不同”。
WINDOWS 2000内核
Windows 2000内核是MS推出的高端操作系统。它具有很多特性,下面是它的部分特性:
1、它可以作为工作站、服务器和数据中心来运行。
2、该系统非常健壮,它能避免编写得不够出色的应用程序导致系统的崩溃。
3、该系统非常安全,它能防止未经授权的人访问系统管理的资源(如文件和打印机)。
4、它拥有着非常丰富的工具和实用程序,可供机构中的管理人员管理操作系统。
5、内核大多是用C/C++编写,因此该系统可以很容易移植到其它CPU结构中去。
6、该系统本身就能支持Unicode,因此,用其他国家的语言进行系统的本地化和运行是非常容易的。
7、它的内存管理特性提供了极其丰富的功能,效率很高。
8、运用结构化异常处理(SHE)特性,可以非常方便地处理错误和恢复。
9、动态链接库DLL使得系统的可扩展非常方便。
10、多线程和对多处理器的支持,使得系统具备很好的伸缩性,便于性能的改进。
11、文件系统的出色特性可以用来很好地跟踪用户是如何处理他们的计算机上的数据的。
哇哈哈,一看就这么多特性,首先不说他们的真实性。突然发现要了解的东西挺多的。如SHE,DLL,内存管理机制,多处理器支持等等东西。有些东西不能总是停留在表面,需要深入,并动手实践。另外,这个系统非常安全的特性个人觉得很搞笑。。。
WINDOWS 98内核
看名字就比较早了,但放到WIN 2000后面说,是因为先说新的再提旧的比较好。这个系统也是MS公司面向消费者推出的操作系统内核。和2000一样,拥有许多特性,但是不够健壮(一个程序有可能导致系统的崩溃,至于为什么,书中也给出了很好的解释)。不够安全(从来就没有安全过,不是吗?),只支持单核处理器(也就是说,不能将同一个进程的多个线程分发到不同的处理器同时处理,这限制了他在硬件上的伸缩性,毕竟现在是多核时代,还好2000中有对它的补救)。同时对于Unicode的支持不如2000好。
MS公司的目标是要取代WIN 98内核。就是因为前面的原因,不健壮,不支持多核。并且在98上修改也是很费事的,毕竟操作系统很庞大。但WIN 98的确还是存在着,那是因为WIN 98的用户友好性比较好。(当然这是作者所处的年代,目前的WIN 2000界面已相当友好了。)
WINDOWS CE内核
哈哈,这不必多说了吧,这是一款微型操作系统,我同事的手机就用的这个。魅族也是用的WIN CE系统。 当然,不仅是手机,许多小型硬件设备,如手提式计算机,汽车用PC,智能终端,电烤箱,微波炉,自动售货机等。由于硬件限制,使用WIN 2000和98都显得不太现实,于是MS出了这款操作系统,可谓量身定做。它的规模比2000 98都要小。
话说,麻雀虽小,五脏具全,WIN CE的功能依然是非常强大,由于多半用于个人使用的小型计算机,所以它的内核不需要许多对管理和伸缩性的支持。显然,简单的东西不容易出错。。。 只是。。。我真的没用过~~~
文中还提到了64位的WIN 2000,嗯,是的,已经来了,不过VISTA和WIN7我也没用过。
书中的例子我还是打算手写,原因是当拿到源码的时候,动力立马减半。还是照着需求描述和代码片段自己搞定,较有成就感。
作者:麒麟子
出处:http://www.cnblogs.com/qilinzi/
蛮牛专栏:麒麟子
简介:麒麟子,编程15年,科技创始人,技术作家。
09年进入游戏行业,16年创立成都幼麟科技有限公司。十年从业经验练就了游戏全栈技能,目前专注于手机游戏领域。
版权声明:本文版权归作者和博客园共有,欢迎转载。转载必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。