首页
社区
课程
招聘
[讨论]操作系统分析之一全局认识MS系统
发表于: 2008-1-14 21:35 6021

[讨论]操作系统分析之一全局认识MS系统

2008-1-14 21:35
6021

快过年了,老鼠年就来了,猪猪年过去了,在过年之前我总要给大家带点什么吧!想来想去,最近一直没研究什么,就把前段时间的研究总结一下,发出来。和以前一样,觉得我说的还可以就支持一下,如果觉得我说的不好,那么,就当个乐子吧!
        实际今天我要和大家说的,与前几天我发的那个taskmgr的代码有很大关系,我想我今天给大家说的是什么呢?(卖个关子!)大家最熟悉不过的东东,那就是Windows,我把我最近的认识和了解发出来,大家看看我说的对不。

一、        Windows发展
提到这个大家都知道MS的操作系统是:DOS->Windows 3.X->Windows95->Windows->98->Windows ME (同期间针对服务器出了Windows NT)->Windows 2000->Windows XP(针对服务器出了Windows Server 2003)->Windows Vista
我们可以这样划分阶段:
(1)DOS:
由Basic,C,Asm来开发
(2)Windows 3.X:
由Basic,C,Asm来开发(由于DOS核心代码有部分是Basic来做的,而这个系统是在基于DOS来面向用户的,所以Basic是少不了)
(3)Windows 95和98、ME:
开发语言同上,只要是MS对外壳做了调整,让用户觉得方便易用,我估计在基于DOS内核上,并没做什么太大的调整。我在安装98的时候看到MS吹嘘的98系统说明,现在感觉很好玩也好笑,不知道大家注意么!总之,98给人的影响是容易崩溃,每个用过98的人都知道的,但是相对Windows 3.X来将,MS已经在这个方面做的很不容易了,第一次大规模集成驱动,而且在图形图象上也做了改进,更让人觉得DirectX的到来,直接影响到了OpenGL,但是现在看来,98和95是同一等级吧!只是98是95的改进完善版本,而这两个版本仍然是那么的粗糙!而后来的ME影响就不大了,开了ME大家都知道是98的美化版,没什么好提的了。
(4)Windows NT/Windows 2000:
为什么要把他们划在一块呢!因为他们的启动的方式很相近,在系统盘下面都有一个ntldr的文件,这个也就是说,如果没有command.com系统也照样正常。而从安装Windows 2000来看,我们并没有找到那个command.com,而基于DOS的影子就不见了,DOS很明显的区别就是io.sys,msdos.sys,config.sys,command.com这几大件,在2000的世界里突然不见了,MS认识到Windows NT内核的稳定性,也就是大家说的NT内核。所以,为了彻底杜绝系统崩溃的问题,它借用了Windows NT,把它进行升级,再按不同要求出了不同版本,我们知道Windows 2000的版本比较多,分别有:专业版,服务器版,高级服务器版。MS用专业版代替了Windows 98,于是我们用的系统稳定了许多。
而从代码上来将,用过NT的朋友都知道,2000和NT的差别很小,几乎就是NT的改进版。我仔细看了看代码,发现了一个问题,那就是在NT和2000中似乎没有了Basic的身影,而让我看到的更多的是ASM和C,而在外壳中我看到了少量的C++文件,我也不明白MS为什么依然在用C而不是C++,所有的外壳程序都是用C调用Windows API来实现的,我很少看到类与对象的身影。而在这期间觉得普通用户永远是最落后的一个使用者。在2000的代码中已经使用的编译软件应该是Visual Studio 2002-Visual Studio2003 之间的版本,我是从代码中看出来的,至于MS是否使用Visual Studio系列,那我就不知道了,按时间来说,我们大家那个时候用的是Visual Studio 6,而在我们用Visual Studio 2002/2003时,MS已经在用Visual Studio 2005/2008。我们是使用的都是被MS修正改过的精简版。
(5)Windows XP:
我们大家最熟悉的系统,现在我还用的系统,开发语言同2000,只是MS注意到了普通用户需要的系统,不但要稳定而且要漂亮,我们的XP就是2000的美化版,当然对外壳程序,也就是Ring3程序做了完善,让普通用户知道MS出的系统不但稳定而且漂亮。说实在的,灰灰的界面都多少年了,也该到换的时候了。
(6)Windows Server 2003:
MS一惯的作风赚大钱,再赚小钱,2003也是针对服务器的,NT也是针对服务器的,而普通用户在用常死机的98时,大企业们都已经用上了NT内核。2003同样先被企业用户所尝试!2003或许也成功了,而我们大家都知道一个现象,在XP下可以正常运行的程序突然到了2003就不可以了,就像现在和VISTA一样。因为,我无意中发现2003上面竟然有VISTA的影子,我用VISTA的时候,VISTA打开文件夹默认的是显示详细信息,而2003也是一样的。仔细发现会有很多地方很像VISTA,有兴趣的朋友可以比较一下,我装的2003是集成了Framework 1.1,而我想,2003或许就是Visual Studio 2003类似的编程工具所开发,而2003的外壳程序很多都是要基于Framework1.1的,这样我们就看到了XP下运行的程序为什么到2003就会有错!而2003出现在市场上的时候我并没有见到Visual Studio 2003,大家有见到的吗?说一下!2003的出现也就意味着,MS以后的系统都会加上Framework组件了,以后的系统会变的越来越大,越来越漂亮,而Framework组件让MS在美化系统上会做的更漂亮!这是MS又一重大改革!以后的系统千万别中看不中用哈!!!!
(7) Windows Vista :
提到这个系统我就要说说了,实际它的编程语言和2003一样都是基于Framework的C++代码,而MS不再会像以前一样用纯C的代码去编写程序界面了,而对于我们用户来将只是占用资源多了些,大不了买新电脑。可是我这个穷人只能看看了。提到这个系统让人感觉很好笑的事情出来了,Windows Vista直接集成的是Framework 3.0而在Vista上市的时候大家都在用Visual Studio 2005,而MS把类似Visual Studio 2008开发的操作系统开买了,而MS对开发人员并没有太多的在乎吧!只是象征性的出了个SP补丁来让2005正常运行,我说的正常运行不是完全正常,是主程序在VISTA下可以正常点,SP补丁一看就知道是给2005来个兼容性的更改。MS也许就不在乎2005的使用者,只是反应的人多了,也只好处理了,而对于MS来说只要2005在VISTA下稍微正常就可以了,因为MS已经正在精简出2008,
到时候,想用VISTA的开发人员必须为了程序的稳定而去购买2008,2008应该来说是稳赚!
实际中间受灾的是我们无辜的用户.而从Framework组件加入系统已来都或多或少存在着兼容问题,而从Framework1.1-3.0中间少了许多版本,大家熟知的就是2.0,这样的问题或许MS并没有估计到吧!太大的跨越必然有太大的差异,这样我们就出现了好多程序在Vista下运行出错或不正常。实际出现这个问题也很正常!

