QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: dzy

桌面GUI的风格要通用一点,随意性少一点

  [复制链接]
发表于 2005-1-6 11:04:33 | 显示全部楼层
简单的说,Windows GUI的目标是打印,而linux GUI的目标是网络。早期Mac GUI的目标也是打印,而现在Mac os X的目标是多媒体。

Windows 最初出现的时候,这个世界还是一个纸张的世界。人们刚刚完成了从打孔机向普通打印机的过渡。Windows 的伟大成就之一在于你的工作成果可以方便地看到并打印出来。微软最初在考虑OS的设计时就参考了Mach2系统。

当时操作系统界存在着微内核和宏内核体系的争论。内核提供操作系统的核心功能。微内核(Microkernel)是内核的一种精简形式,通常与内核集成在一起的系统服务层被分离出来,变成可以根据需求加入的选件,这样就可提供更好的可扩展性和更加有效的应用环境。使用微内核设计,对系统进行升级,只要用新模块替换旧模块,不需要改变整个操作系统。微内核提供一组“最基本”的服务,如进程调度、进程间通信、存储管理、处理I/O设备。其他服务,如文件管理、网络支持等通过接口连到微内核。与此相反,宏内核是集成的,比微内核更大。

而unix系统一贯是按照宏内核的方式设计。历史上最著名的微内核系统有Mach(卡内基 梅隆大学设计开发)、Nucleus Chorus系统(法国Beaverton,oregon设计)。而基于这两个内核,开发系统基金会设计出了OSF/1MK (它实现了Mach内核,并提供虚拟存储管理、进程间通信和设备驱动程序管理。)UNIX SVR4 UNIX系统实验室公司推出了一个微内核的UNIX SVR4(系统V版本4)。它实现了Nucleus微内核。它提供前面讨论的所有微内核特征;然而,在微内核中不管理驱动程序。还有一种就是WorkPlace OS(IBM的微内核是基于Mach微内核的。这种微内核在Motorola PowerPC处理器上运行,它是Intel 80486和Pentium处理器的直接竞争者)

Mach2是Mach的一个延伸项目,当时有几个大学生正在尝试在Mach2上开发一个GUI,微软从苹果的成功中意识到GUI的重要性,于是他们立即将这几个大学上招入门下,并挑选了这个项目作为其研发windows的基础。这时是1983年,整个系统首先被移植DOS上。微软相继开发了windows1.0、windows1.02。在1985年和1987年相继发布了windows1.03和windows2.0版本。
回复

使用道具 举报

 楼主| 发表于 2005-1-6 11:23:42 | 显示全部楼层
[quote:02040f0c80="EricNeon"]简单的说,Windows GUI的目标是打印,而linux GUI的目标是网络。早期Mac GUI的目标也是打印,而现在Mac os X的目标是多媒体。[/quote]

说得好。MS从DOS开始做的目标就是办公应用,并且作为当时的PC应用来说,要在社会推广,首先的且唯一一个吸引办公室主任投资的应用当然就是办公应用,这也是当时社会计算机应用得最为广泛的领域。所以MS的OFFICE那么火红,所以MS对打印考虑得很周到。这既是MS的长处,同时又正好是MS的短处。
MS对网络的注重,当时却实是差点要被淘汰了,但历史总是变化的。这正是比尔的高明之处。

国内在2001年出的《WINDOWS操作系统原理》(好像是清华大学出版社出版)里是怎么说的?WIN 2000内核设计用的是微内核与宏内核相结合的作法。
好像现在的OS大都是二者相结合的办法了,包括UNIX/LINUX在内。
回复

使用道具 举报

发表于 2005-1-6 11:26:34 | 显示全部楼层
继续讲微软的。

微软在发布了windows2.0以后开始意识到整个系统基于DOS是十分弱智的决策,DOS系统天生就不够强大,只能算是一个初级的玩具。但是DOS系统有一个观念是非常先进的,那就是将整个系统资源划分成C盘、D盘……

为什么说这种分区方式是先进的?因为这符合人类对自然界的基本认识规律。人们会把东西放在某个地方,而在人的意识中,这个东西应该是一个整体。这个东西在被移动、删除时都是被整体移动的。而unix将所有东西看作文件,unix的分区方式是将物件的各个部分以类型分开放置。执行文件放在/bin,/sbin目录下,配置文件放在/etc下。这种放置方式对于普通人来讲可能就是个灾难,人们在操作UNIX时,试图转移一点文件,就要考虑到是否对整个系统造成了影响。而DOS将系统放在C盘中,其他文件可以放在其他任何地方。windows的开发继承了这个传统,将C盘作为系统盘。

