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

不同视角、不同观点、深度探讨,禁止人品和道德攻击
回复
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

#106

帖子 hubert_star » 2007-12-05 16:24

orscc 写了::P 我又回来了~很不愿意的说,似乎还是跟我想象的不太一样

首先,我承认之前对X系统认知确实有误,认识不够深刻

但是通过试用了几天Xming(一个win端的X server)以后,感觉还是跟我想象的不太一样,说出来和大家交流一下
a.在Win端装完Xming-*以后,似乎就不能在Win端的Xming里面安装任何针对Lin服务器端的GUI了;
这点跟我想象的GUI分离就有很大的偏离,按我的想法是:Lin端安装必不可少的执行代码和数据,Win端安装相关管理和配置的GUI
举例:大家都知道,ubuntu自带了一个iptables防火墙,那么想要用GUI管理iptables的配置等等,要怎么做呢?很简单,装一个firestarter
现在的问题是:安装是在ubuntu的服务器里面,而不是在Win的Xming里面。而按我想象的GUI分离,ubuntu只跑必不可少的执行代码和数据即可——也就是iptables这个程序和相关配置文件;而firestarter这个东东,它应该安装在Win里面的Xming里面(占用的是Win的软硬件资源)

回到WEB模型里面,这个Xming就相当于浏览器,为了执行服务器端的一段代码,它必须不停的安装相对应的插件,而不是去要求服务器不断的安装新的程序;好比浏览器要播放mp3,就要在浏览器里面安装一个多媒体插件;浏览器要播放flash,就要安装一个adobe的插件;

而现在这种配置方式,想在Xming里面使用漂亮的Ubuntu桌面,你必须在服务器端安装1G多的东西,所以我想反过来问了:这1G多的东西里面,有多少是必不可少的执行代码和数据,有多少属于GUI类的,为什么不把前者安装在服务器里面负责执行,把后者安装在Win里面的Xming负责显示和交互?

我觉得今天的B/S架构真是充满了智慧,它充分利用了客户端和服务器端的资源!

另外,推荐和我一样的菜鸟和对X有点认知不全的读一下下列介绍X的文章:特点是比较好懂 :lol:
1.王垠的理解 Xwindow
http://docs.huihoo.com/homepage/shredderyin/x.html
2.windows 下的 x server——Xming
http://quickbest.com.cn/discuz/thread-8534-1-1.html
3.使用cygwin X server实现Linux远程桌面 (for windows)
http://blog.csdn.net/easwy/archive/2007 ... 07725.aspx

提示一下:
1 B/S结构跟C/S结构相比,客户端的运算量小了很多,都送给服务器了,所以你的理解是错误的。C/S才是在客户机上进行实际运算。

2 如果允许在外部的应用直接操作服务器的防火墙,那么服务器的安全性何在?
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

#107

帖子 猛将兄 » 2007-12-05 16:28

B/S架构就是inspired by X-window的设计,只是更简单实现而已

更加天才的还是X
关于你说的要装的GUI库,之所以web不需要,那是因为http相当简单而已。现在桌面越来越复杂,B/S根本不可能做到功能/性能的平衡。加了无数的插件,说实话,已经是B/S向C/S的妥协了。让一个原本跨平台的信息共享平台,受到越来越多的限制而已
palxex
帖子: 136
注册时间: 2006-10-30 11:23

#108

帖子 palxex » 2007-12-05 18:22

按web服务器方式提供mp3播放之类自然很容易。但问题是,这个比喻的方向又错了。
远程控制要求的是一个通用得多的架构。你要求的这个,还用iptables举例,需要一个win32 native的iptables前端和它与远端iptables daemon通讯的协议。每个这样的程序都需要设计自己的GUIs和protocols。当然,b/s增加了一层抽象来解决——前者B/S系统用HTML来构建,后者用http。这两者都不是以性能著称的,事实上恰恰相反。现在的增强型B/S solution如XAML和XUL……等时间来说话吧。只是说一句,即使是比http高效数百倍的X协议——现在也还不能流畅地作opengl加速。
事实上到现在GUI程序的开发仍然是各家有各家的规范和流程,通用性就极成问题。LZ想让ubuntu桌面装在windows上,那到底是什么意思,是自己有个明确的概念还是仅仅停留在概念上里?是一堆native w32 程序?还是根据某种元定义生成?两者都无可救药的落入了移植泥潭。
ino1
帖子: 266
注册时间: 2006-10-28 18:05

#109

帖子 ino1 » 2007-12-05 19:23

楼主的意思就是我在101楼的理解。
以compiz fusion举例,CF有一个配置程序,把它当作客户端,而运行CF就当作服务器端。显然那个配置程序是完全可以和CF分离的,甚至放在windows下(如果也给它搞一个windows的配置程序话,生产配置文件后ssh回去就ok了),因为CF只需要配置文件就可以实现所有功能了。其实linux下的服务都是这样的方式:samba,httpd,dns........,都是依靠配置文件实现功能的。
而按我想象的GUI分离,ubuntu只跑必不可少的执行代码和数据即可——也就是iptables这个程序和相关配置文件;而firestarter这个东东,它应该安装在Win里面的Xming里面(占用的是Win的软硬件资源)
这里的firestarter这个东东更本就没必要安装在win的xming里面,直接安装在windows不是更简单吗?
由此,实质演变成编写各个服务的客户端程序,方便那些不想自己写配置文件的可以采用图形界面来生成配置文件。只是,linux下的服务本来就没有多少是用图形界面来配置的,大多数也不喜欢用图形界面来配置。
P4M 2.4GHz 256+512MDDR IGP340M共享64M
越来越喜欢beryl了,把我的桌面扩展得好大呀!
头像
晶晶守护神
帖子: 705
注册时间: 2007-12-02 14:09

#110

帖子 晶晶守护神 » 2007-12-05 19:46

就是用gui程序配置命令行程序~~!~~ 看是远程调用还是语意通讯了~~
远程调用还没有实现~~~基于语意的程序是实现了的
thomsi
帖子: 67
注册时间: 2007-08-17 14:04

#111

帖子 thomsi » 2007-12-06 13:16

大概看明白了楼主的意思,有点类似ROUTEROS系统和远程管理的WINBOX,在装ROUTEROS的机器上是没有安装X的,纯字符,而在WINBOX上却显示的是图形界面(但是要注意,WINBOX是必须安装在WINDOWS上的,他不能独立运行),这样就很明白了,之所以能这样是以为WINBOX依赖WINDOWS的绘图功能,他并不能独立出来,还得依赖操作系统。
大概楼主讲的独立出来是把xserver和xclient两个模块独立到两个硬件机器上来,但是如果运行3D就不知道会要求多大的带宽了,本是CPU、内存、显卡之间的数据交换使用的是PCI总线,现在却变为使用宽带。
不知道我讲得是不是对,总之客户端还得依赖操作系统。
楼主能否告诉我们想分离的目的在哪里?能带来什么好处?这点很重要,否则都找不到重点,也不能理解楼主的真正意图。
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

#112

帖子 hubert_star » 2007-12-06 13:41

楼主的意识不光是x窗口的问题,还有一个应用安装在哪端而运算又在哪端的问题,看过多遍以后理解楼主希望所有的东西在客户端安装,而运算的时候是在服务器运算,我的思路是越来越混淆了。
回复