二、        总结:
MS在做操作系统的时候有几大突破,我先给大家罗列一下:
DOS:就不说了,大家都很清楚了
Windows3.X:突破了死板的命令控制,改为图形界面让用户更方便点
Window95、98、ME:优化了图形界面,操作更方便,关键是对新加的DirectX做了优化,让图形图象的处理在OpenGL之上,集成了视频、声音、网络、输入设备的DirectX让OpenGL成为败兵之将。
WindowNT、2000、XP:MS大规模调整内核为NT内核,让系统更稳定
Windows2003、VISTA:新加了Framework组件,让系统不但容易变的漂亮,而且变的更大,更占资源!!!


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (10)
雪    币: 228
活跃值: (119)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
好文章!up!
M$抱着NT 架构已经发财快20年了,最近apple 的iphone 等新玩已势头很火,而M$好像在NTOS 下很难突破NT架构,而AMD ,INTEL 等又推出HV 技术,明显就是有点软件无关性的意思。1988年代M$解除单一硬件绑定的微内核架构,如今被amd ,intel 反过来玩了,这还真是有意思。
2008-1-15 11:05
0
雪    币: 2134
活跃值: (14)
能力值: (RANK:170 )
在线值:
发帖
回帖
粉丝
3
顶,关注先,期待你下面更详细的分析:)
2008-1-15 11:32
0
雪    币: 267
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
不知道楼主有没有看过WRK
微软的内核代码和编译器是紧密相关的
其中甚至还有判断编译器版本的宏
也有利用到编译器的内部函数

我觉得微软的内核小组和编译器小组肯定是有交流的
2008-1-15 12:11
0
雪    币: 1657
活跃值: (291)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
5
楼上我们现在所用的Visual Studio不是MS用的~~而更多是精简修改出来的,我发现在Visual Studio中和MS的程序中很多结构明显定义都不一样,类型也定义不一样,函数也有不一样的,判断版本是有的,但是那 种判断并不是什么关键,关键是当我们在用VS6的时候MS已经把数据类型,类库等等已经升级到类似VS2003的版本,所以,我们必须用VS2003来编译代码才可以,而且有的时候就不能用编译器内部函数的,虽然名称相同但是结果或许就不同~~~~win2000是VS2003的类似版本所开发的~~~~~
2008-1-15 15:37
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
6
呵呵,好文章。学习~

看来以后得用盗版的 VS 2008 咯~
2008-1-16 08:09
0
雪    币: 267
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
你说的对
这也许是微软不建议直接用system32下msvcrt.dll的原因
2008-1-16 10:45
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
8
文章写的也太搞笑了。
2008-1-16 11:16
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
又学习了。。。
2008-1-21 15:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
稍微了解下...
2008-3-7 16:08
0
雪    币: 423
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
保持关注。。。。
2010-3-21 10:59
0
游客
登录 | 注册 方可回帖
返回
//