找回密码
 注册
查看: 3678|回复: 16

XFree86 2.1 已经可以运行了.

[复制链接]
发表于 2006-8-9 10:54:31 | 显示全部楼层 |阅读模式
XFree86 2.1 只支持8位色,不支持/dev/fb驱动.
也就是说如果要运行在你的机器上,就必须有相对应的显卡驱动.

我这次修改让他支持/dev/fb驱动显示. 但目前没有16,24,32位色的显示.

Xserver 编译后大小1.7 M.
简单实用. 代码量相对较少.

我将继续修改,制作一个嵌入式的X.
发表于 2006-8-9 11:53:02 | 显示全部楼层
??

过渡到Tiny X?
回复

使用道具 举报

发表于 2006-8-9 16:48:43 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2006-8-10 09:24:43 | 显示全部楼层
Tiny X 是基于后期版本制作的,需要的基本库比XFree86 2.1都复杂些.
但是基本出发点都一样.

目前我只是作出了可以通的一个环境.要想更简单,更适用要做的事情还不少.

我测试了一下GTK 1.0.0可以在上面运行.

MINIX3 的Xwindow 什么版本的?
回复

使用道具 举报

 楼主| 发表于 2006-8-10 09:27:54 | 显示全部楼层
XFree86 2.1 基于Fb版本的制作主要是为了研究X,理解图形系统的实现.

目前这个庞大的Xwindow,是难以下手的.

Xwindow应该是高手中的高手制作的,但他的速度不能让人满意.
到底他的症结在哪里呢?
通过研究XFree86 2.1我想会有一个答案.

C/S的结构不完全是他速度慢的原因.
回复

使用道具 举报

 楼主| 发表于 2006-8-10 09:40:02 | 显示全部楼层
Xwindow有几个核心层
DDX ,DIX

DDX 是设备相关层,DIX是设备无关层.

DIX是server程序的入口.
main.c是其中纲领.

它需要DDX提供InitOutput,InitInput主要接口.


DDX 有几个主要部分
CFB(MFB),MI,hw(X386)

CFB和MFB是提供颜色位相关的画点,画线.... 部分
CFB 是color FB,MFB 是mono FB

MI是硬件无关性的FB部分.

HW:是硬件相关的部分驱动,包括显示驱动,和键盘鼠标,和操作系统相关的东西.
在XFree86 2.1这个版本里HW的Linux x86平台叫X386
回复

使用道具 举报

 楼主| 发表于 2006-8-10 09:42:59 | 显示全部楼层
XFree86 2.1 是基于X11R5制作的.
在前期X10R...---X11R(1,2,3,4,5) 都没有Linux系统的支持.
XFree86组织添加了这些,所以X11R5在当前的Linux不能顺利的编译,
而XFree86 系列只要通过简单的修改就能很好的编译.
回复

使用道具 举报

 楼主| 发表于 2006-8-10 09:46:59 | 显示全部楼层
X1?R? 系列最初是为 DEC,VAX,sun的机器制作的.
当初的代码就有DIX,DDX的概念

在DEC的代码里我没有看到显示设备的接口.

在sun的机上支持的有fb的接口,但是编译时需要依赖sunwindow,我也不知道这是什么东西.

所以我放弃了从早期的版本移植Linux fb版本的念头.
回复

使用道具 举报

 楼主| 发表于 2006-8-10 09:53:33 | 显示全部楼层
从一开始X 系统就带有Xnest的server

需要解释的是这个东西:

它是用来在一个好的系统上测试新的server的工具.主要测试DIX层.

所以他的DDX层,调用X client端去实现.
也就是他是一个客户端程序,但程序里有一个X server.

他启动后是一个窗口应用.
你可以通过X protocol连到这个应用里
步骤如下:
启动X window
display = :0
启动Xnest
display =:1
这时候Xwindow里出现个窗口

如果你想启动一个xterm 在Xwindow显示,你要设置display=:0
如果你想要他在Xnest的窗口的,你要设置display=:1
回复

使用道具 举报

 楼主| 发表于 2006-8-10 09:57:52 | 显示全部楼层
Xvfb,
这是一个什么东西?
它是一个最简单的Xserver.

不需要硬件也能启动Xserver.
当然DIX层都是公共的.
DDX层就是一些空函数
没有输入,输出设备.
那么怎么看到他的显示呢?
他通过输出到一个文件来完成他的输出显示

通过一个应用能够看出这个文件的内容
xwau


XFree86 2.1 没有Xvfb,XFree86 3.3.6里则有这个部件.

想玩X的朋友可以通过这个来熟悉Xwindow.
回复

使用道具 举报

 楼主| 发表于 2006-8-10 10:00:05 | 显示全部楼层
那么人们怎么验证X的功能呢?也就是Xserver怎么测试呢?

不急,有X11perf呢.
这个软件在一般的X包里都有,他就是一个画点,画线....窗口的测试.
回复

使用道具 举报

 楼主| 发表于 2006-8-10 10:01:09 | 显示全部楼层
X的复杂不在DIX,在CFB(MFB),MI里
还有就是应用的X11 library里.
回复

使用道具 举报

发表于 2006-8-10 10:03:00 | 显示全部楼层
其实有些没看懂你真正想要的构架

对于X-Windows,它全部都是C/S结构,按照linux内核的结构,它在C/S结构上并没太多的优势:
Client
-------------------->request----------> X Server
<--------------------response<--------

相互之间的交互都依靠linux system call作为中介来交互,从IPC来看,请求copy的次数,陷入内核的次数都过多。

从速度上说,显然是直接写屏最快!
所以现在一些系统开始采用另一种方法,
Server端只负责传递一些信息,发送一些公共事件(鼠标键盘等)
屏操作直接放到了client处理

而现在来研究X Server,就不知道处于何种目的了
回复

使用道具 举报

 楼主| 发表于 2006-8-10 12:15:45 | 显示全部楼层
>>所以现在一些系统开始采用另一种方法,
>>Server端只负责传递一些信息,发送一些公共事件(鼠标键盘等)
>>屏操作直接放到了client处理

EGui   采用的就是这种办法


>>而现在来研究X Server,就不知道处于何种目的了
研究它的窗口管理,裁减及其绘画涵数功能
回复

使用道具 举报

 楼主| 发表于 2006-8-10 12:17:21 | 显示全部楼层
上面我只描述了X的代码结构,没有描述X的 C/S的架构
回复

使用道具 举报

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

本版积分规则

GMT+8, 2025-2-6 19:11 , Processed in 0.052935 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

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