搜索
首页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
使用Next.js(后端集成)构建多租户SaaS应用程序使用Next.js(后端集成)构建多租户SaaS应用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务

如何使用Next.js(前端集成)构建多租户SaaS应用程序如何使用Next.js(前端集成)构建多租户SaaS应用程序Apr 11, 2025 am 08:22 AM

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库

JavaScript:探索网络语言的多功能性JavaScript:探索网络语言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是现代Web开发的核心语言,因其多样性和灵活性而广泛应用。1)前端开发:通过DOM操作和现代框架(如React、Vue.js、Angular)构建动态网页和单页面应用。2)服务器端开发:Node.js利用非阻塞I/O模型处理高并发和实时应用。3)移动和桌面应用开发:通过ReactNative和Electron实现跨平台开发,提高开发效率。

JavaScript的演变:当前的趋势和未来前景JavaScript的演变:当前的趋势和未来前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

神秘的JavaScript:它的作用以及为什么重要神秘的JavaScript:它的作用以及为什么重要Apr 09, 2025 am 12:07 AM

JavaScript是现代Web开发的基石,它的主要功能包括事件驱动编程、动态内容生成和异步编程。1)事件驱动编程允许网页根据用户操作动态变化。2)动态内容生成使得页面内容可以根据条件调整。3)异步编程确保用户界面不被阻塞。JavaScript广泛应用于网页交互、单页面应用和服务器端开发,极大地提升了用户体验和跨平台开发的灵活性。

Python还是JavaScript更好?Python还是JavaScript更好?Apr 06, 2025 am 12:14 AM

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。 1.Python以简洁语法和丰富库生态着称,适用于数据分析和Web开发。 2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

如何安装JavaScript?如何安装JavaScript?Apr 05, 2025 am 12:16 AM

JavaScript不需要安装,因为它已内置于现代浏览器中。你只需文本编辑器和浏览器即可开始使用。1)在浏览器环境中,通过标签嵌入HTML文件中运行。2)在Node.js环境中,下载并安装Node.js后,通过命令行运行JavaScript文件。

在Quartz中如何在任务开始前发送通知?在Quartz中如何在任务开始前发送通知?Apr 04, 2025 pm 09:24 PM

如何在Quartz中提前发送任务通知在使用Quartz定时器进行任务调度时,任务的执行时间是由cron表达式设定的。现�...

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脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器