LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3854|回复: 38

计划所图形界面整合到gnu/linux的内核中求帮助

[复制链接]
发表于 2005-9-4 13:08:04 | 显示全部楼层 |阅读模式
计划所图形界面整合到gnu/linux的内核中
完全不用实命令行界面。不过保留窗口的命令行界面
在不影响设计目标的前提下,最大努力的保留现在 gnu/linux 下的所有程序不改代码的
兼容性。或少改代码。

把gurb 整合到gnu/linux开机中去,使开机界面在系统的使用中可更方便的定制。需要
实现一个小程序来编辑图片,与导入图片的功能。当然是要窗口程序。

由于是整合GUI 到系统中,即重写一遍图形系统调用函数。所以考虑做一套,界面设计与
代码分离的图形系统调用。想用 xml 语言来设计程序界面。用C语言实现功能代码。
(在想图形界面的样子显示是做成解释型的,还是编译型的,?解释型的好处是能为用户
更方便,灵活的定制界面样子,像人换衣服一样。编译型的好处可能只是快一点。还是有可能
两种方案一起应用。不过这样好像系统就要更慢了。大家帮我想想)

最好是在不太多的改变内核的基础上,实现上面的功能。好与 gnu/linux 系统高度的一至。
这样服务器版与桌面版就能更好的为用户服务。

//*********描述一下开机过程**********//
开机,显示 gurb 开机图像,根据显示器的型号判断图片的分辨率。
引导必要的功能后进入用户名与密码输入界面,此时图形界面由于与内核整合,已经工作。
当然这些功能只是讲到界面的样子,并没有解释命令行中的程序会怎么样。
不过好像login 程序可以在界面中直接用,并很简单的修改好的。
/****************************************/
gtk+ , qt , x-window system 下的程序可能会全部失去。不过他们实在也太不够快了。
如果保留它们,那就会影响到新的 gui 的函数设计的。可能会影响新功能的开发。
还有大家认为 gtk+ 开发的,真的好么。
如果他够好,只是少一些功能的话,那么可以试着把它的框架移过来。添加新功能。如图层功能
用来实现透明度的显示。和3D桌面的功能 。

我知道,要想实现以上功能,要知道很多的显卡资料的。不过如果能利用现在的显卡驱动功能,是不是
会好很多呢?不过好像现在的新显卡的接口资料也没有。这就想请大家帮忙找找。如果找不到,就要去
用 tnt2 了。我想也是能实现的。不过还是显存越多越好的。

主板的驱动,还是用linux的,改的越少越好嘛。声卡,网卡也一样。这里最主要的只是显卡。因为代替
的只是 x-system嘛。

由于显卡对于此计划的重要性,请大家推荐一下此项目的工作显卡型号。以后所有的开发人员都要去弄
一个吧。来更好的实现此项目。

还有另一个重点,就是显示器,我是希望计划成功后,程序能自动判断出显示器的型号的。能即时更新
分辨率的,希望做的要与 xp 不相上下的。xp 在安装系统后,就再也不判断显示器了,如果换显示器,
分辨率不够的话,就会黑屏的。此点功能。要不要在系统每次运行时都查看显示器,还要大家多提意见。

还有鼠标与键盘的速度也要可调的。还要保证用户的感觉的。一定要写个小程序来可调。

/*************************************/
我没有读过 x-system 的代码,只听说它是 客户端与服务器的结构。远程桌面登录会快很多的。
我没有试过并不知道,win2k 与 x-system 到底谁快。不过,我相信,win2k能实现的功能
大家一样都能实现。
/**************************************/

由于计划刚刚开机,所以主要还是寻找资料中。要先实现一个小例子。就是开机图形定制,图形登录,
与关机。第二步,实现桌面显示。
在第二步时,开始设计图形系统调用函数的框架建设。与功能讨论。
最好还是不要放弃 gtk+ 的应用程序,那样会少写很多的软件的。就是在函数名上实现与 gtk+ 库兼容
好像是这个意思。不知道我说明白了没有。
但一定会扩展函数的。

