搜索
首页web前端js教程关于xwin的几个基本概念

术语GUI,window manager,desktop,和interface间的区别(如果有的话),它们和Xwindow有什么关系? 
在X的世界里,事物是分成很多组件的,而不象其他的操作系统那样,任何东西都是OS的一个部分。 这里是一些定义: 

Interface是一个普通术语,意思是指在计算机系统的两个互不依赖的组件间的连结,一个桥。 它通常用来指"user interface"(用户界面)就是用户和计算机系统之间联系的部分。 

GUI是另一个普通术语。代表graphical user interface,图形用户界面。它就想它听起来那么漂亮; 它是一个主要是图形组成的用户界面。Mac OS和Windows都是GUI的,实际上,现在相当多都用于桌上型电脑。 

在 Mac OS 和 Windows,构件图形界面的功能都做在了操作系统里面,你只能使用那些。这个方法很简单, 但是却不灵活。Unix和类Unix的操作系统没有内建这个功能,要使用GUI你就不得不使用"windowing system"(窗口系统)。 X就是其中之一——现在看来是唯一的一个。 

X提供的功能是在屏幕上构造方块(窗口),然后画出里面的元素,它并不支持这些功能: 

a) 移动窗口、改变它们的大小,关闭它们, 

b) 象按钮菜单这样的标准控件 

c) 为设计用户界面、编程的标准,或程序间的交互操作(例如拖拽或标准帮助系统? 

Window manager是个可以方你移动窗口和改变它们大小的程序。它通常也支持把一个窗口缩成一个图标或任务条。 通常有某种程序执行机构。用户可以使用window manager来做他想做的——任何X应用程序应该可以在任何窗口管理器上工作。 但是你依次进能运行一个。这就是说,你可以切换于任何多个window manager,但是同一时刻你进能运行一个。屏幕上的所有程序都可以被正在运行的window manager管理。 

widget集是一个常规的工具库,程序员使用它来构造象按钮和菜单这样的标准控件(X程序员叫 它们做widget。一个应用程序使用的wedget集是由程序员来选择的,而不是用户。很多人都安装多种widget集, 这样可以同时运行多个程序员使用不同widget set写的程序。 

最后,解释一下desktop environment,桌面环境。这是一个最新的也最模糊的X术语。 它基本的意思是指“ Mac OS 和 Windows的图形界面有,而X没有却应该有的东西”。 通常是一组有着共同外观和操作感的应用程序,和程序库,以及创建新的应用程序的方法。 例如,所有的KDE应用程序都所以用相同的widget集(Qt)和帮助程序,你可以谒侵渫献А?你同时可以安装多个桌面环境,而且你可以在一个桌面环境中运行另一个不同的桌面环境的应用程序, 而不用切换到过去(当然你要安装那个桌面才行)。就是说,如果你使用GNOME,但是你喜欢KDE的字处理器KLyX, 那么你可以运行KLyX,而不运行任何其他的KDE程序,但是它就不能和你那些GNOME的程序互相交互了。 你甚至可以同时运行GNOME和KDE的核心程序,事实上这没有什么意义,你会同时有两个文件管理器,两个面板,等等。 

所有的窗口管理器(象GNOME或KDE或FVWM95)都运行在X windows之上吗? 

是的,虽然GNOME和KDE不是窗口管理器(它们是桌面环境)。KDE是和一个叫KWM的窗口管理器一起的。 GNOME则没和任何窗口管理器做在一起,你可以使用任何你想用的窗口管理器,虽然有一些是特地为GNOME写的(Enlightenment就是一个)。但是它们都需要X来运行。 

说一个应用软件是基于GNOME或KDE的到底是什么意思呢?如果它不是,那会怎 样?你仍然可以运行它吗? 

这仅意味这它是使用GNOME或KDE的库写的。意思是:1)程序可能不是同时基于GNOME和KDE的, 2) 你不得不安装GNOME的库来运行基于KDE的软件,3) 你可以并行的运行GNOME的应用程序和KDE的应用程序, 4) 如果你使用任何一个环境,你总是可以运行非基于该环境的应用程序。 

GTK+(for GNOME)或Troll(for KDE)到底是什么? 

GTK和Qt(Qt是KDE使用的Troll Tech的产品)都是widget集。也就是说,它们提供了按钮,菜单,滚动条和各种各样 的对象给程序开发人员使用。注意,非基于GNOME或KDE的应用程序能够使用GTK+或Qt,但是所有的GNOME程序都使用GTK+, 所有的KDE应用程序都使用Qt。 

