Re: GGI Project Unhappy On Linux

Albert D. Cahalan (acahalan@cs.uml.edu)
Thu, 26 Mar 1998 23:30:35 -0500 (EST)


Marek Habersack writes:
> On Wed, 25 Mar 1998, Albert D. Cahalan wrote:
>> Marek Habersack writes:
>>
>> [not this again!]
> I'm sorry - but is the bracketed note above about my humble person?

I wrote "this", not "you". The GGI thread comes back every month.
Until the 2.3.xx kernel series starts, there isn't much reason to
discuss it. Misinformation has to be stopped though. :-(

>>>> GGI Project Unhappy On Linux!
>>> I'm not crying about that...
>>
>> You will be, because of the "Windows 98" video cards that don't
>> have standard text mode support. I'm serious about that. The free
>> text console is going to be gone in a few years. Then what?
>> Would you like to see boot messages?
>
> No. I won't buy shitty cards designed for Windows 98. Just the
> same as I won't buy a GUI printer or WinModem. You will?
> They you'll be sorry.

Some of the most popular, cheap, and _powerful_ hardware uses
non-standard interfaces. It's not only junk these days. For example,
the HP DeskJet 720 series can quickly produce beautiful output.
Get used to the idea, unless you are wealthy.

Do you feel new Linux users should have to buy new hardware?
Not everybody can afford hardware specifically for Linux.

>>> a) Tridents are SHIT! Nobody uses them and who does, either
>>> simply cannot afford a better card or doesn't know what
>>> are graphics cards for. Well, no comments...
>>
>> Fine, you cannot afford a decent card. That is OK.
>
> Hey! Hold your horses. Try to imagine (it can be hard) that there
> are many 80386 machines out there in the world that are still being
> used for the smaller tasks - I've got one like this and it runs as
> a firewall - now, I don't see any reason why would I have to buy a
> new video card just to use GGI. But thank you for your understanding
> - I already feel better.

I think there is a serious misunderstanding here, perhaps because
of language translation data loss.

I'm trying to express that I don't condemn you for your hardware.
Mine is rather bad too. There is no shame in having bad hardware.

>>> b) VESA is a DOS-only thing and WE (i.e. THEM) don't need it.
>>
>> On most cards, VESA is provided by a DOS TSR. Do you really
>> want to put DOSEMU in the kernel?
>
> Who said that? Not me! But a VESA is a well defined video interface
> that encompasses both acceleration and normal features of video chips.
> Why develop dozens of other interfaces when we can use one proven to
> be good?

VESA means one or more of 3 choices:

1. Switch modes at boot and emulate a text console.
2. Use VESA 2.0, which very few cards have in ROM.
3. Put a virtual 8088 in the kernel to run cards with VESA 1.0 in ROM.

All are useful, but none are good.

> Besides SciTech are releasing system-independent VESA2 modules that
> contain code to be injected right into the application space.

That's not VESA then. It looks like SciTech is repackaging their
VESA TSRs as video library code, just like SVGAlib. I doubt it
would mix with the GPL very well.

> These modules require the kernel ONLY to enable the application
> to access video memory and hardware registers.

That would work like SVGAlib, but without source code. No thank you.

>>> read the docs in the more recent SVGAlib dists...
>>
>> That is a personal issue.
> Huh? What is a personal issue - docs or SVGAlib?

The author of those docs had a disagreement with everyone else.
As far as I can remember, he wanted to skip the security. After
that was (rightly) rejected, he flamed away.

>>> The latest X servers don't run suid root anymore and I'm personally
>>> working on a library that won't run suid root as well.
>>
>> If you have video card access, you can DMA right into kernel memory.
>
> What's your point here?

With or without root's UID, an app with direct video card access
can take full control of the system. Security is totally gone:
write evil code
transfer evil code to video memory
tell card to overwrite part of the kernel with your "image"
use new root access for cool stuff.

>>> I suppose that games are not on the list of the top 10 priorities
>>> of the Linux people in the world.
>>
>> a. Yes they are.
> Oh, are they?

Go to a software store and look at the evidence. Now look at the
Linux games page. You did say "top 10", which is quite a lot.
Again, it isn't _my_ priority -- although I'm not sure I could
list enough other things to even fill a "top 10" list. (it would
be cheating to count "lex", "yacc", "gcc", and "gas" separately)

>> b. Somebody might want to use display postscript without X.
> And that's closely related to games - how would I miss that?!

It is closely related to real applications like desktop publishing.
Apple is using display postscript now.

>>>> SVGAlib sucks. It was great while it lasted, but its card support
>>>> and model does not move well across platform.
>>>
>>> That's just because there's no real maintaier for it.
>>
>> SVGAlib will never do DMA.
>
> OK. I believe you - you seem to know better than anyone else out there.

Nope, this is pretty basic.

>>> on behalf of the applications - all that in the hw-indep manner,
>>> of course. And GGI goes WAY beyond it - and that's a bloat.
>>
>> You don't understand PC video hardware very well if you really think
>> that you can set a video mode without a full video driver. It would
>> work on a few cards, but not most. Maybe the Matrox Millennium is OK.
>
> Of course I don't understand video hardware! I've just bought a
> "Graphics for dummies" yesterday and that's where I take all my
> wisdom from! FYI. Setting a video mode can be done (on the lowest
> level) by simply loading registers with appropriate values and
> in an appropriate order.
^^^^^^^^^^^^^^^^^^^^^^^ That is the problem.

Video cards have write-only registers. (of course that is bad design)
Let's say that register 13 is write-only, as is common. It holds an
index that determines what register 69 (also write-only) actually changes.
If you write to register 13 while the accelerator is active, you lock
the PCI bus. You can't determine if the accelerator is active without
reading from register 42, but you can't interpret the contents of that
register correctly without knowing what the last accelerator command was.
Reading from register 13 gets you some useless (unrelated) info and
_also_ toggles the accelerator on and off.

I know that sounds crazy. It is crazy, and much too real.
Maybe the vendors will listen if you complain. Try it.

>>> Is graphics all that counts in the world? Linux wins on all the
>>> other fields - speed, security, efficiency, hardware support,
>>
>> **groan**
>
> You seem to think that these features are not important, or at the
> least less important that cool graphics (probably a'la Windows 98...)
> and 1.000 games running on Linux. Get DOS if you need these right now.

No, I don't think we have those features. I want them. There will
be no security as long as crashing the X server (easy to do) will
corrupt the console so badly that we need a hard reboot.

As for "a'la Windows 98", you should consider how modern hardware
is designed and where Microsoft is going. We have to use whatever
hardware the industry decides to produce, so it would be in our
best interest to construct a video system that can do everything
possible in a Windows video driver. That means DMA, cli(), IRQs,
and video cards that use main memory for texture mapping. We can't
escape this world for a better one with hardware "Designed for Linux".
We need to deal with what we get.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu