Re: Windows Assembly
- From: "Richard Cooper" <spamandviruses@xxxxxxxxxxxxxxxxx>
- Date: Wed, 14 Sep 2005 00:24:30 GMT
I really don't get why people started hacking away at X the way they did, rather than constructing a proper kernel-mode video driver architecture first. The mentality of having the graphics support at application rather than kernel level is SO out-of-date DOS mentality.
I'm all for having everything in user space that can be there, but they way they're doing it is just wrong.
When the system starts, there should be one program (which I'll call the video driver) that accesses the video card, and uses sockets or something to accept connections from other programs on the system. Each program that connects to it runs full screen, and you can switch between those programs with the Alt-Fn sequence.
Then to get your virtual consoles, you start up about six VT-100 emulators which connect to this video driver, and the video driver lets you switch between them with Alt-Fn, and there's your virtual consoles.
If you start up a game on a console, it just bypasses the pty that it's on, and contacts the video driver directly.
X would also connect to this video driver, and thus X gets to stop being Linux's video driver and start being simply a program that implements the X protocol.
Additionally, if you start up a program under X, it can detect this, and instead of connecting to the video driver, it can connect to another program that uses the same protocol, but converts everything to the X protocol and sends it to the X server. So anything that ran in console would also run in X, including those VT-100 emulators.
Hopefully that made sense.
However, given that everything else in Linux is in the kernel, it would make a lot of sense for the video driver to be in there as well. However, Linux does no management to share the video device currently, and programs just have to cooperate when using it, so I'd be afraid that if they went that route they'd do it the same way, and thus video support would only be a little bit better.
Unfortunately rumors go that a whole bunch of recent video cards don't have VBE3 functionality,
VBE3? Why not just use VESA 1.2. I used 1.2 under DOS and it was incredibly easy to use, even with the bank switching. Bank switching is not the slightest bit difficult as long as you're not trying something stupid like writing a line drawing algorithm that draws directly to the screen instead of into a buffer. I don't know what the difference is between 1.2 and earlier versions, but there may not even be any reason to require 1.2.
Even if it's a bit slower with 1.2 and the bank switching, it's still much better than nothing at all.
I guess it should be possible to hack out the VESA code from X and use it on your own?
I thought about calling the VESA bios myself, but I couldn't find any documentation on the 8086 mode system call, so I didn't know where to begin. Stealing the code from X wasn't an option, because Softer is public domain, and that clashes with the not as free GPL. I wouldn't trust code out of X to be bug-free anyway, and I doubt they'd have enough comments that I would know what they were doing and could verify they weren't doing anything wrong.
.
- Follow-Ups:
- Re: Windows Assembly
- From: f0dder
- Re: Windows Assembly
- References:
- Windows Assembly
- From: Richard Cooper
- Re: Windows Assembly
- From: JGCASEY
- Re: Windows Assembly
- From: Richard Cooper
- Re: Windows Assembly
- From: JGCASEY
- Re: Windows Assembly
- From: Philip Smith
- Re: Windows Assembly
- From: f0dder
- Windows Assembly
- Prev by Date: Re: Windows Assembly
- Next by Date: Re: Windows Assembly
- Previous by thread: Re: Windows Assembly
- Next by thread: Re: Windows Assembly
- Index(es):
Relevant Pages
|
|