Linux(或UNIX)窗口管理器的历史和Windows98/95的用户使用的桌面相比怎么 

样?特别是,如何评价微软通过给定用户仅仅一种桌面来限制他们的选择,这 

种桌面据信是一种为方便用户使用而设计的。 

这是一个很复杂的问题,从本质上来讲,Windows提供了一个由窗口系统、窗口管理器、widget集 和桌面环境共同组成的构造集,因此每个人都只能使用它,而不能选择它们喜欢的。 

通用桌面环境(CDE)怎么样了?它是因为太消耗系统资源或是未开放源码而没有 被Linux用户广泛采用吗? 

是的,它占用太多的内存。你可以从RedHat那里得到它。 

-- 
Tim 

-------------------------------------------------------------- 
Date: Wed, 2 Dec 1998 00:34:46 +0100 (AMT) 
From: Hans Nieuwenhuis, niha@ing.hj.se 

今天我从Linux Gazette上看到了你的邮件,我决定试着回答你的问题。 

是这样的: 

X-Windows被设计成为一种客户端--服务器(client-server)的系统。这样做的优点是你可以把服务器运行于和你的显示器所在的机器不同的另一台机器上。你需要一个client。这可能是一个程序或一个窗口管理器。窗口管理器通过要求服务器创建窗口来和它通讯。当服务器接到要求,就会给出一个标题条,然后让应用程序创建它自己的界面。从根本上说,窗口管理器是介于服务器和应用程序之间的,但是它不是必须的。你可以没有窗口管理器而直接在服务器上运行一个应用程序,但是你唯一能做的事就是运行这个指定的应用程序、关闭它,和关闭X服务器(即,不能移动它、改变窗口大小等)。 

GUI是指图形用户界面,意思是所有呈现在屏幕上的信息都使用窗口、菜单、按钮等来表示,就象是Windows。 所有的都是交互的,界面是建立在这些窗口和按钮之上的。GUI主要的目的是提供一个统一的系统来表现窗口和收集信息。一个不错的例子是MS Windows中的Alt+F4这个快捷键,使用这个键,你可以关闭任何在屏幕上的窗口。一个窗口管理器可能是这个系统的一部分。在KDE和CDE中都是这样。它们共同的特点就是它们 拥有自己的窗口管理器,你可以在桌面上得到统一的形式。从根本上说,在桌面上看到的是那些可以运行在 某个系统上的应用程序的集合。一个统一的图形用户界面可以有象拖放(drag&Drop)和指点(point&shoot) 及把应用程序和某个文件类型关联起来这样的特点。你问的关于基于GNOME或KDE的问题是这样:一个程序被设计成它是哪个环境下的,那么它就可以和这个环境下的其他应用程序互相通讯。拖放就是个例子。某些程序 没有为它们设计的桌面环境确实不能运行,但是有些就可以。举个例子,我使用KDE程序,但是我不喜欢他们的窗口管理器, 因此我使用Window Maker,而Window Maker不是为KDE环境设计的,因此我就不得不损失一些功能不能使用。 

这两个库:GTK+ 和Qt(你提到的Troll)是工具包。它们基本的用途是画窗口、按钮和菜单。 这些会帮你构造你的界面。如果你象运行一个为某个特殊环境设计的应用程序,比如说GNOME, 你至少需要GNOME的库,象GTK+和其他什么。 

正象我前面提到的,X-Windows系统的client-server的设计使用户可以更灵活的选择他们喜欢的窗口管理器。 但是基本上,他们象win95/98系统做的一样。Win95/98 限制你于一个风格和一样的操作感(look and feel) (虽然你可以改变背景的颜色,但是那还是它),但它并没有给用户尝试其他风格和操作感的自由。很多流行的窗口管理器都允许你定义其他的按键组合。如果你不喜欢GNOME,你可以使用KDE,反之亦然。(还有其他几种) 

所有我知道的关于CDE的知识就是它是基于Motif工具包的(不同于GTK+和Qt)这个工具包不象GTK+那样是free的(更恰当的说不是GPL的)。我想这可能是它在Linux上用的不是很多的主要原因。但是它是否很耗系统资源我就不知道了。 我个人不使用它的原因是因为它看上去很傻 :-) 