这个计划的目标是速度一定要追 winxp ,不论是开机速度,还是运行速度。
当然,如果是内核其它代码的关系,能调参数的就调。如果不能调也没有办法,
只有去 linux kernel 新闻组说了。

最后还希望大家参与进来。至少提供些资料上的帮助。谢谢了。

wide288 at 163 dot com

wide288          2005-9-4
发表于 2005-9-4 13:24:44 | 显示全部楼层
台湾黑客jserv关于X Window System演讲的简报.
http://jserv.sayya.org/freedesktop/x-dev-2005.pdf
说实话不同意这样的看法与做法 --> "图形界面整合到gnu/linux的内核中"
建议多看看 Xgl 的资料. 还有请先了解 drm egl glitz cairo  等。
gtk+-2.8 已经支持 32 位 visual 也就是说可以透明度了。

The State of Linux Graphics
http://www.freedesktop.org/~jonsmirl/graphics.html

a cairo-glitz demo.
http://www.magiclinux.org/people ... /cairo-glitz.tar.gz

http://www.freedesktop.org/~davidr/slides/xdevconf/
回复 支持 反对

使用道具 举报

发表于 2005-9-4 21:21:34 | 显示全部楼层
不支持楼主

各位还是看看 2  楼的东西吧
回复 支持 反对

使用道具 举报

发表于 2005-9-4 23:09:41 | 显示全部楼层
我觉得这样的工程太大了。以前也有这样的想法。很难发展到硬件商支持的程度。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-5 08:50:16 | 显示全部楼层
X.org 是 x sytem 的发展,所以还是会很慢的。
opengl es ----》 图形硬件。

xgl 是一个在opengl 上的 x 服务器层
支持 opengl 是好事情。但是我们如果一直去按标准做事。那那里来的进步
又那里来的激情呢?3D桌面是种新兴事物现在如果说有标准的话也只是 opengl 中的3D相关函数与 mS 的
dirctX 3D 。但是我不知道 xgl 实现了多少 opengl的功能。好像说的是一个精简的功能实现。

cairo 使用 opengl的
App -> gtk+ -> Cairo -> glitz -> GL -> hw
App -> gtk+ -> Cairo -> X Render -> Xgl -> EGL(standalone) -> GL -> hw
App -> gtk+ -> Cairo -> X Render -> Xgl -> GLX(X) -> GL -> hw

glitz 是个opengl 的图片库。
我不知道这里面这么多的层会不会影响速度。
不过那我的那个0.1版的说明里讲的一样。xgl 好像是支持 x system的。下层是连opengl -->hw (硬件)的。
我原先设计的是
gtk+---->图形内核+kernel--> hw
不知道那个更好,也许改人家写的比现做简单,也许读懂的时间会更多。
ps.大家都说这么没有意义,但是做什么有意义呢?
做点玩吧。如果没有好的显卡资料,我去用 tnt2 又如何?
1024*768 16位色玩游戏是没有问题的。
这是 win 下的玩家在2000年说的。
回复 支持 反对

使用道具 举报

发表于 2005-9-5 09:33:13 | 显示全部楼层
楼主不要说了,光说不练是没有说服力的,这样的人我也见多了。
如果你等你的东西有了个大概的形状的时候,也就是能实际实现的时候再来和大家探讨。
那时候恐怕你要占上风,不然,我不知道你这是不是也是说说而已!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-5 10:00:31 | 显示全部楼层
我在这里也并不是想让大家帮我一起写什么东西。除非有和我相同的想法。
只是想求大家帮我留意一下我会用到的东西。二楼的内容就不错。
看到 Xgl 与我想的功能差不多。
就很高兴的去看了半天所以昨天下午就没回贴。
现在我需要linux 中关于驱动显卡,与显示的所有内容的资料。还有 tnt2 的资料。
最好还有 gimp or photoshop 中处理图片的资料。因为我想把一些功能整合到桌面上。如透明处理。
我正在想怎样把 dirctX 的一些思想实现在 linux 的内核中。
希望大家在有时间的情况下,随便看到有用的东西,想着我。谢谢了。
回复 支持 反对

