[讨论]我们何不将图形界面(GUI)从内核与应用分离?
- 猛将兄
- 帖子: 2052
- 注册时间: 2005-10-19 17:33
-
- 帖子: 178
- 注册时间: 2007-10-20 20:15
的确是这样设计的啊,我这里表达错了,猛将兄 写了:再和你说一遍,X就是这么设计的。想深入的话,好好看看X的specspectator 写了:恐怕是一堆人没理解楼主想表达什么意思吧
楼主只不过想要一台电视机一样的终端,只负责影像信号的转换和显示处理,而根本不参与其他的计算,就像是一台电视机,只不过把遥控器改成鼠标键盘,再到电视台定制个节目点播服务.
按我的理解楼主希望的可能是X可以直接支配硬件资源.也就是本身也就是一个完整的OS
就是像kde,gnome这类的WM不是作为X下的一个应用,而是可以脱离X环境而独立运行于硬件之上,
最终的结果是server/gui-client/wm就像是windows/linux/mac os这样完全独立的三个操作系统.
-
- 帖子: 17
- 注册时间: 2007-11-15 4:40
spectator说的有点符合我的意思
我跟猛将对X系统的理解不一样,我认为X系统是利用了服务器端的软硬件资源来生成图形,然后通过远程软件来传输图形,在这个模式下,远程里面能看到的图像,在服务器端也一定能显示出来,如果服务器端显示不出来的东西,远程里面也无法显示
IBM 的developerWorks 里面也是这样说的
* X11:
o 服务器显示图形
o 客户机计算要显示的结果
* VNC:
o 服务器呈现图形——通常位于执行计算的同一主机上
o 客户机或查看器显示图形
http://blog.csdn.net/WAST/archive/2007/ ... 83841.aspx
但我说的GUI分离不是这个样子的东西,我已经说过WEB算一种GUI分离的形式,下面我再举个游戏服务器的例子:
魔兽世界的服务器端:运行的是数据库,显卡不具备3D加速功能,你无法在服务器端显示魔兽世界游戏里的任何界面
魔兽世界的客户端:运行的是WINDOWS和对应的游戏客户端,显卡必须具有3D加速功能,客户端可以显示魔兽世界游戏的界面
一个很简单的证明现有的远程(包括X)不属于GUI分离的观点就是:X必须在客户端正确安装上显卡驱动,你才能在远程里面使用桌面
如果X真的属于GUI分离,根本就不需要安装什么显卡驱动,因为GUI的显示功能只要客户端提供,根本无需服务器的显卡工作
而X传输的是图像,所以,你也无法调用Win里面的字体去改变远程里面X程序的字体(因为那是图片)
但换过来说GUI分离的WEB就可以调用WIN的字体显示WEB里面的内容了(服务器端只要指定使用什么字体就可以了,服务器端不提供字体)
我跟猛将对X系统的理解不一样,我认为X系统是利用了服务器端的软硬件资源来生成图形,然后通过远程软件来传输图形,在这个模式下,远程里面能看到的图像,在服务器端也一定能显示出来,如果服务器端显示不出来的东西,远程里面也无法显示
IBM 的developerWorks 里面也是这样说的
* X11:
o 服务器显示图形
o 客户机计算要显示的结果
* VNC:
o 服务器呈现图形——通常位于执行计算的同一主机上
o 客户机或查看器显示图形
http://blog.csdn.net/WAST/archive/2007/ ... 83841.aspx
但我说的GUI分离不是这个样子的东西,我已经说过WEB算一种GUI分离的形式,下面我再举个游戏服务器的例子:
魔兽世界的服务器端:运行的是数据库,显卡不具备3D加速功能,你无法在服务器端显示魔兽世界游戏里的任何界面
魔兽世界的客户端:运行的是WINDOWS和对应的游戏客户端,显卡必须具有3D加速功能,客户端可以显示魔兽世界游戏的界面
一个很简单的证明现有的远程(包括X)不属于GUI分离的观点就是:X必须在客户端正确安装上显卡驱动,你才能在远程里面使用桌面
如果X真的属于GUI分离,根本就不需要安装什么显卡驱动,因为GUI的显示功能只要客户端提供,根本无需服务器的显卡工作
而X传输的是图像,所以,你也无法调用Win里面的字体去改变远程里面X程序的字体(因为那是图片)
但换过来说GUI分离的WEB就可以调用WIN的字体显示WEB里面的内容了(服务器端只要指定使用什么字体就可以了,服务器端不提供字体)
- fortruth
- 帖子: 1795
- 注册时间: 2005-11-06 1:51
- 来自: 七彩云世界
- 联系:
- 猛将兄
- 帖子: 2052
- 注册时间: 2005-10-19 17:33
orscc 写了:spectator说的有点符合我的意思
我跟猛将对X系统的理解不一样,我认为X系统是利用了服务器端的软硬件资源来生成图形,然后通过远程软件来传输图形,在这个模式下,远程里面能看到的图像,在服务器端也一定能显示出来,如果服务器端显示不出来的东西,远程里面也无法显示
IBM 的developerWorks 里面也是这样说的
* X11:
o 服务器显示图形
o 客户机计算要显示的结果
* VNC:
o 服务器呈现图形——通常位于执行计算的同一主机上
o 客户机或查看器显示图形
http://blog.csdn.net/WAST/archive/2007/ ... 83841.aspx
但我说的GUI分离不是这个样子的东西,我已经说过WEB算一种GUI分离的形式,下面我再举个游戏服务器的例子:
魔兽世界的服务器端:运行的是数据库,显卡不具备3D加速功能,你无法在服务器端显示魔兽世界游戏里的任何界面
魔兽世界的客户端:运行的是WINDOWS和对应的游戏客户端,显卡必须具有3D加速功能,客户端可以显示魔兽世界游戏的界面
一个很简单的证明现有的远程(包括X)不属于GUI分离的观点就是:X必须在客户端正确安装上显卡驱动,你才能在远程里面使用桌面
如果X真的属于GUI分离,根本就不需要安装什么显卡驱动,因为GUI的显示功能只要客户端提供,根本无需服务器的显卡工作
而X传输的是图像,所以,你也无法调用Win里面的字体去改变远程里面X程序的字体(因为那是图片)
但换过来说GUI分离的WEB就可以调用WIN的字体显示WEB里面的内容了(服务器端只要指定使用什么字体就可以了,服务器端不提供字体)
并不是叫服务器,就一定是服务器