好了,就这些,我希望这些东西会对你有些用处。如果你有问题,别犹豫………… 

-- 
Hans Nieuwenhuis 

-------------------------------------------------------------- 
Date: Sat, 05 Dec 1998 00:29:34 -0500 
From: sottek, sottek@quiknet.com 

我想我可以花点时间来回答你在Linux Gazette上贴的问题。从你的问题看,我可以告诉你 虽然你是个Linux新手,但你看到了在界面工作上的一些基本不同。目前我正在Inter工作,管理 Unix Cad工具,我每天都要给那些管理员这解释这些不同,我想你会比他们懂的多了。 

1.术语GUI,window manager,desktop,和interface间的区别(如果有的 

话),它们和X window有什么关系? 

X windows是一种把东西画在你的屏幕上的办法。所有的X windows 客户端(画在你面前的部分)都知道如何响应某些命令,例如“画一个绿框”,“画一个点”为客户图象分配内存…… 这不象你想象的Windows那样。 所有的应用程序把这些命令发送到你的客户端。这是通过tcp/ip,实现的,即使你的应用程序和客户端在同一台机器上也是这样。这点非常重要。在MS Windows里首要的设计缺陷就是在窗口系统里缺少网络层。每个 X应用程序(任何窗口……xterm netscape xclock)查看"DIS


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JavaScript框架:为现代网络开发提供动力JavaScript框架:为现代网络开发提供动力May 02, 2025 am 12:04 AM

JavaScript框架的强大之处在于简化开发、提升用户体验和应用性能。选择框架时应考虑:1.项目规模和复杂度,2.团队经验,3.生态系统和社区支持。

JavaScript,C和浏览器之间的关系JavaScript,C和浏览器之间的关系May 01, 2025 am 12:06 AM

引言我知道你可能会觉得奇怪,JavaScript、C 和浏览器之间到底有什么关系?它们之间看似毫无关联,但实际上,它们在现代网络开发中扮演着非常重要的角色。今天我们就来深入探讨一下这三者之间的紧密联系。通过这篇文章,你将了解到JavaScript如何在浏览器中运行,C 在浏览器引擎中的作用,以及它们如何共同推动网页的渲染和交互。JavaScript与浏览器的关系我们都知道,JavaScript是前端开发的核心语言,它直接在浏览器中运行,让网页变得生动有趣。你是否曾经想过,为什么JavaScr

node.js流带打字稿node.js流带打字稿Apr 30, 2025 am 08:22 AM

Node.js擅长于高效I/O,这在很大程度上要归功于流。 流媒体汇总处理数据,避免内存过载 - 大型文件,网络任务和实时应用程序的理想。将流与打字稿的类型安全结合起来创建POWE

Python vs. JavaScript:性能和效率注意事项Python vs. JavaScript:性能和效率注意事项Apr 30, 2025 am 12:08 AM

Python和JavaScript在性能和效率方面的差异主要体现在:1)Python作为解释型语言,运行速度较慢,但开发效率高,适合快速原型开发;2)JavaScript在浏览器中受限于单线程,但在Node.js中可利用多线程和异步I/O提升性能,两者在实际项目中各有优势。

JavaScript的起源:探索其实施语言JavaScript的起源:探索其实施语言Apr 29, 2025 am 12:51 AM

JavaScript起源于1995年,由布兰登·艾克创造,实现语言为C语言。1.C语言为JavaScript提供了高性能和系统级编程能力。2.JavaScript的内存管理和性能优化依赖于C语言。3.C语言的跨平台特性帮助JavaScript在不同操作系统上高效运行。

幕后:什么语言能力JavaScript?幕后:什么语言能力JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript在浏览器和Node.js环境中运行,依赖JavaScript引擎解析和执行代码。1)解析阶段生成抽象语法树(AST);2)编译阶段将AST转换为字节码或机器码;3)执行阶段执行编译后的代码。

Python和JavaScript的未来:趋势和预测Python和JavaScript的未来:趋势和预测Apr 27, 2025 am 12:21 AM

Python和JavaScript的未来趋势包括:1.Python将巩固在科学计算和AI领域的地位,2.JavaScript将推动Web技术发展,3.跨平台开发将成为热门,4.性能优化将是重点。两者都将继续在各自领域扩展应用场景,并在性能上有更多突破。

Python vs. JavaScript:开发环境和工具Python vs. JavaScript:开发环境和工具Apr 26, 2025 am 12:09 AM

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)