使用道具 举报

发表于 2005-9-5 12:40:35 | 显示全部楼层
首先是佩服楼主的大志,东西很多,而且还很模糊!以下是个人的肤浅看法
Post by wide288
计划所图形界面整合到gnu/linux的内核中
完全不用实命令行界面。不过保留窗口的命令行界面
在不影响设计目标的前提下,最大努力的保留现在 gnu/linux 下的所有程序不改代码的
兼容性。或少改代码。
现有的系统不能满足要求吗?整合想得到什么好处是首先要考虑好的
把gurb 整合到gnu/linux开机中去,使开机界面在系统的使用中可更方便的定制。需要
实现一个小程序来编辑图片,与导入图片的功能。当然是要窗口程序。
这个只要改动grub就好了。这可是引导程序啊,除非PC基础框架都改了,否则还是要用到的吧,何谈整合!
由于是整合GUI 到系统中,即重写一遍图形系统调用函数。所以考虑做一套,界面设计与
代码分离的图形系统调用。想用 xml 语言来设计程序界面。用C语言实现功能代码。
(在想图形界面的样子显示是做成解释型的,还是编译型的,?解释型的好处是能为用户
更方便,灵活的定制界面样子,像人换衣服一样。编译型的好处可能只是快一点。还是有可能
两种方案一起应用。不过这样好像系统就要更慢了。大家帮我想想)
解释型图形界面?用户只要用文本就好了!好主意,可以不用Linux这个名字了
最好是在不太多的改变内核的基础上,实现上面的功能。好与 gnu/linux 系统高度的一至。
这样服务器版与桌面版就能更好的为用户服务。
不改就是最高度的一致
//*********描述一下开机过程**********//
开机,显示 gurb 开机图像,根据显示器的型号判断图片的分辨率。
引导必要的功能后进入用户名与密码输入界面,此时图形界面由于与内核整合,已经工作。
现在的系统也是登录后就在X界面了!跟整合有关吗?只是分辩率好象还没有很方便的自动设置
当然这些功能只是讲到界面的样子,并没有解释命令行中的程序会怎么样。
不过好像login 程序可以在界面中直接用,并很简单的修改好的。
/****************************************/
gtk+ , qt , x-window system 下的程序可能会全部失去。不过他们实在也太不够快了。
如果保留它们,那就会影响到新的 gui 的函数设计的。可能会影响新功能的开发。
还有大家认为 gtk+ 开发的,真的好么。
如果他够好,只是少一些功能的话,那么可以试着把它的框架移过来。添加新功能。如图层功能
用来实现透明度的显示。和3D桌面的功能 。
用gtk+什么的,不如就不要搞了嘛,那是X,有必要把X搞到内核中?
我知道,要想实现以上功能,要知道很多的显卡资料的。不过如果能利用现在的显卡驱动功能,是不是
会好很多呢?不过好像现在的新显卡的接口资料也没有。这就想请大家帮忙找找。如果找不到,就要去
用 tnt2 了。我想也是能实现的。不过还是显存越多越好的。
内核中有部分显卡驱动,NVIDIA的X驱动也有源代码(但好象不是OPEN的)
主板的驱动,还是用linux的,改的越少越好嘛。声卡,网卡也一样。这里最主要的只是显卡。因为代替
的只是 x-system嘛。
一定要先构架好一个图形接口界面
由于显卡对于此计划的重要性,请大家推荐一下此项目的工作显卡型号。以后所有的开发人员都要去弄
一个吧。来更好的实现此项目。

