[讨论]我们何不将图形界面(GUI)从内核与应用分离?

不同视角、不同观点、深度探讨,禁止人品和道德攻击
回复
paopaozj
帖子: 823
注册时间: 2007-10-28 23:35

#16

帖子 paopaozj » 2007-12-02 10:51

LZ你换个版本就行了
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

#17

帖子 猛将兄 » 2007-12-02 10:52

spectator 写了:恐怕是一堆人没理解楼主想表达什么意思吧
楼主只不过想要一台电视机一样的终端,只负责影像信号的转换和显示处理,而根本不参与其他的计算,就像是一台电视机,只不过把遥控器改成鼠标键盘,再到电视台定制个节目点播服务.
再和你说一遍,X就是这么设计的。想深入的话,好好看看X的spec
lb_bn
帖子: 1261
注册时间: 2007-02-25 16:56

#18

帖子 lb_bn » 2007-12-02 11:00

本来就是这样子的,楼主还想要什么??? :lol:
spectator
帖子: 178
注册时间: 2007-10-20 20:15

#19

帖子 spectator » 2007-12-02 12:36

猛将兄 写了:
spectator 写了:恐怕是一堆人没理解楼主想表达什么意思吧
楼主只不过想要一台电视机一样的终端,只负责影像信号的转换和显示处理,而根本不参与其他的计算,就像是一台电视机,只不过把遥控器改成鼠标键盘,再到电视台定制个节目点播服务.
再和你说一遍,X就是这么设计的。想深入的话,好好看看X的spec
的确是这样设计的啊,我这里表达错了,
按我的理解楼主希望的可能是X可以直接支配硬件资源.也就是本身也就是一个完整的OS
就是像kde,gnome这类的WM不是作为X下的一个应用,而是可以脱离X环境而独立运行于硬件之上,

最终的结果是server/gui-client/wm就像是windows/linux/mac os这样完全独立的三个操作系统.
orscc
帖子: 17
注册时间: 2007-11-15 4:40

#20

帖子 orscc » 2007-12-02 15:04

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里面的内容了(服务器端只要指定使用什么字体就可以了,服务器端不提供字体)
头像
fortruth
帖子: 1795
注册时间: 2005-11-06 1:51
来自: 七彩云世界
联系:

#21

帖子 fortruth » 2007-12-02 15:24

我想可能动90%d的人不知道X是怎么回事.而且好像也没有什么必要.
佛出寺,求索真世界 For_Truth:Free_Open_Share
OPEN GPG KEY:03D18D95
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

#22

帖子 猛将兄 » 2007-12-02 15:40

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里面的内容了(服务器端只要指定使用什么字体就可以了,服务器端不提供字体)

并不是叫服务器,就一定是服务器 :lol: :lol: :lol: :lol:
X里面,C/S的概念和所谓的魔兽/ftp什么的不一样
wiki里面引用一段吧。如果你是学CS或者相关的专业,相信你很快就能明白。如果不是,我想,可能你真的要花点时间想想
Unlike 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).
实际上,在X的架构里面,X server是负责捕捉用户输入输出的部分,真实运行程序的,叫做X-client
呵呵,就是打个比方说,如果一个程序在你windows上显示,而实际上那个进程是在远程的机器上跑,远程机器不停地发各种GUI命令给你的机器,然后你的机器捕捉这个程序需要的输入输出(比如键盘鼠标等),再反馈给远程机器的进程。那么这个时候,能显示界面和捕捉输入输出的程序叫X-server,而远程跑进程的机器,叫X-client。
:lol:
头像
sonixrp
帖子: 505
注册时间: 2007-03-28 12:39

#23

帖子 sonixrp » 2007-12-02 16:04

ls的意思我还是有点不明白,那比如win下使用xmanager连接linux机器的时候,xmanager接受是主机的输出命令吗?比如:输出Hello world.以红色输出在显示器的xy坐标点位置。还是把整个屏幕的图片传输过来了呢?估计不是图片吧,如果是那样的话,还不得慢死。但如果是信息命令的话那xmanager也应该能看到compiz提供的3D效果吧只要win的那个机器支持3D效果。
目前研究自编译内核,有兴趣的朋友一起来吧~
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