目前的linux/unix的标准中也更加重视怎样降低非系统数据对系统的影响。但是windows在这个方面先走了一步。微软在windows2.0以后及时调整了策略,加紧了对Mach2的研究。前面我们说windows的GUI目标是打印,在windows之前的DOS系统中,微软已经开发了大量的GUI工具,但如果我们仔细看这个DOS下的GUI工具,我们会发现,除了最基本的文本编辑,就剩下打印是主要的了。打印的排版、类型、字符都是微软首先考虑的对象。在windows中,更是体现了这个思想——打印优先。
回复

使用道具 举报

发表于 2005-1-6 11:48:48 | 显示全部楼层
此后,微软公司从Mach2基础开始对Windows的内存管理、图形界面做了重大改进,使图形界面更加美观并支持虚拟内存。我们说,微软优先使用虚拟内存,以减少对内存的占用率是又一个决策性错误。因为系统读取硬盘中虚拟内存的速度明显比不过直接读取内存数据的速度。而linux设计是优先使用内存。(扯远了^_^)

在设计GUI的时候,微软的开发人员试图直接在内核中整合GUI的支持。但是这样做并不容易,到目前,unix/linux也还是将GUI的Server端独立在内核之外。按照微内核的设计思想,似乎将GUI整合进内核中是彻底的背叛。微软只能尽可能地精简内核,在GUI设计中,只保留了最基本的一些元素。注意,这个时候的内核仍然是宏内核的。就在这个同时,微软组织了2000多名工程师,开始了一个全新的项目——NT。NT的目的不仅在于设计一个操作系统参与服务器端的竞争,更重要的是,微软的宏内核计划已经举步唯艰。

新的windows的开发非常缓慢,几乎花了三年。微软于1990年5月份推出Windows3.0并一炮打红。这个“千呼万唤始出来”的操作系统一经面世便在商业上取得惊人的成功:不到6周,Microsoft公司销出50万份Windows3.0拷贝,打破了任何软件产品的6周销售记录,从而一举奠定了Microsoft在操作系统上的垄断地位。

一年之后推出的Windows3.1对Windows 3.0作了一些改进,引入TrueType字体技术,这是一种可缩放的字体技术,它改进了性能;还引入了一种新设计的文件管理程序,改进了系统的可靠性。更重要的是增加对象链接合嵌入技术(OLE)和多媒体技术的支持。Windows3.0和Windows3.1都必须运行于MS DOS操作系统之上。TrueType技术的引入是“打印优先”思想的集中体现。也是从windows3.1开始,微软正式开始发布支持双字节的多语言系统。中文版的windows就这么开始了。但是GUI构成在宏内核中显得非常庞大,微软必须考虑彻底抛弃DOS才行。
回复

使用道具 举报

发表于 2005-1-6 12:00:40 | 显示全部楼层
好。
很好。
回复

使用道具 举报

发表于 2005-1-6 12:06:55 | 显示全部楼层
继续,听讲,期待下文……
回复

使用道具 举报

发表于 2005-1-6 12:11:36 | 显示全部楼层
[quote:5d4a3821b2="EricNeon"]

……比微内核更大。

而unix系统一贯是按照宏?内核的方式设计。历史上最著名的微内核系统有Mach(卡内基 梅隆大学设计开发)、Nucleus Chorus系统(法国Beaverton,oregon设计)。而……。[/quote]

这个是笔误?
回复

使用道具 举报

 楼主| 发表于 2005-1-6 12:14:32 | 显示全部楼层
看来WINDOWS在实现上实在也有很多问题。
但它在界面外观上的风格,还是有很多值得LINUX的桌面值得学习的,它很省净,很简单,窗口没有过多的艺术装饰,只有纯净的几何框架,当然它的线条是精致的,配色是极其协调的,布局也是精心设计好的。这正是充分的体现了它大方、美观、平易的风格。
简洁为美。
回复

使用道具 举报

 楼主| 发表于 2005-1-6 12:16:13 | 显示全部楼层
[quote:174732d3b7="bamfox"][quote:174732d3b7="EricNeon"]

……比微内核更大。

而unix系统一贯是按照宏?内核的方式设计。历史上最著名的微内核系统有Mach(卡内基 梅隆大学设计开发)、Nucleus Chorus系统(法国Beaverton,oregon设计)。而……。[/quote]

这个是笔误?[/quote]

是的,我也看出这个行文上的矛盾了。“宏”是不是应该为“微”字?
回复

使用道具 举报

 楼主| 发表于 2005-1-6 12:19:48 | 显示全部楼层
“微软公司从Mach2基础开始对Windows的内存管理、图形界面做了重大改进,使图形界面更加美观并支持虚拟内存。我们说,微软优先使用虚拟内存,以减少对内存的占用率是又一个决策性错误。因为系统读取硬盘中虚拟内存的速度明显比不过直接读取内存数据的速度。而linux设计是优先使用内存。”

哈哈,很多不懂LINUX的人,以WINDOWS内存管理的思维定势,发现LINUX一启动就占用那么多的内存,很恼火。
现在就明白了吧。哈哈!
回复

使用道具 举报