X里面,C/S的概念和所谓的魔兽/ftp什么的不一样
wiki里面引用一段吧。如果你是学CS或者相关的专业,相信你很快就能明白。如果不是,我想,可能你真的要花点时间想想
实际上,在X的架构里面,X server是负责捕捉用户输入输出的部分,真实运行程序的,叫做X-clientUnlike previous display protocols, X was specifically designed to be used over network connections rather than on an integral or attached display device. X features network transparency: the machine where an application program (the client application) runs can differ from the user's local machine (the display server).
呵呵,就是打个比方说,如果一个程序在你windows上显示,而实际上那个进程是在远程的机器上跑,远程机器不停地发各种GUI命令给你的机器,然后你的机器捕捉这个程序需要的输入输出(比如键盘鼠标等),再反馈给远程机器的进程。那么这个时候,能显示界面和捕捉输入输出的程序叫X-server,而远程跑进程的机器,叫X-client。

- sonixrp
- 帖子: 505
- 注册时间: 2007-03-28 12:39
- 猛将兄
- 帖子: 2052
- 注册时间: 2005-10-19 17:33
xmanager是什么东西?没用过。sonixrp 写了:ls的意思我还是有点不明白,那比如win下使用xmanager连接linux机器的时候,xmanager接受是主机的输出命令吗?比如:输出Hello world.以红色输出在显示器的xy坐标点位置。还是把整个屏幕的图片传输过来了呢?估计不是图片吧,如果是那样的话,还不得慢死。但如果是信息命令的话那xmanager也应该能看到compiz提供的3D效果吧只要win的那个机器支持3D效果。
我觉得我说的很清楚了吧。。。
传送的是X protocol,简单地说,就是怎么画 图形的指令,然后由你的xserver来画。而x-server并不是我们传统理解的,没有gui的server。恰恰相反,xserver只负责gui。而xclient才是主角,他负责指挥xserver怎么画gui。
- yutianming
- 帖子: 11
- 注册时间: 2007-11-20 20:19
- yysq009
- 帖子: 2682
- 注册时间: 2007-01-28 23:00
- 来自: @江西|南昌@
- 联系:
-
- 帖子: 178
- 注册时间: 2007-10-20 20:15
其实x-window的这种架构特点使得它还有很多种不同的工作方式,有兴趣的可以看一下这个入门资料
http://www.linuxfans.org/bbs/viewthread ... highlight=
http://www.linuxfans.org/bbs/viewthread ... highlight=
-
- 帖子: 277
- 注册时间: 2007-04-04 15:56
哦 ~不过现在 XWINDOW不是构建在XSERVER 之上吗?XSERVER不是和内核分离的吗?XSERVER就是你说的gui解释器啊orscc 写了:似乎我说的真的有点难懂哦~努力的解释一下:
1.首先,我说的GUI与内核/应用分离并不是指远程桌面;我说的分离是指"GUI的表现"依赖于客户端的软硬件资源,而不依赖于服务器端的软硬件资源;服务器端提供部分的数据处理与内容
远程桌面一个很明显的特点是:远程桌面所有的GUI表现,在服务器端本身必然也可以表现,比如说我们如果可以在远程桌面启动服务器的X-Windows,则我们必然可以在服务器本身启动X-Windows
但GUI分离不是这样,客户端可以表现的图形,在服务器端不一定可以表现出来,因为GUI分离后,图形的表现解释交给了客户端来完成,不需要取决于服务器端。例子:一台基本的web服务器,客户端可以通过浏览器浏览服务器上面的web文件,web文件本身在服务器端可能无法以图形界面表现出来(因为根本没安装X),但由于客户端可以自行解释,所以客户端可以得到一个web形式的GUI
对比:
WEB形式的GUI分离:服务器端L.A.M.P(负责提供部分数据处理和内容)——HTTP/S协议传送——WEB浏览器+客户端OS负责解释——用户得到一个WEB形式的GUI
通用程序和内核的GUI分离:服务器端Linux+GUI SERVER——SSH的TCP/IP协议传送——GUI CLIENT+客户端OS负责解释——用户得到一个GUI结果
还是不明白你的意思 你说的分离是指远程gui 管理 吗 但是 gui 由远程 机器产生 只传送相应的解释命令 是这个意思吗? 越来越像基于HTTP的 的 远程客户端阮件了 ~~
珍爱生命 请使用N卡
-
- 帖子: 277
- 注册时间: 2007-04-04 15:56
-
- 帖子: 277
- 注册时间: 2007-04-04 15:56
他的意思可能是 客户端只有个gui 传送 输入 的1 + 1 用的当然是客户端的cpu 计算 得出2 是服务器的cpu 然后显示在gui上面用的是客户端的cpu 。。hubert_star 写了:按我理解的意思是楼主希望x-windows运算使用客户机资源,内核运算使用服务器资源,是不是?
楼主看X的设计了吗?或者说真的理解X的客户端/服务器模式了吗?
问楼主一个问题,用X启动一个计算器,按照楼主的想法窗口资源在客户机上进行运算,所以绘制窗口的运算先不管,那么要用计算器算一个1+1的运算,用的CPU你希望是服务器还是客户端呢?
关键是 linux 是一台机器 cpu 只有1个 不知道怎么才算分离 ~~
珍爱生命 请使用N卡