Hello again Greg,

> Hi (you forgot a "-" in my name :)
well, GMail also represents you that way, without "-". So I follow the
Google-friend :)

OK, let's leave the philosophical discussions aside between GPL and
non-GPL drivers, for now.

> > Keeping up with Linux changing takes up driver developer's time.
>
> Yes.

> > I believe having stable kernel ABI can save many work hours of driver
> > developer's, because they won't need to update their drivers every
> > time when someone else broke something.
>
> I'm sorry you feel this way, but you haven't justified why this is so.
> If you get your driver into the main kernel tree, any changes to the ABI
> are done automatically for you.  So that means that it saves the driver
> developer's time even more that way, as they do not need to ever update
> their driver again, which is not something that any other operating
> system can provide.
>
> This also provides a more secure, and better product for the user in the
> end.  They never need to worry about external drivers, and everything
> "just works" for them automatically.

This is a problem.

Think of a developer. An OSS GPL one :)

It takes 100 hours to make a driver (LKM), plus 1 hour per month to
update it. But what happens, when he decided to move to another
project ?

If there are users to his project, but no developers among them, they
are in trouble, because no-one will help them.

1. They could support themselves, if there was a stable API+ABI.
2. That developer wouldn't need spend extra hour per month just to
update his driver, because it would "just work".

Now - the newbie user:
It is *really* daunting to update a kernel and find, that Nvidia
driver (and X.org) do not run on my desktop anymore. The newbies among
us will have to reformat&reinstall, because X.org won't start - no
NVIDIA driver - and X doesn't have auto-fallback (which is a problem
in itself, but not related), and they will end up booting into
black-screen. And unlike Window's Blue Screen, here "reset" won't
help.

Proprietary company:
1. It is possible to talk to those companies, but again, they usually
do not release their drivers as Open-Source, if they release at all.
2. Even if they release it as Open-Source, it may be outdated, and
won't compile on new kernels - again users won't be able to use this
driver.
3. Most proprietary companies understand that supporting out-of-tree
LKM is very difficult, and may refuses to develop one for this reason.
But it differently, with better API/ABI stability, more companies will
invest in developing Linux drivers.

I believe it is unfair model, where users need to waste a lot of time
to fight problems, that shouldn't even exist.

>
> > And kernel interfaces are changing too fast.
>
> How do you measure "too fast"?  What rate of change would be acceptable
> for you?  Can you quantify that based on the need for change in the
> market and environment that Linux is in?
>
> Do you even know what our rate of change is?  I just ran the numbers
> last week, and they are much larger than has ever been reported in the
> past...
>

Yes I know... ~2 million lines of code per month, or ~6m lines of code
per kernel release (3 months). Any rate is acceptable by me, and no
need to slow-down. Linux gains features very quickly now.
But I'm not speaking about that - but about changes that break things.

Other OS kernels (Windows NT 5.x, Solaris UNIX) have also hi rate of
changes, yet they manage to stay more compatible.

> > I believe development can go without breaking _already working_
> > things. At least not every micro-release.
>
> Please explain, in detail, how this can happen.
>
> Also, please explain how the different points that are expressed in the
> file, Documentation/stable_api_nonsense.txt are not correct, and can
> somehow be handled with your proposed stable api.

I do not propose APIs/ABIs yet :(
I should try to ask some serious kernel hackers beforehand. Otherwise
I lack your "in detail" part of question, and I will miss the point.
Sorry, cannot answer on this question fully this time.

But generally, I can tell how it can happen: we need to look after
ourselves and see which kernel commit requires other LKM developers
most pain - i.e. most broken modules (both in-kernel LKMs and
third-party, out-of-tree), then revert those changes back. Sounds
stupid, but with time we will be able to guess-ahead what kinds of
changes/commits makes problems to others, and try not to break those
parts. This may work not like "stable API", but more like
trial-n-error - "scientific method to stability".

Again, I would like to discuss possible solutions...

-- 
-Alexey Eremenko "Technologov"
-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to