发表于 2005-1-6 12:31:03 | 显示全部楼层
微软优先使用虚拟内存是有道理的,因为 PC 机要保证低廉的价格,那里要有那么多的内存呢?

以后 PC 机内存成本降低了,微软完全可以再改回来。一切为了用户(另一方面也就是一切为了自己),是其中的内涵吧。
回复

使用道具 举报

发表于 2005-1-6 12:50:36 | 显示全部楼层
在微软的产品体系中,NT和windows并驾齐驱,虽然两者的内核不同,但是基于宏内核的Windows有了一点突破。90年代中期,正好是PC架构从16位体系转向32位体系的关键时刻。微软抓住了这个时机发布了Windows95,并宣称这是一个完全32位的操作系统。Windows95具备了现在“Windows”概念所需要的几乎所有特性。所以在操作系统界内,说到windows,其实就是说win95。

Windows95(又名Chicago),它可以独立运行而无需DOS支持。Windows95是操作系统发展史上一个里程碑式的作品,它对Windows3.1版作了许多重大改进,包括:更加优秀的、面向对象的图形用户界面,从而减轻了用户的学习负担;全32位的高性能的抢先式多任务和多线程;内置的对Internet的支持;更加高级的多媒体支持(声音、图形、影像等),可以直接写屏并很好的支持游戏;即插即用,简化用户配置硬件操作,并避免了硬件上的冲突;32位线性寻址的内存管理和良好的向下兼容性等等。

注意,上面说的“面向对象技术”正是当时最时髦的研究成果,windows中的分区和文件管理方式延续了DOS的设计——系统盘始终放在C盘,文件位置则由用户自己定位。微软在win95中提供了一个DOS控制台,以完成所谓的技术过渡。GUI的应用绝不仅仅是一个窗口管理器的式样,windows的文件管理器也与内核更加紧密结合,并且微软开始提供一个IE浏览器与当时的网景竞争。可以说这个时候的IE十分简陋,界面的操作方式与win95本身并没有多大的整合度。

前面说微软宣称win95是完全的32位系统,以及多用户系统,这其实并不真实。win95本身虽然也有控制台修复模式,但是这个模式在GUI设计时并没有做好。所谓的多用户的GUI很少有人能够真正使用。win95的内核仍然是宏内核。在第二年,也就是1996年,微软正式发布了NT4.0,这个系统是微软历史上又一个里程碑。NT4.0的意义不仅仅是带给微软服务器市场上的胜利,还有一个关键细节被人忽略了,这就是微内核系统上GUI设计思想的成功。

96年,微软又发布了一个WIN CE 1.0。这个版本是微软在GUI设计上经过反省后开发的一个基于微内核的系统。微软已经发现在宏内核中整合一个GUI是非常吃力不讨好的策略。但是微软这个时候不可能停手,因为网景公司对它的压力很大,而32位体系对于win95来说仅仅还是个试验。

于是微软又做了一个大手笔的动作,请了全球上千名高级工程师,开发win98。win98的策略是将win95中的16位支持代码全部转向32位体系代码;免费赠送新的IE浏览器,把网景打下台;重新做一次针对宏内核的GUI设计,这也是微软破釜沉舟的一次冒险。幸运的是,win98成功了。win98对于很多操作系统界的人来说很简单,没什么好提的,就是一个win95+新的IE。win98奠定了微软在全球桌面系统老大的地位。但是win98的32位代码改成工程进展出现重大问题。一些GUI的简单错误直接影响到内核的处理,所以我们经常在win98中见到蓝屏现象,而在win95和以后的版本中比较少见。
回复

使用道具 举报

发表于 2005-1-6 12:56:39 | 显示全部楼层
unix是大多以宏内核为主的。linux也是宏内核。
回复

使用道具 举报

发表于 2005-1-6 13:05:18 | 显示全部楼层
老大,我看了这么多,给我的第一印象就是微软的用“宏”内核,估计是与汉字二义性有关系吧。

因此,建议老大对其做个说明。
回复

使用道具 举报

发表于 2005-1-6 13:28:04 | 显示全部楼层
win98的困境使微软开始考虑放弃在“宏内核”上架设GUI。随后微软相继发布了win97和winme,目的在于修正win98中的代码问题,并且在winme中大胆尝试了新的GUI设计方案。这个方案就使后来在XP中使用的方案。

大家在安装XP时可以看见“基于winNT架构构建”的说明,为什么微软要标榜这个呢?这说明微软在宏内核上的GUI构建已经失败,他们的主要方向将转到微内核。所以可以这么说,在windows me以前的产品中,windows系列都是使用宏内核,只不过这个宏内核的一些设计融合了Mach2和DOS的设计思想。不知道这么说,bamfox兄弟是否明白。

从windows2K以后,包括XP,2003和开发中的longhorn都是基于Mach2微内核的系统。win me可以说既是微软宏内核系统最后的版本,也是XP的试验版本。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-28 14:14 , Processed in 0.137317 second(s), 12 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表