Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

GPL user restrictions ? (Developers)

posted by marcov, 26.06.2009, 23:59

> > There are no pure users and pure developers. Even people that don't
> > compile themselves might use binaries that are not generated by the
> > original copyrightholder.
>
> Someone has to compile the binaries and this probably (depending on the
> difficulty of the compilation, i.e. with DJGPP more difficult than native
> Linux) counts as "modification", or at least the one compiling them is a
> developer, in a sense.

I was more thinking of feeling the need for modification.

> > Excluding 99.9% of normal
> > commercial use, and then pointing to a small loophole that is possible
> is
> > a great for advocatists, and useless for the rest.
>
> Please explain what kind of workaround that is. I imagine it's some hack
> to talk to the kernel from userspace (or install kernel space drivers from
> there?), but how does that work fast enough for accelerated hardware such
> as graphics cards? I heard some Nvidia cards require proprietary drivers.

Yes, a small open sourced driver in the kernel that talks to a proprietary driver in userland. Per definition, no linking happened. There are performance penalties though. And for Nvidia this is not an issue at all, since X is entirely in userland. (only now this starts to change slowly )

The nvidia driver is more a driver to X than to the kernel. And X is BSD-like licensed.

> > Then, if the kernel is GPL, and there are no special conditions, and
> the
> > devicedrivers are GPL incompatible, to my best knowledge that is a
> license
> > violation.
>
> Hm. DOS-C (AKA "The FreeDOS Kernel") did this for years.

Al Capone also ruled Chicago for years. A fact doesn't make it legal.

> Probably I should
> ask someone at the FSF about that. For the worst case, I could try to reach
> Mike to ask for a 2-clause BSD license or so, for RxDOS. This however won't
> change a thing for DOS-C.

Just mail J. Hall of FreeDos. If I had question he always replied quickly. (usually about FPC problems)

> So since you (almost) asked for it, I'll bore you with the details: (If
> you don't want to, you needn't answer this.)

No problem, I think it is somewhat interesting from a GPL hobbist legal point.

I can actually ask a internet law specialist about it, but then I need some meat first.
(and actually, it is a good example to have a laugh about over a few beers)

> * DOS device drivers can, since MS-DOS 3.00, be available as .COM (flat,
> up to 64 KiB loaded) or .EXE (simple relocations) file.
>
> * The DOS configuration code apparently uses the EXEC subfunction
> Int21.4B03, "Load overlay", to load the file (so the loading process is
> very similar to actual executable loading for process creation).

That means relocation. But not relocation to access the kernel.

> * The actual request of DOS into a device is made up of setting up a
> pointer (es:bx registers) to a request packet, which resides in DOS
> internal data (inside the SDA or on DOS stack) and contains parameters
> such as the request's function number, a block device's unit number and
> the first requested sector, the requested number of characters/blocks and
> the transfer address (for the simple read/write functions). DOS first
> calls the device's "strategy" call (which usually stores the passed
> pointer in some inreentrant memory location) and then the "interrupt" call
> immediately afterwards (which reloads the passed pointer from the
> completely useless memory location), both which are pointed to by a device
> header field.

It comes back to me now. At least the strategy bit rings some long forgotten bell.

To be honest I'm not sure if it is linking in the GPL sense. This is usually described as resolving entry points into the GPLed code. If the driver is only called, and doesn't call DOS via direct calls (only e.g. ints) , it might not be linking.

> > Ah, correct, good point, and one I overlooked. So it only means you
> can't
> > distribute the program and its plugins (though that was what I said
> > originally about the lazarus case btw)
>
> Couldn't you distribute them in different packages, then?

Well, in this case the linking is partially static, so it has to happen before use. And... that requires a lot more stuff.

I'm not even sure if that counts in the dynamic case. All linking is done before you distribute, so you already formed a larger work.

> > But too much projects and
> > code just gets a GPL slapped on by young idealistic idiots in their
> > student years, when they don't have a clear picture of the daily
> reality
> > of staying in Open Source after university.
> >
> > I know. I was one.
>
> Partly, I fear I'm such a young idiot too.

It has its charms. Don't be too eager to leave, but also don't get stuck in it.

 

Complete thread:

Back to the forum
Board view  Mix view
22760 Postings in 2121 Threads, 402 registered users (1 online)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum