Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Should Linux Have a Binary Kernel Driver Layer?

Zonk posted more than 8 years ago | from the abstraction dept.

Linux 944

zerojoker writes "The discussion is not new but was heated up by a blog entry from Greg Kroah-Hartman: Three OSDL Japan members, namely Fujitsu, NEC and Hitachi are pushing for a stable Kernel driver layer/API, so that driver developers wouldn't need to put their drivers into the main kernel tree. GKH has several points against such an idea." What do you think?

cancel ×

944 comments

Oh, I'm all for it. (5, Funny)

Anonymous Coward | more than 8 years ago | (#13981316)

Linux, with the stability of Windows prior to the advent of certified drivers.

Realistic result of this... (0, Troll)

AssCork (769414) | more than 8 years ago | (#13981479)

is that it will still only affect total fuckin nerds.

Re:Oh, I'm all for it. (3, Insightful)

KiloByte (825081) | more than 8 years ago | (#13981615)

Driver certification means just that Microsoft received the driver, and agreed to confirm that the driver comes from one of its business partners, and not from a suspicious open-source hacker. You don't even have a guarantee that the driver is free from rootkits.

The company isn't really interested in fixing any issues with the drivers -- if you have problems with a bug, you have already paid them all the money they are going to get for that particular piece of hardware.

An example: the !@#$%^&* nVidia proprietary X driver. On some older cards, it will cause kernel oopses, within my usage patterns around once per several hours. Is there anything we can do to fix the problem? I'm not a master kernel hacker, but I do have some rudimentary skills there -- I would have at least some chances to make a fix myself; if I wouldn't succeed, reporting a data-loss bug would make us have it fixed by someone with more knowledge in no time.
On my current desktop, switching to text mode the first time X is run after a boot puts the console into 80x25 mode without even doing a TIOCSWINSZ. Somehow, if I kill the X server, reset the video mode then start X again, everything is fine, until the next boot/resume. What can I do to fix this annoyance? Begging to nVidia does nyet work.

Yes (-1, Redundant)

FatherOfONe (515801) | more than 8 years ago | (#13981319)

Yes.

Re:Yes (1)

SillySnake (727102) | more than 8 years ago | (#13981365)

No! err.. Yes! ... Maybe? ... Sometimes! ... Absolutely Not! ... For sure!

Only one word (0)

Anonymous Coward | more than 8 years ago | (#13981322)

Heresy!!!

Re:Only one word (4, Informative)

Krach42 (227798) | more than 8 years ago | (#13981368)

Not just Heresy, but Linus has said directly that he doesn't want a stable binary kernel driver API percisely so that people *can't* write binary drivers for Linux.

If it means more drivers! (0, Insightful)

Anonymous Coward | more than 8 years ago | (#13981329)

If it means more and stable drivers I'm all for it!

Good idea! (5, Funny)

Anonymous Coward | more than 8 years ago | (#13981336)

Lets put it in Kernal 2.7.
Oh wait... OOPS!

Re:Good idea! (2, Funny)

Anonymous Coward | more than 8 years ago | (#13981472)

OOPS

subtle...

Ok but let's impact its performance (0)

Anonymous Coward | more than 8 years ago | (#13981337)

Let's give them a UNARY kernel driver layer.

Excellent suggestion! (5, Insightful)

scsirob (246572) | more than 8 years ago | (#13981338)

Having a kernel API for drivers allows developers to stay away from the mainstream kernel. This will enhance the stability of the kernel in general and also allow hardware vendors to support Linux with less effort.

Re:Excellent suggestion! (5, Interesting)

IAmTheDave (746256) | more than 8 years ago | (#13981430)

Having a kernel API for drivers allows developers to stay away from the mainstream kernel. This will enhance the stability of the kernel in general and also allow hardware vendors to support Linux with less effort.

I am not a linux contributor, but I would think you'd kinda want to guard access to the kernel kinda closely. I mean, sure, anyone can fork it or grab a copy to putz around with, but contributing back into the kernel - that's gotta be just about as stable as a piece of code can be.

Despite some loss in efficiency, I've always been an advocate of abstracted access. To many of the pieces of software we write at my job do we add a logical API, so that we don't always have to open the main code branch every time we want to add a feature.

Driver developers hardly equal kernel developers. Keeping the two logically seperated makes sense - not to mention that driver developers are hardly the only ones that would benefit from this API.

Re:Excellent suggestion! (1)

peragrin (659227) | more than 8 years ago | (#13981489)

Yep just look at windows. How many years did it take MSFT to force hardware manufactors to create stable drivers? And you want to repeat that again!

Great Idea.

Re:Excellent suggestion! (1, Insightful)

IAmTheDave (746256) | more than 8 years ago | (#13981606)

It's not that I want to repeat anything, but there are a whole mess of hardware vendors out there that just won't release open source versions of their drivers. Are we so zealous that we want to keep these pieces of hardware from working with Linux?

How exactly does that help the adoptation of Linux on the desktop? Yeah, I can see concerns about stability, but at least there would BE drivers for half the hardware out there. Do you want a drawing tablet manufacturer in the kernel source just to get a tablet to work with Linux?

Re:Excellent suggestion! (5, Insightful)

kmmatthews (779425) | more than 8 years ago | (#13981455)

No, because we'd (at best!) get the same crap drivers that windows gets. Childish crap spewed out by the lowest bidder, and it destablizes the entire system. Not to mention that no open source coder can _fix_ the damn thing then.

Look at nvidias drivers on linux! Always well behind other drivers, and filled with bugs because we have to wait for nvidia to get off thier asses and fix the damn thing.

What happens in 10 years when you're trying to use that binary driver to recover data from an ancient device? If it was an open source driver, you could fix it to work with your system; binary, you're going to have a lot more work to do.

It's much worse than that... (5, Insightful)

HotNeedleOfInquiry (598897) | more than 8 years ago | (#13981593)

If a company is developing an embedded Linux ap for their own hardware. All of a sudden, all of the communications with the board-specific hardware is being done through binary drivers, resulting in an effectively closed system.

No more hacking WRT54G's for you, chump.

MOD PARENT UP (1)

kmmatthews (779425) | more than 8 years ago | (#13981627)

good point.

Re:Excellent suggestion! (1)

niskel (805204) | more than 8 years ago | (#13981626)

Agreed, but just be thankful you don't have an ATI card.

The kernel has a stability problem? (1)

khasim (1285) | more than 8 years ago | (#13981458)

Having a kernel API for drivers allows developers to stay away from the mainstream kernel.
Yes it would. As long as it had every API they needed. Otherwise ...
This will enhance the stability of the kernel in general and also allow hardware vendors to support Linux with less effort.
I don't understand the first half of that statement.

I haven't seen any stability problems in the Linux kernel in, literally, YEARS of use.

As for the second part of that statement, maybe yes, maybe no. It depends upon the API and those other developers. Which would bring it all back down to the level of "show me the code".

Rather than discussing this in generalities, focus on the code.

Re:Excellent suggestion! (3, Insightful)

Anonymous Coward | more than 8 years ago | (#13981592)

Wrong, wrong, wrong wrong wrong.

Drivers run as kernel-level code.

Closed source code linked into the kernel gets kernel-level privileges. Alone, that is a scary thing.

Worse, binary drivers mean support for only the platforms that vendors choose to support. Users of less popular architectures miss out.

Re:Excellent suggestion! (2, Insightful)

andyross (48228) | more than 8 years ago | (#13981594)

Having a kernel API for drivers allows developers to stay away from the mainstream kernel. This will enhance the stability of the kernel
No, no, no, no. Allowing developers to "stay away from" the kernel is a recipe for weak testing, poor integration and random hackery ("well, I don't know how to do this with the API but I tried this and it seems to work..."). Being isolated, the brain damage will fester without detection.

That statement is so far off that it occurs to me that perhaps you were being sarcastic. In which case, your moderators should be shot.

Re:Excellent suggestion! (0)

Anonymous Coward | more than 8 years ago | (#13981611)

And if you look on the web for Project UDI you will find it was thoroughly developed and then declared unacceptable by the linux gurus.

No Thanks! (5, Interesting)

Shads (4567) | more than 8 years ago | (#13981339)

No thanks, this is just a great way to promote closed source inside the linux kernel and to make debugging problems totally impossible.

Re:No Thanks! (1)

cawpin (875453) | more than 8 years ago | (#13981370)

Then they wouldn't be allowed to put it into the source because Linux must remain open. That means everything, including drivers.

Re:No Thanks! (2, Insightful)

isometrick (817436) | more than 8 years ago | (#13981406)

I would say yes to a formal driver API, but I also think source for the drivers should still be released. The two concepts (formal API, open source) aren't mutually exclusive, but I guess being able to use closed source drivers is, in reality, why these companies are pushing for a formal API.

Re:No Thanks! (1)

Krach42 (227798) | more than 8 years ago | (#13981475)

Exactly. Linus himself said that he doesn't want to formalize the driver API because it would lead to binary closed source drivers.

No, the two aren't mutally exclusive, but Linus is trying to use the design of the kernel as a tool towards insuring open source contributions to it.

Re:No Thanks! (3, Insightful)

pe1rxq (141710) | more than 8 years ago | (#13981610)

The idea is not just a formal API, but a formal API that doesn't change for a long (VERY VERY long if it is to be usefull at all) time.
The problem is that you will be stuck with the mistakes for the same time.
You can't improve the kernel anymore because you have to keep supporting those mistakes.
You would have to add huge glue layers to your kernels to keep emulating thos mistakes.
It is a bad idea. It has only advantages to those driver writers who want to stay far away from the kernel and want to keep using their crap for a long time. The kernel and the kernel writers are not going to get better from it (they only get extra work supporting lazy driver writers) why should they support it?

Linux development works very easy: do it yourself or convince someone else to do it.
You can convince other people either by motivating them with proper reasoning (and /. is not the place to do it) or by throwing money at them.
Nobody has been throwing enough money yet to get the kernel developpers to do it. (And very likely nobody ever will throw enough)

Jeroen

Re:No Thanks! (5, Funny)

Speare (84249) | more than 8 years ago | (#13981432)

Come on, can't we see through this Cathedral-driven charade? There's no rational thought behind Intelligent Drivers. It's all just a dogmatic rehash of the same old Closed Source thinking forced upon our Open Source kernel laboratories! I say, send these Intelligent Drivers ideologues back to Kansas where they came from!

Re:No Thanks! (3, Funny)

b1t r0t (216468) | more than 8 years ago | (#13981495)

Come on, can't we see through this Cathedral-driven charade? There's no rational thought behind Intelligent Drivers. It's all just a dogmatic rehash of the same old Closed Source thinking forced upon our Open Source kernel laboratories! I say, send these Intelligent Drivers ideologues back to Kansas where they came from!

What, you want to support Flying Spaghetti Code Drivers or something?

Re:No Thanks! (1)

YU Nicks NE Way (129084) | more than 8 years ago | (#13981530)

What, you want to support Flying Spaghetti Code Drivers or something?
Oh, goodie! Another Free Software foodfight!

Re:No Thanks! (0)

Anonymous Coward | more than 8 years ago | (#13981436)

Not necessarily. This is would mostly benefit end-users and that's where this is heading, IMHO. It would indeed help driver programmers to make more hardware available to Linux users; hardware such as webcams, wifi adapters (an area I currently loathe due to lack of support), scanners, multifunction printers, etc.

Hardware manufacturers such as Nvidia and ATI have shown support for Linux by compiling drivers for kernels without giving away too much trade-secret info. If there's a better way for these drivers to be implemented without licensing violations, etc, then I say they should do it.

The kernel developers really should think about making this happen. If not, then we'll see the license/binary-only debates go on forever and frankly, I'm sick of the whining that occurs with no solution coming from the whining camps and at least a decent attempt coming from the hardware manufacturers.

Re:No Thanks! (1)

darkmeridian (119044) | more than 8 years ago | (#13981632)

Linux is dying for driver support. Ideological fundamentalism opposes closed-source drivers, so the end result is no drivers at all. This is horrible. If manufacturers want to abstract their drivers, let them. The community will figure out which ones will work and which will not. Linux needs driver support by any means necessary.

Bad (3, Insightful)

Anonymous Coward | more than 8 years ago | (#13981342)

Microsoft could license code into the drivers or otherwise maneuver the driver makers to license their IP from MS, the drivers could form a layer between Linux and the hardware, Microsoft could then pull the run from under Linux.

Don't go there, it protects Linux from getting tripped up, and devalues any hardware that doesn't support Linux.

Don't underestimate the important of driver support for Linux, you practically can't make any server component without a good solid Linux driver.

Re:Bad (1)

$RANDOMLUSER (804576) | more than 8 years ago | (#13981552)

> ...Microsoft could then pull the run from under Linux.

No, that's their hope for Mono [mono-project.com]

Amen! (4, Insightful)

dusanv (256645) | more than 8 years ago | (#13981343)

I have been waiting for that for a long time. The lack of a stable interface is hampering adoption of Linux. Not all of the manufacturers are willing to open source drivers or for that matter to continuously change them as the APIs change. This is very welcome but unfortunately, I think they'll fail. There is just too much politics surrounding Linux these days.

Re:Amen! (5, Informative)

Krach42 (227798) | more than 8 years ago | (#13981442)

This is very welcome but unfortunately, I think they'll fail. There is just too much politics surrounding Linux these days.

It is not welcome. Linux is about Open Source, and allowing people to link-in binary closed drivers goes against this.

Too much politics surrounding Linux? Where have you been? It has been the policy of the Linux kernel for a long time that it would never stablize a binary driver interface, in order to prevent people from not making their drivers open source.

The idea behind Linux is that an Operating System should be Open, and Free (as in speech), and that nothing should hinder this. Binary drivers are exactly this sort of hinderance.

You may be upset that you don't have drivers for product XY because that company doesn't want to play along, but if you're trying to change the way the world does software, you can't go "ok, just because we *really* want your drivers, we're going to bend the rules for you."

Re:Amen! (1)

bheading (467684) | more than 8 years ago | (#13981544)

It is not welcome. Linux is about Open Source, and allowing people to link-in binary closed drivers goes against this.

I liked your use of the term "allowing people", as though it was something evil. It's funny how you think that Open Source should be about taking away from people the right to link whatever drivers they want. That's not allowing people to be "free" is it ?

If you want to insist on having the source to your drivers, you are free to choose to buy only hardware with an open source driver. What gives you the right to impose that restriction on me ?

Re:Amen! (2, Informative)

Krach42 (227798) | more than 8 years ago | (#13981596)

*Open* Software, not *Free* Software in this instance, and it's an ideological argument.

What gives you the right to impose that restriction on me ?

Um... I write the code? If you don't like it, then you can go use something with better driver support, like Windows.

If binary drivers were supported and it were up to companies to choose to support them or not, then they wouldn't

Again, this is all an ideological argument. If you don't like the ideological position that Linux is forwarding, then you're free to use only operating systems that do support binary drivers. What right do you have to tell me what I must do with my code to make you feel better?

Re:Amen! (1)

Elshar (232380) | more than 8 years ago | (#13981624)

I think you're cutting off your nose to spite your face.

Some hardware manufacturer's CANNOT release source for their drivers because at least part of it is under an NDA or some kind of restrictive license.

Also, your other comment is just crazy. Why would you change the interface 'in order to prevent people from not making their drivers open source'. Um, wouldn't that ALSO force people to fiddle with their drivers everytime someone decides to poke something and ends up breaking everything else? Doesn't it make sense to make it as easy as possible for people to create and maintain their drivers for linux? Ever think that MAYBE the reason why they choose to primarily and in some cases exclusively develop windows drivers is also BECAUSE linux's driver interfaces changes on whim whenever because someone thought it'd be fun?

This is the problem (2, Insightful)

everphilski (877346) | more than 8 years ago | (#13981635)

This is the problem with the open source movement. Putting the code before the user.

And this is why you fail.

-everphilski-

Thank goodness for "too much politics" (4, Insightful)

Sturm (914) | more than 8 years ago | (#13981622)

Linux was, is and hopefully will always be "open". I don't want closed drivers in the kernel (even via an API layer) any more than I want a Sony rootkit masquerading as DRM.
It isn't about "politics". It's about policy and philosophy.
If the hardware doesn't work with Linux, don't buy the hardware/pester the vendor for an open driver, or don't run Linux.

Why post this link without the followup? (5, Informative)

rRaminrodt (250095) | more than 8 years ago | (#13981351)

http://www.kroah.com/log/2005/11/07/#osdl_gkai2 [kroah.com]

Some misunderstandings were made. But of course, if they posted this link, there'd be no point to posting TFA or the arguments that will almost certainly follow. :-)

Texas (1, Flamebait)

airrage (514164) | more than 8 years ago | (#13981352)

Texas has a Constitution with no "administrative" section. That being said, every law, whether new or an amendment is a constitutional change.

I think hardware manufacturers are in the right on this one, they want to develop drivers and peripherals without a constitutional amendment. Good thing all the way around IMHO.

Peace Out.

Solves the reason why I gave up Linux (5, Interesting)

s20451 (410424) | more than 8 years ago | (#13981357)

I gave up Linux mostly because I was tired of getting punished for having new hardware, which is often unsupported. Especially on laptops.

If you don't force the manufacturers to include their driver source in the kernel, you might get them to release actual drivers for their new hardware.

Re:Solves the reason why I gave up Linux (-1, Troll)

kmmatthews (779425) | more than 8 years ago | (#13981412)

Well, I guess once we get you to come back, we can all rest easy that linux will then take over the world?

The real problem is not drivers; the real problem is you buying random hardware and just hoping it will work. When it doesn't, you bitch and moan that "linux sucks!!111"

(Not _you_ specifically, but I see so much of this kind of bullshit. "I can't get it to work, so it sucks!!1". Annoying.)

PS. I've gotten the last three laptops I've purchased (from gateway) bleeding edge new machines in thier time - to work perfectly. All it takes is to stop whining and actually _try_ to make it work.

Re:Solves the reason why I gave up Linux (2, Insightful)

s20451 (410424) | more than 8 years ago | (#13981476)

This is the point though. I never said I couldn't get it to work, I said I was tired of getting punished for it. I don't enjoy wasting a lot of time futzing with kernel patches and hoping for the best, which seemed to happen every time I did a major upgrade. In short, the onus should not be on me to make it work -- the onus should be on the OS to work without my intervention.

Also, for the record, Linux doesn't suck. But I found I could get my command line fix with XP and Cygwin, without the hardware annoyances.

Re:Solves the reason why I gave up Linux (4, Insightful)

Holophax (21693) | more than 8 years ago | (#13981520)

The typical comment of a Slashdot user. We should all buy new hardware and spend hours on top of hours getting things to work, rather than just "having" things work. Call this a troll if you want, but this is the exact reason that the masses AREN'T running Linux.

You people need to figure out exactly what you want, Linux for the masses (read: grandma, mom, etc) or an O/S where you have to spend valuable time just getting it to work with regular hardware. You bashed the poster for buying "random hardware" and expecting it to work even though you don't know what the hardware in question was, yet in your own message you bought 3 "bleeding edge" Gateway laptops (a fairly well known manufacturer) and you had to (in your words) "_try_ to make it work."

I was going to post this anonymously, but it would of course be modded a troll at that point. Let my karma burn for all I care.

Re:Solves the reason why I gave up Linux (1)

kmmatthews (779425) | more than 8 years ago | (#13981582)

Once again, a troll attempting to assert that all slashdot users are the same person and we all have the same goals.

I did not anywhere say that I think linux should work with $RANDOM_HARDWARE, nor did I say that it should be installed on everyones desktop, or that it's ready for the desktop, or that it should ever even be used on the desktop.

So, instead of attempting to troll with a straw man argument [wikipedia.org] and all your assumptions, how about you respond to my _actual_ comment?

Re:Solves the reason why I gave up Linux (1)

peragrin (659227) | more than 8 years ago | (#13981584)

The problem isn't linux or it's developers. It's idiots that make things like winmodems, applemodems(yep them too), and wireless cards with 90% of the tech in software, when it can be done faster and more effiecently in hardware.

Software is great for somethings but it isn't always the answer. And you can't tell me it's so you can upgrade just the software part for a new standard. I have only seen that work once. That was for a 36.6 modem to be firmware upgraded to 56k. It doesn't work for the bulk of what they use it for.

Re:Solves the reason why I gave up Linux (0)

Cerberus7 (66071) | more than 8 years ago | (#13981547)

That works for most of us, but what about people who don't want to, and currently don't have to, "try" to make it work? Jim Bob goes to Staples, picks a wireless NIC, slaps it in his WinXP machine, inserts the install CD, and that's about all there is to it. Until Linux has that same kind of experience, it will not be mainstream and it will not take over the world.

Re:Solves the reason why I gave up Linux (1)

rincebrain (776480) | more than 8 years ago | (#13981580)

I find your example particularly offensive, as Linux can use the Windows drivers for some of those. :)

I find your example particularly offensive because your analogy is flawed. The Windows wireless drivers are hacks, and the API only supports the most basic functionality - that's why most of the wireless drivers you get come with those weird-ass nasty interfaces - to hide the fact that Windows doesn't have a standard way to use that functionality.

At least under Linux we have a standard for doing those things.

Re:Solves the reason why I gave up Linux (1)

kmmatthews (779425) | more than 8 years ago | (#13981604)

Right, but suppose that the CD did contain a binary driver for linux, and was as easy to install as it is on windows.

Next, suppose that the driver is a piece of shit that causes the system to crash every five minutes. After a bit of this, Jim Bob is gonna say "Linux sucks! it crashes all the time!"

Re:Solves the reason why I gave up Linux (0)

Anonymous Coward | more than 8 years ago | (#13981585)

An end user shouldn't have to TRY to make it work. It should *just work*

No (4, Insightful)

kmmatthews (779425) | more than 8 years ago | (#13981366)

It's a bad idea because what happens when the driver ABI changes? You have to wait umpteen months for the company to get off thier asses and fix it - like nVidia.

It also precludes anyone else from fixing bugs in the broken, half assed crap most corporates spit out these days.

Re:No (0)

Anonymous Coward | more than 8 years ago | (#13981609)

No, it's a bad idea because you don't like it, and those are the only objections you can find. You don't speak for me, so stop acting like your opinion is in any way representative. In fact, just STFU. That'd be nice.

NVidia (0)

Anonymous Coward | more than 8 years ago | (#13981369)

In his blog he states that a binary closed source driver would be illegal.

Isn't this exactly what NVidia does now?

of course it should (4, Insightful)

gonar (78767) | more than 8 years ago | (#13981372)

one of the main problems for getting device manufacturers to support linux is the fact that they either have to release a new version of their driver every time the linux kernel changes some esoteric internal API, or be badmouthed for not having good linux support.

would it really hurt so much to guarantee a stable DKI? doesn't have to freeze the whole kernel, just a subset of functions that will be guaranteed to work as they do now in perpetuity.

backwards compatibility is just as important to driver writers as it is to app writers.

doesn't even have to be binary backwards compatible, source level would be sufficient for most.

Re:of course it should (2, Interesting)

Spy der Mann (805235) | more than 8 years ago | (#13981401)

But what's the problem with hardware manufacturers? Their profits are in the HARDWARE, not the software.

hell no (1)

kmmatthews (779425) | more than 8 years ago | (#13981492)

It isn't just an issue of ABI compability - it's also the fact that no one but that company can then _fix_ the bugs in that driver.

What happens when the company goes belly up in $x months, then a serious flaw is discovered in the binary driver? Whoops, guess you're just SOL. With an open source driver, you can _FIX_ the problem.

With a binary driver, you're at the whim of the company.

Stability like that leads to stagnation and death (5, Insightful)

A nonymous Coward (7548) | more than 8 years ago | (#13981377)

One of Linux's great strengths is the flexibility of changing to meet new needs and not being hobbled by rigid backwards compatibility. This can only be done if all source is open and anyone can update drivers to meet new needs. When someone comes up with a patch to streamline a certain minor part of the kernel, it frequently has repercussions elsewhere in kernel land. It is these small changes which have made linux better and better with breathtaking speed. A "stable" binary API removes the possibility of keeping everything up to date and would dramatically show down the adoption of new features and general improvements.

Continual refactoring is worth far more than some supposed binary API which prevents changes. Get rid of binary drivers! If companies are so paranoid that they want binary drivers, then the hell with them. Linux can advance better without that baggage.

Re:Stability like that leads to stagnation and dea (1)

elmegil (12001) | more than 8 years ago | (#13981522)

Yeah, that Goddamn DTrace thing in Solaris, how could they come up with that and have a stable kernel API at the same time?

Note I'm not talking about SUN'S stagnation, I'm talking about their OPERATING SYSTEM which is alive and well.

Re:Stability like that leads to stagnation and dea (1)

msormune (808119) | more than 8 years ago | (#13981549)

This flexibility is also a great method for introducing hilarious new bugs to kernels, because it is way too easy to change stuff around. And you are missing the point. How can you update your drivers if there are no drivers for a certain piece of hardware? Several vendors are simply not in a position to release source code for their equipment, because of licensing issues and such. Even if they wanted. And Linux kernel has been in development 15 years. That's not a breathtaking speed in my book. How many false steps have been made because of sudden changes in kernel design? Also, you should note that it might be easier to craft open source drivers for closed source ones, if the closed source drivers implemented a common, well known and documented interface.

Of two minds (3, Interesting)

Kelson (129150) | more than 8 years ago | (#13981382)

As someone who has tried to install various Linux distributions on RAID cards, and has had difficulty getting installers to use even third-party open-source drivers*, I'd love a binary driver API.

As someone who supports free software, and has struggled with NVIDIA's video drivers (and they're at least trying to meet us halfway by making it as easy as possible to install their closed-source driver under the current system) I can see the negative consequences of encouraging binary-only drivers.

*Example: Promise SX6000. Old cards work with I20, newer ones use their own interface. An open source driver is available, at least for the 2.4 kernel, but good luck if you want to get your installer's kernel to use it. Unless you can create a driver disk, a byzantine task in itself, you're stuck with a few outdated versions of Red Hat, SuSE, and I think TurboLinux.

Re:Of two minds (1)

petermgreen (876956) | more than 8 years ago | (#13981633)

yeah running installers with custom drivers is a process thats often poorly documented and a pita which is a huge shame imo.

anyone fancy writing a little utility to produce custom bootdisks/driver disks for all the major distros?

you don't nessacerally need to make a full driver disk to the installers specs though just build the driver against the intallation kernel (requires finding headers for it but that shouldn't be too hard) and insmod it manually whilst running the installer.

Yes (1)

Gaima (174551) | more than 8 years ago | (#13981384)

As long as it's isolated enough from the kernel proper so that it would be *really* hard for the driver to crash the kernel, then for greater adoption in all areas, a stable binary interface is a Good Thing.

Why Bother? (0)

Anonymous Coward | more than 8 years ago | (#13981393)

Companies can whine, "But, but, open sores!" all they want, but the real reason certain things don't get drivers until a bunch of crack/coffee fiends go nuts with gcc is that there's not all that much profit in supporting Linux for said companies.

Anything fun and happy and required on the server end is pretty much taken care of. Anything else (such as dollar-store-brand commodity crapware)... Well, that's what you get for buying crap hardware. Linux, she is doink you a favor, da!

I have non-working hardware under Linux. I have a Plextor 712SA DVD burner. An optical SATA* drive. Win2k insisted it must operate in PIO. Linux refuses to recognize it, even with the assorted kernel hacks which - even if they worked, people tell me would leave it unable to burn discs. The only OS I've seen it work under is Win XP. Har.

Toss in a driver layer. Would I expect to see Plextor rush to create Linux drivers?

Sure! Right after pigs fly, Google takes over the world with an impressively large military force, and I rescue Bill Gates from a burning car and he gives me $20.

* Not really, but that only adds to the problems!)

Binary drivers should be outside the kernel (2, Interesting)

Animats (122034) | more than 8 years ago | (#13981403)

Drivers outside the kernel should be fully supported, at least for USB, FireWire, and printer devices. There's no reason for trusted drivers for any of those devices, since the interaction with memory-mapped and DMA hardware is at a lower, generic level.

Actually, all drivers should be outside the kernel, as in QNX [qnx.com] , and now Minix 3. But it's probably too late to do that to Linux.

As the article says, it's illegal, and a bad idea (5, Insightful)

SWroclawski (95770) | more than 8 years ago | (#13981416)

These companies want a binary layer so they can build binary drivers.

What people tend to forget about this is that it's a bad idea- from most every perspective.

The Linux kernel was written as a Free Softwate alternative to the existing *nix systems.

We have thousands of drivers in the kernel from a combination of development efforts. Sometimes a driver is written by an independant kernel developer, and sometimes it's written from the company producing the hardware, working alongside the community.

What these companies want is to be able to have thier cake without giving back to the community. This is a very slippery slope at the least, and illegal at best, since these sorts of links to binary kernel drivers have been long known to be illegal to distribute alongside the kernel (unless special previsions are made, such as a userland driver).

Also, binary drivers have been known to be buggy and essentially removie the kernel developers from a position where they have control over the kernel as a whole project. I won't even go into the issues associated with a possible security hole in a binary driver, or a binary driver with, for example, spyware in it.

The arguement for it is, of course, that this might mean more drivers. This is a test of our strength as a community. Doing the right thing is harder. It means we won't have all the hardware at all times, and certainly not the newest thing. But we retain control over our computers.

It's hard to say no, but this looks like a clear case where we have to.

Re:As the article says, it's illegal, and a bad id (4, Insightful)

bheading (467684) | more than 8 years ago | (#13981576)

But we retain control over our computers.

Tell me, what BIOS do you run ? Do you have the source to the firmware in your IDE disk drive ? In your CD-ROM/DVD-ROM drive ? Do you have the source to your SCSI controller's firmware ?

If you think you have control over your computer you are suffering under a delusion.

It's a good idea (1)

estebanf (814656) | more than 8 years ago | (#13981418)

A driver layer will bring a level of abstraction for driver developers. This will result in earlier driver releases. This could also motivate another manufacturers to support linux.

In fact... this world would be a better place if drivers could be "os independent".. but that's just dream :)

Absolutely... (0, Redundant)

PhineusJWhoopee (926130) | more than 8 years ago | (#13981419)

...and let's call it Kernel 2.7. ed

Oh, I know (1)

Z0mb1eman (629653) | more than 8 years ago | (#13981422)

Let's make it as hard as possible for hardware makers to develop Linux drivers. That'll help!

OK, so the above sentence is 100% troll, and I don't claim to understand all the subtleties of this debate. But it seems to me that anything that helps Linux get more and better drivers is at least worth considering... basically, at what point does a compromise with the hardware makers become the best option?

When? (1)

Tony (765) | more than 8 years ago | (#13981566)

basically, at what point does a compromise with the hardware makers become the best option?

When the hardware manufacturers are willing to compromise.

The best solution is for them to develop a kernel module and submit the driver for acceptance into the mainline kernel. The manufacturers would like to be able to release binary-only drivers. This means they are not available for Linux-- they are available for a specific build of Linux (say, x86), and not available for other architectures (ARM, PPC, any other non-supported architecture).

A compromise would be this: the manufacturers release full specifications to their hardware interfaces and allow third parties to develop kernel modules. *That's* compromise, where both parties give something, and receive something in return.

Going with a full binary API doesn't solve the Linux problem of lack of support. It solves the manufacturers' problem of not having a "Linux support" checkbox.

Re:Oh, I know (1)

C. E. Sum (1065) | more than 8 years ago | (#13981616)

> But it seems to me that anything that helps Linux get more and better drivers is at least worth considering

The basic premise is that keeping drivers "in the tree" is the best guarantee for having more and better drivers. More, because drivers get pulled along with the tree instead of dying when companies go bust or do not support a given platform; and better because at least a sizable portion of the major kernel hackers are tired of dealing with random bugs caused by code they can't troubleshoot.

The other reason cited for not publishing a stated binary interface is dragging around layers of compatability goop. If your driver is in-tree, we'll fix it for you instead of writing and debugging bridges.

I understand that it's an optimization issue -- you are currently free to load binary modules into your kernel all day long. But this slope is slippery.

I have had non-good luck with binary drivers (NForce & friends), some kernel developers seem to agree, YMMV.

I'm confused (1)

CastrTroy (595695) | more than 8 years ago | (#13981423)

I'm not really that well versed on the specifics of drivers and the linux kernel. However, I was under the impression that it was possible to have binary drivers for the linux kernel. If not, what are ATI and NVidia releasing as drivers for Linux? I'm pretty sure they aren't releasing open source drivers, so those drivers must be binary.

Re:I'm confused (1)

rRaminrodt (250095) | more than 8 years ago | (#13981506)

It is, but binary drivers aren't supposed to use the GPL licence macro. This "taints" the kernel so that developers know if you post a bug report to the mailing list that you have an un-debuggable driver in your system. And you're a lot less like to be helped in that case.

I don't write drivers, but I also belive you cann't access certain features of the kernel if your driver is not GPL. I could be remembering something wrong though.

Sure, why not? (1)

Hydroksyde (910948) | more than 8 years ago | (#13981425)

If it can be done without making the kernel unstable, I'm all for it. Open source drivers would be nice, but aren't always practical.

Now, if drivers could be run in user space...

No it's not. (1)

NerdBuster (831349) | more than 8 years ago | (#13981437)

I don't think a Binary Driver layer should be introduced. Hardware manufacturers lose interest in products as soon as they're released. So to have the specs open and allow the community to maintain the driver as long as there's a community for it simply makes sense. It's in the consumers' best interest.

gasmonso http://religiousfreaks.com/ [religiousfreaks.com]

Userspace, anyone? (5, Insightful)

ettlz (639203) | more than 8 years ago | (#13981460)

IANAKH, but couldn't more drivers be moved into userspace (or other lower rings) --- especially for things like USB printers and miscellaneous gizmos? I think it would also be nice to not bundle thousands of drivers and support for architectures I don't have with the kernel. The kernel itself could provide a very minimal layer of hardware protection (like an exokernel?) and there'd be libraries exporting generic abstractions for particular classes of hardware. Is the context-switching penalty really so great these days? Educate me!

No Thanks, Agreed (1)

t35t0r (751958) | more than 8 years ago | (#13981465)

If the companies are going to make it difficult for developers to fix problems with their drivers then we developers should not be obligated to make their life easier either! Let them provide userland binary drivers (e.g. like nvidia and ati) outside of the kernel. This seems to have worked fine. The only thing that doesn't work is that their drivers are broken. Who's fault is that ..the kernel's?

Binary drivers are evil (2, Insightful)

poszi (698272) | more than 8 years ago | (#13981474)

I've recently installed Linux on an iBook. No 3D acceleration, no wireless, no modem. All three drivers seem to exist (for Broadcom wireless in an ndiswrapper form) as a binary driver in the i386 world. But for PPC you are out of luck. ATI drivers and Broadcom wireless are being developed independently but they are not finished yet.

In my opinion, binary drivers are worse than no drivers at all because they release the pressure on the manufacturer. They can say they support Linux which in case of binary drivers is simply not true.

"illegal" ? (1)

bani (467531) | more than 8 years ago | (#13981478)

Yes, you got that right, OSDL Japan wants a stable kernel api layer so they can write binary only kernel drivers, which are just so illegal it's not even funny.

How are binary only kernel drivers illegal? There isn't any law against binary only kernel drivers. The "L" in "GPL" means license, not law.

Re:"illicensed" ? (1)

Lord Bitman (95493) | more than 8 years ago | (#13981600)

how would it even go against the license? You can't link to the kernel itself without opening your code, but providing an interface /layer/ would allow you to link to a dual-licensed layer. Nothing wrong with that.

The real question is, why are they talking about it? It sounds like they just dont want to open anything, even the interface (otherwise, just write it. There's nothing stopping you. This isnt like telling somebody who thought linux was ready for the desktop "write your own drivers if you dont like it!" these are corporations who already have developers developing things for the linux kernel.[*otherwise it wouldnt have been an issue in the first place])

P.S.: Drivers, if absolutely no other part of the computer, should be open. These are the parts that make the computer actually compute.

Whatever convinces ATI to make decent drivers.... (1)

ShyGuy91284 (701108) | more than 8 years ago | (#13981491)

Although since they aren't part of the group pushing for it, it'll probably just allow them to half their Linux development staff by half..... Assuming there's more then one person as is......

Re:Whatever convinces ATI to make decent drivers.. (1)

lurch_ss (865961) | more than 8 years ago | (#13981629)

If they half it by half, would that mean they quarter it?

If THEY want it... (1)

lasermike026 (528051) | more than 8 years ago | (#13981507)

If THEY (Companies/Corporations) want it THEY should build it. This may be a great deal of work. I don't know. I'm not a kernel hacker. I just use this stuff. If THEY add it, its good, and its GPL'ed then it will catch on.

Obviously, GPL'ers don't like it because it bring non-GPL code too close to their projects. If a Binary Kernel Driver Layer leads to less free code, then I can do without it. I admin linux because it works and its free.

Fuggitaboudit (1)

butterwise (862336) | more than 8 years ago | (#13981514)

If that's what they want, then here is a site [microsoft.com] which might interest them.

uneccessary (1)

Pr0xY (526811) | more than 8 years ago | (#13981521)

it seems to me that this is uneccessary and nvidia has proved it. The have "binary" drivers and supply there own open source layer to provide the glue between their code and the kernel. All we are really talking about is a small layer inbetween the kernel and the driver to provide a "stable" (as it unchanging) interface. So bottom line is that this is simply a wrapper for the existing API. Well, just do what nvidia does, make the code that interacts directly with the kernel open source and proivde the API you need, then just make your binary link to that and interact with just that. Works pretty well. Yes, it would be nice if this was standardized, and could possibly save some people a little bit of time, but thre actual gain seems to be minimal (i've written drivers for linux before, not THAT much changes from release to release as far as the code your module will use goes).

proxy

GO FOR IT (1)

Eugenia Loli (250395) | more than 8 years ago | (#13981540)

As a user, the last thing I want is hunting down drivers that will work with the X or Y kernel version. I want driver COMPATIBILITY. I want EASE OF USE. I want to do LESS WORK in my Linux desktop. I want to be fully UP and RUNNING, after a kernel upgrade.

And this is one of the things that's gonna help me achieve all this, as a user. Sure, it's going to be hell for developers having to test each time that nothing got broke duing a new release, but I don't really care. The user must have the convenience, not the developer.

If the linux developers don't like that, well, they are on the the wrong profession.

You can't have it both ways. (1)

lasermike026 (528051) | more than 8 years ago | (#13981591)

You can't have it both ways. Linux and the GPL are insperable. If Linux isn't free its dead. The linux was built to be free. Doesn't BSD have a binary kernel driver layer? Build off that.

If it allows greater hardware support... (1)

Orkie (899576) | more than 8 years ago | (#13981561)

If it allows greater hardware support then yes. Maybe more manufacturers would be interested in developing Linux drivers if they didn't have to release new ones for every kernel version, regardless of whether or not the actual driver does anything new.

To combat drivers causing the entire system to become unstable, the kernel could have a built in mechanism to unload these binary drivers if they start misbehaving and replace them with a safe, generic driver included in the kernel.

Would this stable API need to actually be in the kernel itself if the kernel developers are against it? Couldn't these companies start a separate project which can maintain it is they really think that it is needed? Then the main kernel developers wouldn't need to worry about breaking compatibility as this separate project would fix it at their end.

I don't think that binary compatibility between kernel versions would be needed (though no doubt hardware manufacturers would appreciate it) so as long as the source compatibility is maintained, it will be easy for manufacturers to support new kernels: all that will be required is a recompile (their installer could determine the correct version to download).

Put it in userspace (1)

Kjella (173770) | more than 8 years ago | (#13981562)

Should they change their mind, they shouldn't provide a binary interface. They should provide a standard kernel-to-userspace bridge. Yes, they will take a penalty hit from context switches, no they will not be able to make the kernel unstable. Make sure that binary drivers are second class citizens. Though I don't understand why this would be a better idea now than one year ago or five years ago. It's a short-term gain sacrificng a long-term strength. I'm sure stockholders looking at next quarter would, I'm sure the kernel developers won't.

Absolutely (4, Insightful)

WombatControl (74685) | more than 8 years ago | (#13981563)

One of Linux's biggest problems is the lack of device drivers for common devices, especially newer video cards. Let's face it, companies like ATI and NVIDIA aren't going to release fully open-source drivers. It would be wonderful if they would, but it would also be wonderful if we had flying cars.

Having a stable binary driver interface would make it easier for hardware manufacturers to embrace Linux, give things like wireless chipsets more usability on Linux and drive further adoption of Linux as a viable competitor to more proprietary solutions

The perfect is the enemy of the good, and the more Linux gains a foothold the better it is for open source. Insisting that device manufacturers need to have on-staff kernel hackers in order to keep ahead of a frequently-changing kernel makes it that much harder for manufacturers to support Linux as a viable alternative.

Provided Linux can have a stable binary driver infrastructure that doesn't harm stability, it would greatly help in the adoption of Linux worldwide.

Why do so many people miss the point entirely? (0)

Anonymous Coward | more than 8 years ago | (#13981570)

I can't believe that I'm seeing so many responses in support of binary-only drivers for the Linux kernel. Do you know what Linux is? Do you use it? Is part of the reason you use it the exceptional stability it offers?

Put two and two together, cretins.

What does it matter what 90% of slashdotters think (1)

djsmiley (752149) | more than 8 years ago | (#13981571)

Why on earth did they bother asking us what we think at the end of the artical, i mean how many of us actually know exactly what this would mean. Yes the site explains it but still to most slashdotters, its irrevent what we think should happen.

Karma to burn and in a bad mood :o

Re:What does it matter what 90% of slashdotters th (1)

alphastryk (929216) | more than 8 years ago | (#13981628)

are you saying that most of us don't have linux? how would you know? oh - and this idea would be great.

Disaster maybe? (0)

Anonymous Coward | more than 8 years ago | (#13981620)

This maybe a disaster just think of it to be like Windows next we will see a unified installer like Install Shield. I cannot bear to think of it, YES AOL AHHHHHHHHHHHHHHHHHHHHHHH

What's wrong with enabling closed source drivers? (1)

dtfinch (661405) | more than 8 years ago | (#13981631)

Dynamic linking of GPL licensed and closed source binaries together is only a violation if you distribute them together, IIRC. There's certainly nothing preventing an end user from installing proprietary software on their home system running Linux, that would be ludicrous, so they should be able to run proprietary drivers as well.

That said, I'm 100% certain that Linux already does this to an extent. Binary compatibility from one version to the next seems to not be as good as many would like, though I have no first hand knowledge of any of this.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...