还有另一个重点,就是显示器,我是希望计划成功后,程序能自动判断出显示器的型号的。能即时更新
分辨率的,希望做的要与 xp 不相上下的。xp 在安装系统后,就再也不判断显示器了,如果换显示器,
分辨率不够的话,就会黑屏的。此点功能。要不要在系统每次运行时都查看显示器,还要大家多提意见。
这个是通过DDC功能实现的,不知道有没有程序在启动X之前自动修改相关的配置?
还有鼠标与键盘的速度也要可调的。还要保证用户的感觉的。一定要写个小程序来可调。
与整合无关
/*************************************/
我没有读过 x-system 的代码,只听说它是 客户端与服务器的结构。远程桌面登录会快很多的。
我没有试过并不知道,win2k 与 x-system 到底谁快。不过,我相信,win2k能实现的功能
大家一样都能实现。
/**************************************/
能!看大家是谁,时间多长。还有楼主是不是想把Linux搞成win2k?
由于计划刚刚开机,所以主要还是寻找资料中。要先实现一个小例子。就是开机图形定制,图形登录,
与关机。第二步,实现桌面显示。
在第二步时,开始设计图形系统调用函数的框架建设。与功能讨论。
最好还是不要放弃 gtk+ 的应用程序,那样会少写很多的软件的。就是在函数名上实现与 gtk+ 库兼容
好像是这个意思。不知道我说明白了没有。
但一定会扩展函数的。

这个计划的目标是速度一定要追 winxp ,不论是开机速度,还是运行速度。
当然,如果是内核其它代码的关系,能调参数的就调。如果不能调也没有办法,
只有去 linux kernel 新闻组说了。
追速度还是有可能的,1、驱动与设置直接设定到内核(Win2K换主板可能立即蓝屏!Linux就不会),2、用上显卡加速功能,3、图形接口简单直接,4、功能少速度就快
最后还希望大家参与进来。至少提供些资料上的帮助。谢谢了。

wide288 at 163 dot com

wide288          2005-9-4
回复 支持 反对

使用道具 举报

发表于 2005-9-5 12:40:41 | 显示全部楼层
Post by wide288
X.org 是 x sytem 的发展,所以还是会很慢的。
opengl es ----》 图形硬件。

瓶颈真的在 X 协议本身吗?

Post by wide288

xgl 是一个在opengl 上的 x 服务器层
支持 opengl 是好事情。但是我们如果一直去按标准做事。那那里来的进步
又那里来的激情呢?3D桌面是种新兴事物现在如果说有标准的话也只是 opengl 中的3D相关函数与 mS 的
dirctX 3D 。但是我不知道 xgl 实现了多少 opengl的功能。好像说的是一个精简的功能实现。

Xgl 并不是 OpenGL 的实现。。。

Post by wide288

cairo 使用 opengl的
App -> gtk+ -> Cairo -> glitz -> GL -> hw
App -> gtk+ -> Cairo -> X Render -> Xgl -> EGL(standalone) -> GL -> hw
App -> gtk+ -> Cairo -> X Render -> Xgl -> GLX(X) -> GL -> hw

glitz 是个opengl 的图片库。
我不知道这里面这么多的层会不会影响速度。

相对于图形处理的开销, 函数调用开销可以忽略。
Glitz is a image compositing libary live on opengl.

Post by wide288

不过那我的那个0.1版的说明里讲的一样。xgl 好像是支持 x system的。下层是连opengl -->hw (硬件)的。
我原先设计的是
gtk+---->图形内核+kernel--> hw
不知道那个更好,也许改人家写的比现做简单,也许读懂的时间会更多。
ps.大家都说这么没有意义,但是做什么有意义呢?
做点玩吧。如果没有好的显卡资料,我去用 tnt2 又如何?
1024*768 16位色玩游戏是没有问题的。
这是 win 下的玩家在2000年说的。

首先 linux 内核应该改变的是:
1. 协调 fbdev 和 drm
2. 完善 fbdev (如多头的支持,还其它的一些)。
2. drm 需要完善内存管理使 mesa 得以支持 FBOs。

然后在 X 中去掉直接操作硬件的代码。

jserv 已经实现类似的东西, 请查看他的 blog
回复 支持 反对

使用道具 举报

发表于 2005-9-5 13:37:10 | 显示全部楼层
我国台湾地区的 骇客 jserv- 的  blog 在这儿

http://blog.linux.org.tw/~jserv/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表