linux的linux 图形界面面设计者是怎么思考的

Linux graphic subsytem(1)_概述
图形子系统是linux系统中比较复杂的子系统之一:对下,它要管理形态各异的、性能各异的显示相关的器件;对上,它要向应用程序提供易用的、友好的、功能强大的图形用户界面(GUI)。因此,它是linux系统中少有的、和用户空间程序(甚至是用户)息息相关的一个子系统。
本文是图形子系统分析文章的第一篇,也是提纲挈领的一篇,将会从整体上,对linux显示子系统做一个简单的概述,进而罗列出显示子系统的软件构成,后续的文章将会围绕这些软件一一展开分析。
注1:本文所有的描述将以原生linux系统为例(如Ubuntu、Debian等),对其它基于linux的系统(如Android),部分内容会不适用。
注2:本文很多图片都是从网上搜集而来的(很多是从维基百科)。虽然蜗窝的宗旨是用自己的语言表述,尽量自己画图,但是linux图形子系统太复杂了,蜗蜗的理解有限,而老外的图画的实在太好,蜗蜗觉得,再怎么努力,也画不出更好的了,因此本着为读者负责的态度,就直接copy了。
2. 概念介绍
2.1 GUI(Graphical User Interface,图形用户界面)
linux图形子系统的本质,是提供图形化的人机交互(human-computer interaction)界面,也即常说的GUI(Graphical User Interface)。而人机交互的本质,是人脑通过人的输出设备(动作、声音等),控制电脑的输入设备,电脑经过一系列的处理后,经由电脑的输出设备将结果输出,人脑再通过人的输入设备接收电脑的输出,最终实现“人脑&--&电脑”之间的人机交互。下面一幅摘自维基百科的图片(可从查看比较清晰的SVG格式的原始图片),对上述过程做了很好的总结:
该图以一个非常前卫的应用场景----虚拟现实(VR,Virtual Reality)游戏,说明了以图形化为主的人机交互过程:
1)人脑通过动作、声音(对人脑而言,是output),控制电脑的输入设备,包括键盘、鼠标、操作杆、麦克风、游戏手柄(包含加速度计、陀螺仪等传感器)。
2)电脑通过输入设备,接收人脑的指令,这些指令经过kernel Input subsystem、Middleware Gesture/Speech recognition等软件的处理,转换成应用程序(Game)可以识别的、有意义的信息。
3)应用程序(Game)根据输入信息,做出相应的反馈,主要包括图像和声音。对VR游戏而言,可能需要3D rendering,这可以借助openGL及其相应的用户空间driver实现。
4)应用程序的反馈,经由kernel的Video subsystem(如DRM/KMS)、audio subsystem(如ALSA),输出到电脑的输出设备上,包括显示设备(2D/3D)、扬声器/耳机(3D Positional Audio)、游戏手柄(力的反馈)等。
5)输出到显示设备上时,可能会经过图形加速模块(Graphics accelerator)。
注3:图中提到了VR场景的典型帧率( for VR),这是一个非常庞大的信息输出,要求图形子系统能10.5ms的时间内,生成并输出一帧,以RGBA的数据格式为例,每秒需要处理的数据量是x4x8=3.11296Gb,压力和挑战是相当大的(更不用提1080P了)。
有关GUI更为详细的解释,请参考:。
2.2 Windowing system(窗口系统)
窗口系统,是GUI的一种(也是当前计算机设备、智能设备广泛使用的一种),以WIMP (windows、icons、menus、pointer) 的形式,提供人机交互接口。Linux系统中有很多窗口系统的实现,如X Window System、Wayland、Android SurfaceFlinger等,虽然形态各异,但思路大致相同,包含如下要点:
1)一般都使用client-server架构,server(称作display server,或者windows server、compositor等等)管理所有输入设备,以及用于输出的显示设备。
2)应用程序作为display server的一个client,在自己窗口(window)中运行,并绘制自己的GUI。
3)client的绘图请求,都会提交给display server,display server响应并处理这些请求,以一定的规则混合、叠加,最终在有限的输出资源上(屏幕),显示多个应用程序的GUI。
3)display server和自己的client之间,通过某种类型的通信协议交互,该通信协议通常称作display server protocol。
4)display server protocol可以是基于网络的,甚至是网络透明的(),如X Window System所使用的。也可以是其它类型的,如Android SurfaceFlinger所使用的binder。
有关Windowing system的详细解释,请参考:。
2.3 X Window System
似乎终于要进入正题了。
X Window System是Windowing System一种实现,广泛使用于UNIX-like的操作系统上(当然也包括Linux系统),由MIT(Massachusetts Institute of Technology,麻省理工学院)在1984年发布。下图(可从查看比较清晰的SVG格式的原始图片)是它的典型架构:
1)X Window System简称X,或者X11,或者X-Windows。之所以称作X,是因为在字母表中X位于W之后,而W是MIT在X之前所使用的GUI系统。之所以称作X11,是因为在1987年的时候,X Window System已经进化到第11个版本了,后续所有的X,都是基于X11版本发展而来的(变动不是很大)。为了方便,后续我们都以X代指X Window System。
2)X最初是由X.org(XOrg Foundation)维护,后来基于X11R6发展出来了最初专门给Intel X86架构PC使用的X,称作XFree86(提供X服务,它是自由的,它是基于Intel的PC平台)。而后XFree86发展成为几乎适用于所有类UNIX操作系统的X Window系统,因此在相当长的一段时间里,XFree86也是X的代名词。再后来,从2004年的时候,XFree86不再遵从GPL许可证发行,导致许多发行套件不再使用XFree86,转而使用Xorg,再加上Xorg在X维护工作上又趋于活跃,现在Xorg由成为X的代名词(具体可参考“”)。
3)X设计之初,制定了很多原则,其中一条----"It is as important to decide what a system is not as to decide what it is”,决定了X的“性格”,即:X只提供实现GUI环境的基本框架,如定义protocol、在显示设备上绘制基本的图形单元(点、线、面等等)、和鼠标键盘等输入设备交互、等等。它并没有实现UI设计所需的button、menu、window title-bar styles等元素,而是由第三方的应用程序提供。这就是Unix的哲学:只做我应该做、必须做的事情。这就是这么多年来,X能保持稳定的原因。也是Linux OS界面百花齐放(不统一)的原因,各有利弊吧,后续文章会展开讨论。
4)X包括X server和X client,它们之间通过X protocol通信。
5)X server接收X clients的显示请求,并输出到显示设备上,同时,会把输入设备的输入事件,转递给相应的X client。X server一般以daemon进程的形式存在。
6)X protocol是网络透明(network-transparently)的,也就是说,server和client可以位于同一台机器上的同一个操作系统中,也可以位于不同机器上的不同操作系统中(因此X是跨平台的)。这为远端GUI登录提供了便利,如上面图片所示的运行于remote computer 的terminal emulator,但它却可以被user computer的鼠标键盘控制,以及可以输出到user computer的显示器上。
注4:这种情况下,user computer充当server的角色,remote computer是client,有点别扭,需要仔细品味一下(管理输入设备和显示设备的是server)。
7)X将protocol封装为命令原语(X command primitives),以库的形式(xlib或者xcb)向client提供接口。X client(即应用程序)利用这些API,可以向X server发起2D(或3D,通过GLX等扩展,后面会介绍)的绘图请求。
有关X更为详细的介绍,请参考:,后续蜗蜗可能会在单独的文章中分析它。
2.4 窗口管理器、GUI工具集、桌面环境及其它
前面讲过,X作为Windowing system中的一种,只提供了实现GUI环境的基本框架,其它的UI设计所需的button、menu、window title-bar styles等基本元素,则是由第三方的应用程序提供。这些应用程序主要包括:窗口管理器(window manager)、GUI工具集(GUI widget toolkit)和桌面环境(desktop environment)。
窗口管理器负责控制应用程序窗口(application windows)的布局和外观,使每个应用程序窗口尽量以统一、一致的方式呈现给用户,如针对X的最简单的窗口管理程序--twm()。
GUI工具集是Windowing system之上的进一步的封装。还是以X为例,它通过xlib提供给应用程序的API,仅仅可以绘制基本的图形单元(点、线、面等等),这些基本的图形单元,要组合成复杂的应用程序,还有很多很多细碎、繁杂的任务要做。因此,一些特定的操作系统,会在X的基础上,封装出一些更为便利的GUI接口,方便应用程序使用,如Microwindows、GTK+、QT等等。
桌面环境是应用程序级别的封装,通过提供一系列界面一致、操作方式一致的应用程序,使系统以更为友好的方式向用户提供服务。Linux系统比较主流的桌面环境包括GNOME、KDE等等。
2.5 3D渲染、硬件加速、OpenGL及其它
渲染(Render)在电脑绘图中,是指:用软件从模型生成图像的过程。模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。图像是数字图像或者位图图像。
上面的定义摘录自“”,它是着重提及“三维物体”,也就是我们常说的3D渲染。其实我们在GUI编程中习以为常的点、线、矩形等等的绘制,也是渲染的过程中,只不过是2D渲染。2D渲染面临的计算复杂度和性能问题没有3D厉害,因此渲染一般都是指3D渲染。
在计算机中,2D渲染一般是由CPU完成(也可以由专门的硬件模块完成)。3D渲染也可以由CPU完成,但面临性能问题,因此大多数平台都会使用单独硬件模块(GPU或者显卡)负责3D渲染。这种通过特定功能的硬件模块,来处理那些CPU不擅长的事务的方法,称作硬件加速(Hardware acceleration),相应的硬件模块,就是硬件加速模块。
众所周知,硬件设备是多种多样的,为了方便应用程序的开发,需要一个稳定的、最好是跨平台的API,定义渲染有关的行为和动作。OpenGL(Open Graphics Library)就是这类API的一种,也是最为广泛接纳的一种。
虽然OpenGL只是一个API,但由于3D绘图的复杂性,它也是相当的复杂的。不过,归根结底,它的目的有两个:
1)对上,屏蔽硬件细节,为应用程序提供相对稳定的、平台无关的3D图像处理API(当然,也可以是2D)。
2)对下,指引硬件相关的驱动软件,实现3D图像处理相关的功能。
另外,openGL的一个重要特性,是独立于操作系统和窗口系统而存在的,具体可以参考后面软件框架相关的章节。
3. 软件框架
通过第2章的介绍,linux系统中图形有关的软件层次已经呼之欲出,具体如下:
该层次图中大部分的内容,已经在第2章解释过了,这里再补充说明一下:
1)该图片没有体现3D渲染、硬件加速等有关的内容,而这些内容却是当下移动互联、智能化等产品比较关注的地方,也是linux平台相对薄弱的环节。后续会在软件框架有关的内容中再着重说明。
2)从层次结构的角度看,linux图形子系统是比较清晰的,但牵涉到每个层次上的实现的时候,就比较复杂了,因为有太多的选择了,这可归因于“提供机制,而非策略”的Unix软件准则。该准则为类Unix平台软件的多样性、针对性做出了很大的贡献,但在今天这种各类平台趋于整合的大趋势下,过多的实现会导致用户体验的不一致、开发者开发精力分散等弊端,值得我们思考。
3)虽然图形子系统的层次比较多,但不同的人可能关注的内容不太一样。例如对Linux系统工程师(驱动&中间件)而言,比较关注hardware、kernel和display server这三个层次。而对Application工程师来说,可能更比较关心GUI Toolkits。本文以及后续display subsystem的文章,主要以Linux系统工程师的视角,focus在hardware、kernel和display server(可能包括windows manager)上面。
以X window为例,将hardware、kernel和display server展开如下(可从查看比较清晰的SVG格式的原始图片):
对于软件架构而言,这张来自维基百科的图片并不是特别合适,因为它包含了太多的细节,从而显得有些杂乱。不过瑕不掩瑜,对本文的描述,也足够了。从向到下,图中包括如下的软件的软件模块:
1)3D-game engine、Applications和Toolkits,应用软件,其中3D-game engine是3D application的一个特例。
2)Display Server
图片给出了两个display server:Wayland compositor和X-Server(X.Org)。X-Server是linux系统在PC时代使用比较广泛的display server,而Wayland compositor则是新设计的,计划在移动时代取代X-Server的一个新的display server。
3)libX/libXCB和libwayland-client
display server提供给Application(或者GUI Toolkits)的、访问server所提供功能的API。libX/libXCB对应X-server,libwayland-client对已Wayland compositor。
libGL是openGL接口的实现,3D application(如这里的3D-game engine)可以直接调用libGL进行3D渲染。
libGL可以是各种不同类型的openGL实现,如openGL(for PC场景)、openGL|ES(for嵌入式场景)、openVG(for Flash、SVG矢量图)。
libGL的实现,既可以是基于软件的,也可以是基于硬件的。其中Mesa 3D是OpenGL的一个开源本的实现,支持3D硬件加速。
5)libDRM和kernel DRM
DRI(Direct Render Infrastructure)的kernel实现,及其library。X-server或者Mesa 3D,可以通过DRI的接口,直接访问底层的图形设备(如GPU等)。
6)KMS(Kernel Mode Set)
一个用于控制显示设备属性的内核driver,如显示分辨率等。直接有X-server控制。
4. 后续工作
本文有点像一个大杂烩,丢进去太多的东西,每个东西又不能细说。觉得说了很多,又觉得什么都没有说。后续蜗蜗将有针对性的,focus在某些点上面,更进一步的分析,思路如下:
1)将会把显示框架限定到某个确定的实现上,初步计划是:Wayland client+Wayland compositor+Mesa+DRM+KMS,因为它们之中,除了Mesa之外,其它的都是linux系统中显示有关的比较前沿的技术。当然,最重要的,是比较适合移动端的技术。
2)通过单独的一篇文章,更详细的分析Wayland+Mesa+DRM+KMS的软件框架,着重分析图像送显、3D渲染、Direct render的过程,以此总结出DRM的功能和工作流程。
3)之后,把重心拉回kernel部分,主要包括DRM和KMS,当然,也会顺带介绍framebuffer。
4)kernel部分分析完毕后,回到Wayland,主要关心它的功能、使用方式等等。
5)其它的,边学、边写、边看吧。
原创文章,转发请注明出处。蜗窝科技,。像群智能表达的那样,多样性和正反馈两种主要特性体现了群体的智能,感觉上是多种偶然也就是随机组合在一起形成的必然,猜想上人脑也是这样的过程,大量的信息和经验,以及正反馈,形成了想法。图形系统,不仅仅作为工具使用,也就是仅仅具备功能还不行,非功能的需求在功能满足的情况下同样重要,也就是温饱情况下的小康需求,需求是变化的,而且是正方向的。现有图形系统已经基本满足功能需求,当然也是单单的某个或者某几个方面的需求,那么图形系统的下一个里程碑是什么呢?现在想想是智能图形系统。智能分为两个方面,一个是根据已有高级策略学习行为,积累行为,演化行为。另一个就是根据已有基本策略学习新的策略,积累策略,演化策略。同时,两个方面的智能是可以共存的,并且第一种智能可以为第二种智能服务。图形系统,使用群体是开发人员,最终群体是用户。所以图形系统在无取舍的情况下的特征应该是:顺序不分先后,但是有各自的重要性。
1& 框架易于理解。
理想状况下,这点可以很好的做到,可以保持对现有图形系统的兼容特性,没有任何公司说你侵权,但是理想情况不会发生,或者只发生在你的图形系统对你兼容系统没有构成侵权的情况下。所以,这一点对于一个要体现商业价值,创造价值的图形系统来说,不可行。那么只有通过有效地创新来构思开发框架,这么做不是不可能,需要持续性的探索和反馈。取舍之间,体现的正是创新和创意。
2 性能卓越。
又快又好用永远是追求的目标。但是,这方面同样需要均衡。商业竞争,我们不一定要保证产品的所有方面都比别人好的,但是一定不能比别人明显的差。同时,保持我们自己的有效创新,从产品级别来讲,已经具备胜出的条件。图形系统的性能包括:基本2d,3d图形库的速度,整体应用的速度,出色的效果。性能建立在优秀的库的基础上,所以基础库,一定要高效,这是必须的。
3 完善的设计开发调试工具
再优秀的开发框架,没有辅助的工具,让开发设计人员手工拼代码,这已经不适应现在的软件开发了,优秀的设计开发工具配合优秀的调试分析工具,能取得用户的信赖和持续使用。
4 明确的用户定位
产品要有相应的定位,就像每个人才有其专业的技能一样,企业和产品同样要遵守相应的规律。发育和分化,各个方面各司其职。嵌入式行业是蓬勃并且是新的革命所在,基于linux等开源系统的运用使嵌入式时代诠释的很清楚,个性化,低成本,高性能,必将成就嵌入式图形界面。
接下来,详细介绍以上的4个方面:
前言 动力和需求
嵌入式时代,个性化的时代,智能而且高速的时代。更加深化的社会发育和分化,规律不再要求某个集团独揽天下,而是方方面面的集体想象力充分发挥和涌现。个体做好分化后自己的工作即可。嵌入式时代,工具离不开使用接口,也就是用户接口,最自然的是工具具有智能,人类只需要传达想法即可,但是当下还做不到,现实的情况是,图形界面现停留在指点时代,即我们要通过比划和点击来告知图形系统我们的意图。基本的框架没有变,这就是交互和通信,机会来临之前,我们能做的只是做好一切准备,图形界面要做到可扩展,易移植,能裁剪,性能好等特性,要从重点从框架上发挥创意,同时用户定位是这些的部分参考基础。所以,整个图形系统就像一个人,一个朋友,框架是品质是灵魂,性能是外表是表现,工具是衣服是人际,用户定位是理想是目标。图形系统设计师的工作就是,打造一个适合时代并且能为时代做出贡献,甚至能够改变时代推动历史进步的产品。如此看来,设计师责任重大。当然我们重点关注的是需求,我们的目标受众,当下是嵌入式领域,各种手持设备,多媒体设备,仪器仪表,总之是嵌入式设备。这要求我们做到一下几个方面:
高性能是基础。设计再好的系统,性能不过关,理念再好也没有价值。图形系统关注两个方面的性能,一个是软件图形库,一个是硬件加速支持。
2. 高度可裁剪
同样的图形系统应用,不同的功能需求,要求系统高度可裁剪,也就要求从机制或者说框架上支持裁剪,目前主要是说功能裁剪。
3. 高度可移植
无论从操作系统级别还是硬件级别,可移植要求我们从机制上支持,并不是简单修改源代码,那样不是支持可移植。
4. 高度可扩展
裁剪的相反方向是扩展,一方面是现有功能扩展,一方面是预添加功能扩展,这要求系统设计要有前瞻性,要有高度的抽象性。
5. 高度可配置
一个系统不能包罗万象,重点是做好自己的工作即可。但是同样的系统,用户要有配置的办法,系统要提供给用户配置的办法。
好的嵌入式图形系统,要求以上5个方面的均衡。
框架离不开要体现的特性,特性来自于体现需求的想象力。要做到以上5点,需要重点在系统组织框架上发挥创意。
高性能自不必说,通过优化算法和优化库来做基础工作,同时考虑高层次框架时,也要予以性能评估,取得均衡。
可移植,来自于层次抽象,通过设计的中间层次屏蔽上下层之间的关联,使上层变得不依赖具体的下层实现,只要使用其接口即可。但是,滥用抽象和不用抽象一样,系统换乱,错误丛生,不可控制,所以仅仅在需要的地方抽或者只在必须的地方抽象即可。
可裁剪,可扩展,基本属于一个范畴的需要,就像社会分工,就像机器零件,裁剪和扩展来自于组合系统,也就是组件系统,这个很好理解,只是不同的架构,组件间的关系不同,通信方式不同,交互方式不同,当然性能表现就不一样。
可配置,刚刚提到组件,当然可以说是组件的特性可配置,组件系统离不开组件的管理核心,当然核心如果看做一个组件的话,核心也可配置,这样图形系统本身的机制可能就可以改变了,我们现在重点关注非核心的组件配置。
综上,基本的框架是组件化,组件可配置,包括核心组件,核心组件定义了组件间的通信方式。如此看来,很像一个soc,形形色色的外设通过协议链接在mcu上,彼此不需要认识,简单的通过协议接口即可完成功能了。
就一个不论大小的系统而言,性能来自两个方面,一个是基本图形算法的性能,另一个是抽象带来的性能损失。组件间的通信或者说交互的性能属于后者。基本图形算法,变化有限。重点关注,抽象带来的性能损失,我们的目标是设计合理的架构,降低性能损失满足要求。至于,多核的性能,我们只能依赖底层操作系统,并不能过多干涉。
设计工具,不可或缺,最好的工具是能够快速的帮助用户设计系统原型,同时避免重复劳动。开发工具,让用户的开发可控制,事半功倍,快速高效并且保证软件质量。调试工具,任何系统都会有问题,调试跟踪工具必不可少。
嵌入式linux领域的图形用户界面,让你在复杂稳定的系统平台上,通过简单的方法设计出复杂好用的图形应用。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:119825次
积分:1679
积分:1679
排名:千里之外
原创:44篇
转载:20篇
评论:16条
(3)(2)(1)(1)(6)(20)(17)(4)(11)从图形用户界面到自然用户界面 - 对Windows 8中两种用户界面的思考
从图形用户界面到自然用户界面 - 对Windows 8中两种用户界面的思考
发布时间: 13:59:32
编辑:www.fx114.net
本篇文章主要介绍了"从图形用户界面到自然用户界面 - 对Windows 8中两种用户界面的思考",主要涉及到从图形用户界面到自然用户界面 - 对Windows 8中两种用户界面的思考方面的内容,对于从图形用户界面到自然用户界面 - 对Windows 8中两种用户界面的思考感兴趣的同学可以参考一下。
众所周知,Win8中引入了Modern界面,我的哥哥吴杰超曾经写过的一篇评论文《我眼中的Windows 8 - A New Start》中认为Modern UI是微软(M$)在自然用户界面(NUI)方面最新研究进展的产物,相比传统的图形用户界面(GUI),特别是自从Win95以来大家都熟悉的在左下角有开始菜单的界面,有着质的层面不同的体验,而8中从开发者预览版(DP)起,开始按钮的功能相比以前的开始按钮,有“弱化”或者说“精简”的趋势。
注意,DP版还是有开始“按钮”的,并且打开那时候的开始按钮显示的就是现在charm bar上的那5个功能键(设置,设备,分享,搜索,开始),也就是说,微软对于开始菜单或者开始按钮的改变不是突然的取消,而是在改动中不停探索,因此个人认为,到了消费者预览版(CP)中开始按钮的取消标志着微软狠下心来推NUI的决心,因此开始按钮的消失,表面上看是那一小块区域的消失,实际上是微软想逐步弱化GUI的一个体现,同时,微软将一小块的区域扩展到了整个屏幕,可以看做是一种不同的“形式”,想一想开始菜单的作用,再看看开始屏幕的作用,发现二者从本质上没啥区别,有着翻天覆地变化的只是操作方式和习惯,而NUI本来就和GUI有着巨大的不同,因此如果微软温和改进,肯定会有人骂不思进取;而现在微软直接塞给你个新的NUI,并且应该是考虑到过渡并没有完全砍掉GUI,必然也会有人喊不习惯(至于如何处理好这两个界面的问题,后面会提到)。&
当然,GUI还会在可以预见的未来长期存在,就像命令行界面(CLI)直到现在都一直存在一样。顺便说一句,虽然从2000(NT5.0)起的 Windows不再是在DOS上加一个图形界面的外壳,命令处理程序(cmd)一直存在,甚至在7中引进了PowerShell(作为Linux爱好者,这里就忍住不吐槽PS了),其原因值得思考。&
现在谈很多人认为抓狂的两个界面切换的问题,其实个人作为精神分裂症患者,这对咱来说不是啥问题,当然更多的还是应该考虑到大多数正常人的。如果说现在微软强推给我们的情形是“这样”,那么作为拥有主观能动性的人类我们不妨可以“那样”想和做,如果你愿意:&
平板用户可以在开始界面中将桌面的tile取消,这样就不会因为误碰此tile而进入GUI;而对于PC用户,假如你根本不想使用这NUI,最简单的方法就是坚守Win7,而像我这样因为喜欢性能方面更好的8的用户,可以将除了桌面以外的所有tile消除(自己甚至也将桌面tile扔掉,因为有快捷键 Win+D)。
而这个建议有个前提,就是在GUI下使用鼠标,在NUI下触控,原因很废话也很简单,GUI是针对鼠标而设计的,人手指的触控没有鼠标的精确(你非要说 stylus的精度也不错?这个问题乔老在爱疯1代发布会上就说过,这里不多扯),同时GUI下的拖拽和右键等操作是不太方便用触控来实现的;相对地,NUI下因为更加注重以”内容“为中心,因此每个app不管是以tile形式还是全屏运行形式,其所占的屏幕比重较大,有助于人手指的触控操作。
微软的确是强行把两个界面糅合在一个系统里扔给了用户,同时微软也建议在合适的场合使用合适的操作方式,至于合适具体是什么,就看个人选择和喜好喽。从用户角度上看,如果改变不了傲慢的微软的想法,要么就干脆不用8甚至不用瘟都死,要么就聪明地有选择性地用,我是这么理解合适的意思。当然,对于超级本和变形本来说,因为有了硬件的支持和切换,玩转这两个界面应该比单纯的PC和平板用户要容易。&
另外,其实微软在NUI的尝试在Windows XP Media Center Edition和Kinect中就有所体现,更别提WP7中就已经开始玩Modern UI了,所以8其实是微软在下一盘很大的棋的开始,确实是一个新的开始,这也是微软敢如此做出现在这样的8的一个原因。&
最后,作为Modern UI中频繁使用的charm bar,其可看做是全局菜单和当前app菜单的整合,并且在快捷键和搜索方面更加偏重。 (Ubuntu Unity界面中的Dash和Heads Up Display笑了,以前有人说Launcher抄袭Win7中的superbar,现在反过来抄了,哈哈,这真的是很有趣的事情)
转自/articles/219659.htm
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:

我要回帖

更多关于 有图形界面的linux 的文章

 

随机推荐