Please correct me were i am wrong.

The first X servers (before IBM PC) uses bitmap (2 colors) only one mode video 
cards and screens. Kernels have support for it and mouses. The X server only 
need to open (and mmap) the screen device, the mouse device(with select support 
so not use poll) and the network for the X protocol. The X server was just 
another app that translates X protocol to screen and mouse and keyb to X 
protocol. This how must be now too, but adapted to curren technology.

The oldest part of linux graphics is the IBM PC version of X wrote before linux 
itself(i think) in the EGA time cards. The IBM PC X server is called xf86(x 
free 86) for that. IBM PC unix do not support graphics or mouses so the xf86 do 
it. IBM PC unix use the full cards compatibles text modes. Here xf86 internals 
start to look messy.

When Linux start it can not use the real mode BIOS because the vm86 was more 
dificult than wrote protected drivers. It was not fully documented, until 
pentium lacks som usefull bits, etc. The only graphics app was the linux port 
of xf86, the only code that changes modes was in xf86 so a custom api was used 
and all the work leave to that app. The api has been changed, but not enought 
to support well other concepts that the original.

For non X apps (games that do not need the X overhead) another APIs was 
intended a vgalib and later the svgalib, wich do not support ega or vga because 
a vgalib do it. Later a vm86 call was included for dosemu and enhanced a pair 
of times.

When linux was ported to hardware without text modes (mac, amiga, atari, ...) 
each need a framebuffer driver below the console code and it end caming to x86 
too standarizing framebuffers in that step. But even now in the kernel there is 
2 amiga drivers for s3 64 and virge amiga version cards(ciblade) that only 
works in amiga linux with coments about make it work in x86 and etc.

Other video apps chosse to use direct hardware access with kernel help(DRI) or 
not and support a lot of video drivers (like sdl, directfb, mplayer(cvs version 
have a virge video driver), ...)

There are other video proyects like ggi that uses a kernel driver but i unknown 
how is it now.

I unknown largely *BSD, but think it have some problems. I only known that 
there is a video library called vidix(not only for BSD but for unix) used by 
mplayer

I will try to write another mail with how i think this can be changed

Diego.

Attachment: pgpLRTszBonyy.pgp
Description: PGP signature

_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)

Reply via email to