#24

帖子 猛将兄 » 2007-12-02 16:10

sonixrp 写了:ls的意思我还是有点不明白,那比如win下使用xmanager连接linux机器的时候,xmanager接受是主机的输出命令吗?比如:输出Hello world.以红色输出在显示器的xy坐标点位置。还是把整个屏幕的图片传输过来了呢?估计不是图片吧,如果是那样的话,还不得慢死。但如果是信息命令的话那xmanager也应该能看到compiz提供的3D效果吧只要win的那个机器支持3D效果。
xmanager是什么东西?没用过。
我觉得我说的很清楚了吧。。。
传送的是X protocol,简单地说,就是怎么画 图形的指令,然后由你的xserver来画。而x-server并不是我们传统理解的,没有gui的server。恰恰相反,xserver只负责gui。而xclient才是主角,他负责指挥xserver怎么画gui。
头像
yutianming
帖子: 11
注册时间: 2007-11-20 20:19

#25

帖子 yutianming » 2007-12-02 16:11

猛将兄的意思应该是X-server是跑在客户机上绘制GUI和发送命令的,X-client是跑在服务器上接收和反馈命令的 8)
头像
yysq009
帖子: 2682
注册时间: 2007-01-28 23:00
来自: @江西|南昌@
联系:

#26

帖子 yysq009 » 2007-12-02 16:46

xmanager也是一个X-server 可以运行在WIN和LINUX下 专门进行远程桌面连接的 通过XDM的一个协议。。。


猛将兄的意思,我听明白了。。。

看来很多人(包括我)都没有了解X.org这个伟大的创意!!呵呵!!!

Do as you would be done by !
spectator
帖子: 178
注册时间: 2007-10-20 20:15

#27

帖子 spectator » 2007-12-02 16:55

其实x-window的这种架构特点使得它还有很多种不同的工作方式,有兴趣的可以看一下这个入门资料

http://www.linuxfans.org/bbs/viewthread ... highlight=
biosxjj
帖子: 277
注册时间: 2007-04-04 15:56

#28

帖子 biosxjj » 2007-12-02 16:56

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结果
哦 ~不过现在 XWINDOW不是构建在XSERVER 之上吗?XSERVER不是和内核分离的吗?XSERVER就是你说的gui解释器啊

还是不明白你的意思 你说的分离是指远程gui 管理 吗 但是 gui 由远程 机器产生 只传送相应的解释命令 是这个意思吗? 越来越像基于HTTP的 的 远程客户端阮件了 ~~
珍爱生命 请使用N卡
biosxjj
帖子: 277
注册时间: 2007-04-04 15:56

#29

帖子 biosxjj » 2007-12-02 16:57

猛将兄 写了:楼主,你说的一点都不难懂
X-window就这么设计的
不是什么楼上有人说的“远程桌面”,就是直接X输出指令到远程机器,远程机器负责画窗口。
你回帖前,仔细看看我的回帖好不好,或者你发帖前,仔细研究研究X好不好
楼主的意思就是远程管理~~
不是你说的本地服务~
珍爱生命 请使用N卡
biosxjj
帖子: 277
注册时间: 2007-04-04 15:56

#30

帖子 biosxjj » 2007-12-02 17:01

hubert_star 写了:按我理解的意思是楼主希望x-windows运算使用客户机资源,内核运算使用服务器资源,是不是?

楼主看X的设计了吗?或者说真的理解X的客户端/服务器模式了吗?

问楼主一个问题,用X启动一个计算器,按照楼主的想法窗口资源在客户机上进行运算,所以绘制窗口的运算先不管,那么要用计算器算一个1+1的运算,用的CPU你希望是服务器还是客户端呢?
他的意思可能是 客户端只有个gui 传送 输入 的1 + 1 用的当然是客户端的cpu 计算 得出2 是服务器的cpu 然后显示在gui上面用的是客户端的cpu 。。
关键是 linux 是一台机器 cpu 只有1个 不知道怎么才算分离 ~~
珍爱生命 请使用N卡
回复