Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Unix Operating Systems Software

UDI spec 0.90 available for review 130

The Uniform Driver Interface spec is available for public review until May 31. UDI is an initiative proposed by Intel and proprietary Unix vendors to create a single driver API. This would allow UDI drivers to run on any hardware platform and UDI-supporting OS without changing their source-code.
This discussion has been archived. No new comments can be posted.

UDI spec 0.90 available for review

Comments Filter:
  • by Anonymous Coward
    > Parallel port as a system interface is also going a way real fast.

    Shame. the parallel port is great for hobbyist hardware projects - It's simple to program, easy to hook up to external TTL, and allows you to roll your own hardware solutions - it's used extensively for all manner of one-off control systems in the small-time mechanical engineering industry.


    Obviously, big business wants to kill it. It empowers (icky word) the user - and we can't have that, now, can we ?

    All the same, USB looks fairly hackable, so the good ol' par port may not be such a loss.




  • by Anonymous Coward
    Unfortunately, the mentality of these hardware companies is to withhold all information because it has more use to them as a bargaining chip. Look at all the unreliable and flaky drivers out there for Windows that never get fixed and updated... people just are forced to use them anyway.
  • by Anonymous Coward
    1. Windows is the dominant OS. Any hardware vendor who writes a windows driver is guaranteed 90% of the market. It's not cost-effective to write a UDI (or whatever) driver to get the other 10% of the market.

    2. Suppose M$ would support UDI. Oh, wait... why would they do that?

    3. Generic (UDI) drivers might be slower then OS-specific drivers. I don't think it is necessarily the case, but it is very possible.
  • by Crow- ( 35 )
    put down that crack pipe. Creative most definately DID NOT allow creation of open drivers. they hired someone to write binary only drivers, which is a bad thing, I will never buy any hardware which is not supported with a Free driver. (Freedom, not beer)
  • And of course the complaint itself was in error as
    UDI is cross platform.

  • And with UDI you can write a driver for it which will work on all platforms that support
    UDI, which could include all free platforms.

    UDI is a good thing... Don't confuse it with
    trying to coerce vendors opening their own
    drivers.

  • "The question is, what does the UDI do other than do this? All the UDI does is enable support for non-free UNIX platforms. We need to ask: what do *we* get for this? If all we get is the a bunch of binary modules, we've gotten nothing. If we get Linux developers to write to the UDI, wow. We have yet another API abstraction."


    I find this to be somewhat narrow-minded. If all we get is binary device driver modules, that's not nothing.


    That's an opportunity to MOVE ON.


    To application development that *USES* those device drivers, for example. Device drivers might be a fun geek hacking toy, and it's always nice to know whats going on at the lower level, but don't you think it's more important on a strategic basis for Linux developers to actually start moving into the Application development area rather than dealing with driver development?


    Generally speaking, that is. There will always be lower-level work to be done, but organizing device driver development is a good thing ...


  • The problem is (and remains) that in order to make corporations happy with Open Source, OSI is always compromising. To those of us who have philisophical and moral ties to Free Software, these constant compromises and exceptions cut like a knife. With each new compromise we feel we're losing a little more. OSI can never represent me until it understands this.
  • Folks with a tradition of posting high are now getting high initial values.

    I don't like it, it's Malda's decision to make...
  • Because a driver runs in kernel space, and can affect performance, and stability of the whole operating system.

    If I find a bug in one of these drivers, the hardware maker has my hands tied.. I can't fix it.

    Hardware maker should be encouraged to release hardware specifications! This is going in the opposite direction from what we want.

    I for one hope Linus and Co. don't accept any patches to support UDI in the kernel. We have to stand up for freedom.

    This could very well cause a kernel split, and that bothers me, but I think most people would still use Linus' kernel if he decides to take a stand on this issue.

    Does anyone have any links pointing to Linus' viewpoint on UDI?
  • And people have wrapped OpenGL around the Direct3D interface (with at least some success).

    Run that by me again? Why would someone do this? Any decent videocard is supplied with an OpenGL ICD. What would be the advantage of emulating OpenGL, when the real thing is available?

    Mathijs

  • 1. Windows is the dominant OS. Any hardware vendor who writes a windows driver is guaranteed 90% of the market. It's not cost-effective to write a UDI (or whatever) driver to get the other 10% of the market.

    For hardware vendors targeting a small section of the server market, the UDI is still pretty interesting. For instance, it would allow companies like Mylex and DPT to write only a single driver for their RAID controllers. In the mid- to high-end servermarket you see a lot less NT boxes.

    On the other hand, you would expect both performance and stability from a product like a RAID controller (what other reason is there to use one). Personally, I think a Linux `native' driver will be able to provide better performance and stability than the UDI drivers. If a hardware vendor can develop a single UDI driver and distribute only the binary, where's the incentive to provide access to external driver developers to specifications? I fear the UDI will give hardware vendors an excuse to stop providing support to Linux driver developers.

    Mathijs

  • I'd be interested in knowing how a GPLed driver would not 'legally' be allowed to run in a proprietary environment. Gnu compilers and whatnot can (and often are) used on, say, Solaris with no downside... am I missing some obscure point of the GNU license in respects to UDI drivers?

    Personally, I'd prefer to see open specs for hardware... the recent ATI reversal of opinion is a prime example that suitable pressure can be exerted to make that a reality in many cases. However, I expect the common linux user would be perfectly happy with an encapsulated binary only driver, as long as it lets them get work done. That's the slippery slope, of course; once we accept what's "good enough" to do the job, we'll lose the opportunity to shoot for something better.

    --
    rickf@transpect.SPAM-B-GONE.net (remove the SPAM-B-GONE bit)

  • Okay, now I know that this post will be followed with "But my x doesnt work!" And obviously we have a little ways to go, but I didn't think that drivers were really a problem for Linux.

    Admittidly, I'd like to see usb support (Inaky?) now, but it seems to me that Linux has superior device support right now. I mean, Linux supports things that NT doesn't for cripes sake. I am going to agree with the previous poster that this will only result in more binary only proprietary code. (Which is Bad).

    Chris DiBona


    --
    Grant Chair, Linux Int.
    VP, SVLUG

  • This question was posed at the Intel Developers Forum. The answer was to the effect "they could, but we haven't heard from them". Will MSFT participate, don't bet on it.
  • concur. devfs is excellent.

    been using it for a good while now. it works well, it's backwards compatible. i like the way ls /dev now shows me only the devices for which drivers are loaded. i like the way i don't have to remember which scsi device /dev/sdb is, especially when i've hot added/removed something.

    just wish it could be rolled into 2.2... would make things a lot easier.
  • Binary only drivers have the same problem as any closed source software. I.E., if it's broke, you can't fix it. You can't improve it, or enhance it.
  • Make sure to GPL your UDI device drivers, so that they don't show up on closed-source platforms.

    I think you're missing the point here, Bruce. The idea is not to divide the world into "them" and "us". It's to create high quality software that we have the freedom to modify and redistribute as we please. As such, LGPL would be a much better license for UDI drivers. Otherwise, we'll end in a situation where there have to be two (or more) UDI drivers for each device -- one GPL (for us) and one non-GPL that can be used by the proprietary Unices.

  • I also seem to be hearing that vendors will release buggy binary drivers. Why? the drivers are the same for every OS. If it works buggy on Solaris it will Work buggy on Tu64 and Linux.

    All of that is 100% true. But companies will still ship buggy drivers. They do it all the time on Windoze. Why do you think UDI would be any different? If they can't be bothered to ship bug-free drivers for 90% of their market, they're sure as hell not going to do it for the rest of us. Furthermore, not only do they ship buggy drivers, but they frequently refuse to fix them.

    Simply put, binary-only drivers are bad for Linux.

  • *THACK*
    It's not the same driver for all hardware (ie, not the same driver for video/audio/cd-rom/etc.), it's the same driver for each piece of hardware across differant opperating systems! (write one driver for your piece of hardware, have it work for all OS's supporting the standard)
  • by ink ( 4325 )
    put down that crack pipe. Creative most definately DID NOT allow creation of open drivers. they hired someone to write binary only drivers, which is a bad thing, I will never buy any hardware which is not supported with a Free driver. (Freedom, not beer)

    Who said anything about Creative?

    How will the UDI fix that problem?

    The wheel is turning but the hamster is dead.

  • Yes, unless you have a box which Linux doesn't support, or doesn't support well. Or you are trying to run evil closed OSs like Solaris x86 or SCO. As far as a production system goes, the Linux decision might come down to whether a driver is available or not.

    And don't forget all major commerical unixes will run on IA64, along with Linux. UDI support will be pretty much mandatory for any hardware vendor. Yet you are proposing looking this gift horse in the mouth to wait for someone to write a Linux native in their spare time.

    And yet, if you look at the history involved here, which UNIX-like OS has the most drivers? Your argument has no basis in logic; if we are able to have more drivers for Linux right now than any of the other commercial UNIX systems, then it is they who should be adopting the Linux driver system, not the other way around.

    The UDI sounds like a good idea, but what people seem to be missing is that with the source code, a driver is a simple thing to implement. The underlying feeling about the UDI is that binary drivers are going to be a necessity -- and in that case it will not help anyway because new architectures and operating systems will break it. (not to mention that the core open source developers for freeUNIX systems will not use them anyway). We have seen this in action several times -- look at the Riva TNT and more recently the ATI TV card (although I still can't figure out why anyone would want a TV on their computer). In both cases, they allowed open drivers to be implemented for their cards. ESR makes some very good points on this subject -- the turn-around for hardware secrets is measured in months and so companies will open up their source after that time anyway; see www.opensource.org for more information.

    The wheel is turning but the hamster is dead.

  • Uhm - you sure about this - I'm
    willing to bet that Adaptec got their
    driver QUALIFIED before W95 was released
    to the public, but they wrote it
    themselves. How do I know - well - uhm...
    hehehe.
  • Well - the GPL is viral in nature, i.e. if
    you are creating a derived work from GPL
    source, or even linking to GPL'd code, then
    you probably have to release the code in
    source form as well to comply with the GPL
    or you aren't allowed to link it. Now there
    is a VERY specific permission granted by Linus
    for binary modules. But from my reading of the
    Kernel traffic report - he's having second
    thoughts!

  • the last time this appeared on slashdot the biggest complaint was that it only worked on intel boxes. thus, it is not a solution for linux, since you'd leave out the ppc, sparc, alpha, c64, etc. if this is still true, then it must die or evolve into cross-platorm.
  • by odd3n ( 5955 )
    This is good. I just hope those lazy vendors (most of them) get their thumbs out of their asses and hop on this. A single driver for multiple UNIX's, how hard can things get?
  • This is a spurious argument, that someone would really attempt to reverse engineer an NVida chip. It's really not all that advanced compared to what's out there, and if you've got the resources and fab capabilities, there's better things to reverse engineer. Besides, it is more in NVida's interest in the long term to release full programming information, even on their newest products.

    By the time you succesfully reverse engineer a VLSI design based on its programming instructions NVida will have long since come out with something newer and better. In most cases it would be simpler to just design your own chip. Even if you duplicate / emulate NVida's instruction set, that can only entrench NVida as a dominant standard and give them the initiative.

    Finally, open specs is definetely a big marketing point, especially if they want to succeed in the emerging Linux market. I will stick to my trusty Matrox and 3dfx cards since both are well supported in Linux and have open specs. It would be in NVida's interest to release the specs. It will sell more cards.

  • I also seem to be hearing that vendors will release buggy binary drivers. Why? the drivers are the same for every OS. If it works buggy on Solaris it will Work buggy on Tu64 and Linux.

    Although there is truth to this statement, it is being a bit optimistic. I remember when Java was going to be the language that all applications are written in because of its portability. "write once, run everywhere"

    The problem is that there are many different java virtual machines with lots of unique bugs and most of them are slow. The same (although to a lesser extent, probably) will happen with UDI. After we play with the first few UDI drivers, we'll start to find out that companies only test their driver with a few operating systems and that because of timing issues or bugs, the driver will probably only work well under the 2-3 operating systems it was tested on. Only slightly better than the current situation.

    Anyone that has spent some time on software projects knows just how funny it is when people say things like "well, this works with X so it should work with Y". I've only been a programmer (professionally) for about a year and I've learned this lesson 10 times over.

    The thing I worry about the most is the way UDI could tie kernel hackers' hands. There are occasionally changes that need to be made to the drivers in order to support new features. This might not be possible if they have to support UDI drivers.

  • For example, one of the major recent changes to the kernel architecture was the migration from v2.0/early 2.1 with a single kernel lock to late 2.1/2.2 with multiple locks, to handle SMP better. I'm not a kernel internals expert by any stretch, but it seems like one of the major changes required for this was to make all the SCSI and Ethernet drivers aware of the various differnt types of kernel lock.

    How many times have kernel architecture changes occurred that required thorough driver updates? How difficult would this become with accumulated binary cruft that nobody would be willing to change just because one OS wants to rearchitect its kernel?

    It's not a question of abstract notions of Stallmanesque software liberty. It's a question of compromising the plain flexibility and usefulness that made Linux great in the first place.

    -Graham
  • In a past life I worked for a consortium that provided binary compatibility testing across vendors machines that used the Motorola 88k processor. If they passed our tests the idea was that their code was "guaranteed" to run on all member vendors platforms that we had also certified. That meant that even if the vendor did their port on platform A they had to support it on platform B, no excuses!
    Will the card vendors who produce UDI drivers be willing to guarantee they will work on all UDI platforms?
  • Hardware maker should be encouraged to release hardware specifications! This is going in the opposite direction from what we want.

    I agree. While it is nice to have a standard, and it would be double nice to be able to have the newest wizbang hardware run under Linux, I think this is just going to encourage vendors to keep their specs secret.

    And that is a Bad Thing.

    Stand up and say NO to UDI in the Linux Kernel. If it is put in as a patch, let us not compile it in!

  • The note from Linus at the head of the license distributed with Linux states that user level programs are exempt from the GPL in the course of their interaction with the kernel through the standard system call interface. Thus they do not fall under the heading of "derived work".

    But kernel drivers do not use the system call interface. They operate directly on kernel internals. Why are they not derived works, as claimed by other posters? Did Linus exempt them? I don't see an exemption in the license.

    The GPL claims that derived work essentially must fall under its umbrella. The UDI API implementation will have an incenstuous relationship with the kernel, and couldn't be considered anything but derived. The UDI drivers distributed by device manufacturers will then interface with the exposed UDI interface. Does the GPL consider the UDI drivers, which may have been developed on a different implementation of UDI, to be derived works because they interface with the Linux kernel? Should this be another case of fair use?

    UDI should be a secondary device interface, if added to the kernel. The Linux kernel device interface is the right way. Not from a religous standpoint, but because it has evolved through the hands of many competent contributers that wanted to design the ultimate solution; one that satisfied the requirements of speed, stability, simplicity, extendibility, etc. In other words, to maintain the integrity of the kernel. The UDI interface on top of Linux is a dilution. A perversion of something that is better.

    I think UDI should be prohibited from the official kernel if UDI drivers can be distributed in binary form. Linux is synonymous with stability and robustness. In part because it benefits from peer review. Binary modules are unknowns, with access to enough of the kernel to debilitate it! We should apply a general rule: anything which runs within the kernel's address space should be open source. Open source device drivers are worth the fight, especially so that they can be changed to conform to the Linux device driver interface.

  • Incorrect. /dev/3dfx is open source.

    There is nothing "interesting" from the 3dfx interface in /dev/3dfx. It just does some programmed I/O and memory mapping. So releasing it open source wasn't a problem.

    I didn't break that ground, but it will happen soon I suspect.

    - |Daryll

  • The point of the UDI as I understand it is to make drivers work on multiple OSes, not to make them work for Linux users. As far as I know, Linux is the only OS that uses the Linux kernel.

    -lx
  • Disclaimer: IANAL

    You could release a UDI driver under GPL, but Windows or any other closed-source system could still use them, as long as their OS-side UDI support wasn't based on GPL code. If Microsoft implements UDI support for Windows based on the (public domain) UDI specification, that code is a derived work of that specification, not of the driver which is also derived from the same UDI specs.

    Of course, if there is a special driver-specific interface that only exists on the GPL-covered driver, then an application or OS which uses those features would probably then be considered a derived work of the driver. Otherwise, you can't keep proprietary vendors from using your UDI drivers just by licensing them under the GPL. (They'd still have to distribute the source code of the UDI driver itself, of course, to comply with the GPL.)

    Don't think a boycott of UDI would matter either; if a proprietary vendor supports UDI and wants to use your GPL-covered driver, they can always port your driver to the UDI interface. They'll have to release the sources to those changes, but they'd be free to use it for a proprietary system after that.

    The genie is out of the bottle on this one. But I think it's a Good Thing (tm). After all, UDI driver compatibility is only guaranteed at the source level; some similar platforms may have binary compatibility, but Solaris/SPARC and Linux/x86 certainly won't be binary-compatible. This might actually encourage some vendors to release source to their UDI drivers for widest compatibility, when they might not have been inclined to release source code otherwise.
  • For example, one of the major recent changes to the kernel architecture was the migration from v2.0/early 2.1 with a single kernel lock to late 2.1/2.2 with multiple locks, to handle SMP better. I'm not a kernel internals expert by any stretch, but it seems like one of the major changes required for this was to make all the SCSI and Ethernet drivers aware of the various different types of kernel lock.

    This could be viewed as a failing in the Linux driver interface. Ideally, the driver writer should not have to be concerned with changes to the kernel. Of course, this isn't so easy in practice. From a quick look at the HTML overview on the UDI website, one of the things that jumped out at me is that the UDI specification seems to shield driver writers from many details of OS implementation.

    Take this change in kernel locking for SMP, for example. The UDI spec says that drivers don't deal with synchronization issues AT ALL. It uses a non-blocking execution model. The OS support for the UDI environment would have to deal with the change in kernel locking, but all UDI drivers would have continued to work without modification, at least in theory. Isn't this a valuable benefit for changing driver architectures?

    I haven't read the actual UDI spec yet, but from the overview, it seems to be very well designed and thought out. It leaves a LOT of flexibility in the OS implementation, although it also appears to place a lot of the responsibility on the OS support code more than the driver. This seems reasonable to me; that code only has to be written once for each OS; if multitudes of drivers can be simplified and made more stable by putting more work into the OS support, isn't it prudent to do so?

    One more thing: UDI drivers could be implemented in user space or kernel space; perhaps the Linux UDI implementation could be done in such a way as to provide protection of the system from a faulty driver? If a particular hardware vendor's driver keeps crashing, that vendor will get the blame, not Linux itself... Instead, Linux would get more credit than ever if the rest of the system can survive driver crashes. (Potentially, the kernel could even reinitialize crashed drivers automatically.)
  • Disclaimer: IANAL (I Am Not A Lawyer.)

    It is an inaccurate generalization to claim that all binary-only modules violate the GPL. Yes, the Linux kernel is licensed under the GPL. Yes, the implemention of OS support for UDI under Linux would be covered by the GPL. However, this does not mean that the GPL necessarily applies to UDI drivers.

    Why is this? How can a binary driver be loaded into the GPL'd Linux kernel without violating the GPL? Simple. UDI drivers are not inherently derived from GPL-covered code. If the same UDI interface existed only under Linux, then implementing a driver to that interface would constitute a derived work, and subject that driver to the GPL's constraints.

    Since UDI was developed independently and is being placed in the public domain, drivers written to the UDI interface are not subject to the GPL, even if you link them into the GPL-covered Linux kernel.

    Legally, the key point is whether or not it constitutes a "derived work", not whether or not they are used together. The OS-side Linux UDI implementation would be a derived work of the UDI specification, but the UDI specification is not a derived work of Linux. A given UDI driver would be a derived work of the UDI specification as well, but not a derived work of Linux. Therefore, a binary-only UDI module running under Linux would not violate the GPL, even if you link that module statically into the kernel...

    That said, if a particular UDI driver started out as a Linux kernel driver, then it would already be a derived work of Linux, therefore covered under the GPL. Of course, the author(s) could presumably change the license if the UDI version of the driver is no longer derived from the GPL-covered code. Third parties, however, could not relicense this way, even if the UDI version no longer contains any derived code.
  • Who said Microsoft would support UDI? They've got their own driver model.

    Who says Microsoft needs to? Even if Microsoft refuses to support UDI, couldn't any third party use Microsoft's interface and create a driver that provides MicrosoftUDI translations to run UDI drivers under? This could be written once and used with many UDI drivers. (Obviously, direct OS support is always better, but it's not the only option here.)
  • Run that by me again? Why would someone do this? Any decent videocard is supplied with an OpenGL ICD. What would be the advantage of emulating OpenGL, when the real thing is available?

    Some pretty good video cards actually don't have OpenGL drivers (often, if they claim to support OpenGL they actually only support some subset that's good enough for games but not much else).

    In addition to the practical utility, it also shows that given the compute power of modern hardware, Microsoft's attempts to control APIs are getting more and more futile. Microsoft may have wanted to see OpenGL die, but people are going to wrap OpenGL around Direct3D anyway.

  • If UDI turns out to be a nice interface to write to, it may actually be advantageous to make it available on Windows as well (whether Microsoft likes it or not). That way, vendors could get by with writing just a single set of drivers, and they would be to the native UNIX APIs.

    This is happening in other areas with Windows anyway. A lot of code is written to C++ and POSIX APIs rather than Microsoft's native APIs. And people have wrapped OpenGL around the Direct3D interface (with at least some success). And in all those cases, the non-Microsoft APIs are a lot nicer to use.

  • If there's a downside, it's not immediately apparent.

    Implicitly portable drivers can only be good for the consumer. If hardware manufacturers choose (correctly) to free their drivers then the consumer's realm of bootable OSes is broadened.

    One of the excellent points made in "In The Beginning Was The Command Line" [io.com] was that hardware manufactures will always write drivers for the Windows family of products. Microsoft doesn't have to lift a finger. Linux relies on volunteers to reverse engineer new devices. Be must hire people to do write drivers in-house.

    How would the landscape change if every "alternative" OS was on equal footing with Microsoft in this respect?
  • I disagree about the Linux device interface being clean and well documented.

    This comment from netdevice.h (2.2.4) illustrates a problem with the network device interface:-

    /*
    * The DEVICE structure.
    * Actually, this whole structure is a big mistake. It mixes I/O
    * data with strictly "high-level" data, and it has to know about
    * almost every data structure used in the INET module.
    *
    * FIXME: cleanup struct device such that network protocol info
    * moves out.
    */

    I have read the Linux Device Drivers book from OReilly which is a good start but it does not have any details about PCMCIA, CardBus and other newer hardware. It has only sketchy descriptions of functions and their return values and relies a lot on code examples which are readily available in the kernel source anyway.

    Another problem I have with the Linux kernel interface is that it changes a lot between kernel versions.

    There is nothing wrong with binary modules. Ok so it goes against the spirit of things but some hardware companies just will not release source code (mine included). With a single driver interface they only have to have one source tree and can compile the driver for all UNIXes. This I see as a benefit for Linux.

    Linux will always have drivers for well documented hardware. It will never have drivers for propriety hardware unless the hardware vendor writes one. With a common driver interface this is much more likely.

    From Tom
  • If a binary driver is unstable under Linux, then it will also be unstable under Solaris/x86, SCO, etc. If it works well on those platforms, then it will work well under Linux (assuming the UDI environment of Linux is stable, which I believe it will be, since it will be one of the reference platforms).

    This is a Good Thing [tm] for Linux and Unix-like OSes in general.

    Now, to the source code issue... It might be that, with the most widely used UDI implementation around, drivers for that environment might get opened up by the manufacturers. Don't count on it, but is there really any reason to not open up the source to a device driver for a platform like that? Once the standard is set, there will be no silly driver interface licensing issues with major Unix vendors (for whom the decent I/O peripheral companies will write drivers).

    This could be a Very Good Thing [tm].

    --Corey
  • Umm... it already *does* that. How do you think you can stripe a SCSI disk and an IDE disk together? Simple, because to the kernel layer above the raw device drivers they look *the same*.

    This would not slow anything down if the UDI environment were to exist side-by-side with the current Linux Driver Interface, rather than below it.

    --Corey
  • I read an earlier version of the standard from fron to back and, while the draft was rough as hell, it seemed fairly complete and well-designed. A lot of it dovetails with the Linux Driver Interface. There were a couple problems with it that I could see, in that there wasn't enough possibility for dynamic configuration of drivers at a general level, and finer-grained configurability at instance levels, but all in all it seemed a good specification.

    --Corey
  • Especially for things like video and sound drivers, you are correct. The problem with it is, there is no way to know if you have the whole specification.

    With this specification, you do have the whole thing.

    Windows' device model is, from what I've heard, way too foreign to be integrated.

    --Corey
  • In that case, then, we have the interface to use in debugging and reverse-engineering the driver. It's a sensible interface, unlike the things I've heard about Windows drivers, and since it's a standard, there won't be any niggling little OS-specific hooks.

    Even if the vendors don't release code, the job of supporting their hardware still becomes easier, and we can test the function of our open drivers against that UDI driver.

    This is still a Good Thing.

    --Corey
  • No, UDI is binary compatible across similar OSes on the same platform. SCO and Linux and Solaris could all use the same binary driver in a UDI environment.

    Your point about the possibility of more open-source drivers resulting from this is a good one. Not because of the reduced engineering effort to produce a driver (that will simply increase the quality of the driver), but because there will be no proprietary information for each vendor needed in the driver. They will use a common interface, rather than a XYZOS interface, the publishing of which certainly has legal ramifications.

    --Corey
  • Hmm... anyone want to start a new movement with a lot of press hype and industry buzz?

    I recently bought a Matrox G200-based card *based on their decision to open the programming specs*. I emailed them and told them so, too, and told them that if they opened the specs for the upcoming G400 (which looks to be very cool, BTW), I would upgrade all the systems within my grasp to that.

    You have to vote with your pocket books, and don't forget to tell the vendors why you made the choice you made.

    I wonder, though... could an "Open Specs" ([tm] [r] [c] ;-) movement make any headway in this arena?

    --Corey
  • They, just like the Linsux kernel, are in "release mode" right now. They've got to stop discussing at some point and publish a standard. The one they have is relatively decent, and so with a bit more discussion, minor fixes, etc. it can be released.

    Is this not logical, especially for a standards body?

    --Corey
  • I think this may be good for Linux, with UDI support, we'll probably get more vendors willing to supply drivers for Linux.
  • I think Nvidia has all the right in the world to keep their well-researched technology from getting into everyone's hands. They have to make money, you know. If they are forced to release the source code to their drivers, it would make it _extremely_ easy to reverse-engineer their technology.

    If a company releases bad drivers, I think it will become quickly clear to people and they will jump up and down and boycott company Z until they get on the ball. It's a trade-off, for sure, but I want to play GL q3a in Linux!
  • Operating systems are not that simple, and interfaces designed by committee (like UDI) are rarely simple or robust (Not that I've actually looked at the UDI spec :-P ) Because something is stable under Solaris or SCO does NOT mean that it will be under Linux or *BSD. At least with open source drivers, the problem can be fixed by whoever is having problems.

    > Once the standard is set, there will be no
    > silly driver interface licensing issues with
    > major Unix vendors (for whom the decent I/O
    > peripheral companies will write drivers).

    Unfortunately, this is not the reason that many companies site when defending closed-source drivers. Creative Labs and 3dfx are both excellent examples of this. Neither company is providing open source Linux drivers for some of their products because they will be "giving away their intellectual property." The main reason for keeping drivers closed source is to protect the hardware interface to the board, not to protect the driver I/O interface. Winmodems are another example.

    Personally (except for the winmodem case), I don't understand this argument, the IP to protect should be in the design of the chips themselves, not in the interface. Maybe both Creative Labs and 3dfx have algorithms in their drivers which they want to protect (Which definatly is the case for Winmodems).
  • Just because UDI is a GoodThing for proprietary UN*X, that doesn't mean it's a good thing for open source UN*X. Don't confuse a commercial GoodThing (tm) with an Open Source GoodThing (tm)

    If the Linux community embraced closed-source drivers, it would definatly be counter-productive because we would lose the part of Linux that has brought it to where it is today; it's free origins.
  • Is there an implimentation of the UDI being developed for Linux? It would almost have to be a kernel-space project and I don't remember seeing anything about it on the list.
  • ...do not violate the Linux kernel license in any way, so long as they require no changes to the kernel itself. It's perfectly reasonable to distribute a binary-only SCSI module, for example.

    It's only when your changes involve the kernel itself that GPL virulence comes into play.

    The strength of the Linux kernel, which includes its device support, is its freed, opensource nature. Binary-only modules hurt that.

    That's also its weakness. I was forced to install completely different SCSI hardware because Western Digital no longer supports the 719x and refuses to distribute chipset-level information on it, claiming that their SCSI product line was sold to Adaptec (who disavow anything to do with the 719x, calling it "obsolete." Why buy products just to discontinue them?)

    I'm perfectly aware of the undergroundish project to write drivers for the WD719x, but they are:
    1. Based on "stolen" code, and
    2. Usable only with 2.0 kernels (and the hackery to make them use the new PCI interface is above my head -- I tried, and the driver itself is such a mess it's impossible to learn the PCI interface and the driver simultaneously for someone of my limited intellect.)

    Here's where I'd take a binary-only driver over no driver at all.

    I should also add that support for SCO is our bottom zero priority.

    Is your bottom priority. People who run SCO UNIX might think differently. Although I think they all went away in the 80s, didn't they? People don't seriously run SCO any more, do they? No, really?
  • solution : Richard Gooch's brilliant work : devfs [csiro.au].

    Really cool (I wish Linus said why he didn't include it in the official 2.2 tree, though he said at one point (circa 2.1.105 ?) that he was considering it). FWIW, I'd be quite unsurprised to see some devfs-based distributions out there soon (I'm speculating the Bero/Mandrake folks would be the kind of people to attempt this first).

    On my (work) machine, "ls /dev | wc" yields 52 entries (that makes 7 lines x 80 characters, pretty manageable, isn't it ?), while "ls /dev/**/* | wc" gives 422 devices total (and I'm still running with the glibc2.0 compatibility symlinks, together with a few custom links I had to do to support legacy stuff [call this laziness]). Yet almost all the device nodes there are functional and mean there's actually a device behind.

    (now, what does this have with major/minor ? Easy, the devfs support routines either use the legacy magic numbers, if so requested by the drivers, or can assign new ones on the fly, as available. Either way, major/minor is now an (almost) irrelevant feature, only the device node counts).

    (Oh, yes, Solaris' been doing something quite similar for some time, though not that bold and confident, some other OSes may do too, but I'm quite an ignorant).

    -- Cyrille
  • Use xpdf. You may need to get it from Europe for
    the crypto add on. Adobe made PDF basically an open protocol like postscript but one they already had a good lead on. Nice sensible way to do things
  • People may even release a GPL'd UDI for the Linux kernel. I don't think anyone should expect it to make the main kernel tree. Like streams its one of those dumb ideas that doesn't merit mainstream kernel support.

  • Ya'll are gonna have to help me out here, 'cause I don't understand several of the arguments against the UDI?

    First, if the UDI is an interface specification, and the Linux kernal is modified to accept drivers written to that interface, why would the kernel EVER need to be modified in order to work with a binary driver? Isn't it the point of the UDI to remove the need to modify the kernel for driver compatibility?

    Second, if Matrox as a company woke up one morning and decided to open their video drivers under the GPL, what effect would that have on OS/2 or Windblows? Would IBM or Micros~1 feel compelled to open their source?

    Put these two together, and I don't see how making the Linux kernel compliant with the UDI (and thereby encouraging binary only drivers) could possibly be bad for Linux. VendorA will think it in their best interest to keep their buggy drivers closed, while VendorB will open theirs up to peer review. Guess who'll end up with the better driver support/more stable product. As VendorB gets more and more support, people ignore VendorA, until eventually VendorA catches a clue.

    However, in the interim, I can't see how VendorA hiding his source can hurt the GPL as long as the interface to the kernel is through PUBLISHED interfaces. If you say the drivers have to be open, then there isn't any program that would be able to run under Linux without being GPLed (unless of course, the program didn't use the keyboard, screen, disk drive, or memory which are all managed by the kernel 8*).

    I find this argument nearly as ridiculous as those silly executives stating publicly that Linux needs standards because it is going mainstream and and that the Linux community is just going to have to get used to it. I can peacefully tell them all to go screw themselves. This community doesn't have to accept anything from the corporate elite. If you like our work use it, if you don't, that's fine, too. But Linux got where it is because some hackers wanted to play. Those hackers will continue to play wherever they like. We'll release a new version every day or once a year, corporate IT be damned.

    If some corporate types want to publish an interface spec, GREAT!! If it's good we'll use it, if it's not we'll ignore it. If we modify the kernel to take advantage of some binary drivers that will open up another choice. If the binary drivers are good they'll get used, if not they'll be ignored.

    So, since we are the ones in control (because we don't NEED anything from IBM, SUN, SCO, etc), how can compliance with a published spec be detrimental to the GPL, the Linux community, or Open Source?
  • Unixware has already had one new standard interface for device drivers, the portable driver interface (back when it was AT&T/USL). This seemed to be stillborn, perhaps due to the sale of Unix to Novell. Before that they had DDI/DKI in System V, which is still documented as the standard interface for Solaris. Maybe this one will live as long as the PDI did.
  • I do think, however, that it may encourage driver writers to go closed-source when they might not have previously.

    Perhaps. But at least there'd be a working driver to tide people over until someone gets a GPL'd implementation written.

    Hm. I wonder if a UDI 'sniffer' would be possible.

  • UDI is truely a good thing. Some of you have pointed out Linux has a good driver model. That might be the case but this is a set of APIs that allow the same driver to be run on any OS that support it. Well, then why not port the lLinux code to other OSs? Because there are flaws in Linux like any other OS.

    I also seem to be hearing that vendors will release buggy binary drivers. Why? the drivers are the same for every OS. If it works buggy on Solaris it will Work buggy on Tu64 and Linux.
  • Can you explain why the distribution of binary driver images is a bad thing? As long as they run on all platforms, I dont see the problem.
  • Actually, with NT5 (WIN2000) NT will use WDM (Windows Drivers Module or something like that) just like win98. So one set of drivers will be good for windows platforms, while another set of drivers will be good for the rest of us.
  • You have to understand that corporations think RMS is a nut (I don't, but they do). OSI is much more corporation-friendly. We insist on the same freedoms as free software (there will be an APSL 1.1 -- let he who is without sin cast the first stone), so we're hacker-friendly too.
    -russ
  • Its more of an interface to the kernel/OS than an interface in the traditional way of thinking about interfaces (as an API, for example).

    The driver can still do whatever it wants to at the low-level, its just that in order to function it has to provide fundamental exports that can be used by the kernel of the OS to get data in and data out.

    Sort of in the same way that entries in /dev all represent vastly different devices, but yet they can be written to/from with fread()/fwrite() etc. because they appear as standard UNIX file streams.

    (I'm generalizing here)

    IMHO, having a UDI spec published is a good thing as it means that more and more device drivers can be made available across the Unix sphere. Yes, there are disadvantages - there *may* (not necessarily *definite*) be less and less opportunity for hackers to release OpenSource drivers based on study of released specs from hardware manufacturers.

    On the other hand it does mean that specialized hardware manufacturers who consider their device driver the 'first line of defense' against reverse engineering will be more prone to releasing drivers for Linux, BSD, and other UDI supporting OS'es.

    Essentially, militant OSS dogma aside, this means more device drivers, which means more use of these OS'es in area's that would be relegated to having to bolt NT into an application area just because it has device drivers for the card.

    I'm all for the UDI, I think its a positive thing. As a developer of Win9x/NT and Linux device drivers myself, I'm all for a more organized and standardized device driver industry, and if the UDI presents a degree of solidification in that area, then so be it.

    My fundamental feeling about device driver development is that it's a good thing for those that enjoy it, and they'll always be able to continue this sphere, but for Linux and other such OS'es, its really time for its developers to move on from the lower-level stuff into the Applications arena, taking advantage of standardized efforts at the lower level to make super-cool Application development possible.

    If there were, for example, a completely standardized and well implemented audio driver core for Linux, I could move on and write the killer multi-track recording system I want to run under Linux, instead of having to worry about whether or not I have read/write capabilities to sound hardware at the driver level.

    Realistically, the only thing stopping me from launching on such a project is that the technology behind device drivers for audio devices under Linux is bogus - and if UDI means more device driver development occurring (OSS or non-OSS, I don't care as long as it works) this increases the chances that better audio drivers will be written by those that have an interest in writing them (those that profit from the hardware sales).

    And this means that I can then move on to building a 'tractor' application for Linux that people will want to use without having to worry about how to get bytes flung around the bus ...
  • by bhurt ( 1081 )
    The uniformity is across operating systems, not across peices of hardware. So a single driver _source_ (note: UDI is source-level compatible, not binary!) can support Linux, *BSD, SCO, Solaris, Digital Unix, and others (I forget who all is signed up).

    I think the UDI will actually make open-source drivers _more_ common. It's a source-level spec, so you'd have to recompile the driver for different operating systems. Most of the companies writting device drivers are hardware companies- device drivers are loss leaders to sell hardware. The biggest problem with support "alternative" (i.e. non-Windows) operating systems is the engineering effort required. With UDI, they can write (and release open-source, or at least source-available) one driver and get sales to numerous different operating systems.
  • At the Intel Developer's Forum, Intel announced
    that they would be working on a Linux UDI implementation. Intel seems to be very supportive
    of UDI.
  • It's not bad having a cross-platform driver specification. I do think, however, that it may encourage driver writers to go closed-source when they might not have previously.

    Make sure to GPL your UDI device drivers, so that they don't show up on closed-source platforms.

    Bruce

  • This was discussed [slashdot.org] in some (flaming) detail previously. In the interest of not repeating the entire discussion y'all could read through it.

    I imagine that the spec has changed somewhat, though, so perhaps some of the restrictions have changed (like vendors being able to provide binary only drivers)

    enjoy.

  • Currently, the only license information I can find distributed with the kernel itself is the GPL, in /usr/src/linux/COPYING. However, there seems to be the exception, spoken by Linus himself, that binary kernel modules are allowed as long as they don't require interface changes in the kernel proper. We've already had one such case - /dev/3dfx

    If this is to be the case, we had better get it in writing and get it in writing ASAP - I can just picture the chaos when binary-only drivers start becoming common, and some kernel developer says "No, I contributed to the linux kernel under the GPL. Stop allowing binary modules, or take my 50K lines of code out of the kernel."
  • Not his statement to make? Sorry, but the last time I check, Linus was the final say of what did and did not make it into the Kernel. He may not own the GPL, but he does, for all intents and purposes, own the Linux kernel. Binary drivers are not against the GPL of the kernel, they just can't be distributed _as_ the kernel.
  • Linus and Co. weren't too thrilled about UDI. Mostly because hardware vendors would go back to making binary only drivers, and potential performance/stability issues.

    "What do you mean you want programming specs? We got you a driver..", or "..driver acting really slow? Oh, we don't support UDI drivers on Linux". In some ways, it could be worse than nothing.

    Personally, I think it would probably be good for the near term. But it would be bad precedent.
  • Actually, when Windows 95 was in beta, many hardware companies were balking at releasing Win95 drivers, preferring to use the DOS or Win3.1 interfaces in 95, which would have lead to Win95 having many of the same problems Win3.1 did as well as breaking plug and play.

    Microsoft ended up writing a bucket load of drivers themselves for 95 - for example all of the Adaptec SCSI drivers are from MS. MS also wrote a Novell NetWare client because Novell initially wouldn't.

    This is a similar situation to where Linux is now - most of the drivers are written "in house". However as adoption increases, it's hardly fair to have the kernel group keep up with the thousands of new devices coming out for the PC every minute. Commercial driver support is going to happen, and a spec like UDI could make it happen if only because it eliminates duplicative effort.


    --

  • Who said Microsoft would support UDI? They've got their own driver model.

    Besides, what hardware released in the last 3 years doesn't have NT support? It's hardly a problem for them.
    --

  • Well, considering that UDI is only for new hardware, and Intel and Microsoft are going to kill the ISA slot next year, I doubt the ISA issues are that important.

    How would UDI remove the existing parallel port drivers in Linux? (Parallel port as a system interface is also going a way real fast.)
    --
  • Hello,

    I've noticed that my postings have very high scores. While I do appreciated my own viewpoints, I think leaving it at 3 is enough; moderators SHOULD NOT score up my articles just because they like what they said. Many others have raised important points too and their articles are at 1. Score them instead.

    Cheers,
    Joshua.

  • Please explain how binary-only modules which I use, violate the GPL; I admit it is probably due to some mistake of mine, but as far as I recall, if someone sticks a binary-only module in a GPL'd system then they are not breaking any of the GPL's rules. Again, please correct me if I'm wrong.
    In any case, I think that direct support from vendors is definitely a Good Thing; your OS/2 experiences are irrelevant in the Linux context - want to drag Amiga into this as well? Adoption of Linux by hardware vendors will boom in the next year, and I believe the UDI initiative might just be one of the catalysts.
    You can be assured that most users would very much like to have their hardware supported in Linux/UnixWare/Solaris/whatbloodyever platform by the vendor; free/GPL'd drivers are definitely not going away, so you'll probably have these as well. The problem is with hardware for which OpenSource drivers do not exist, or are flaky; some sites are running with reasonably cutting-edge hardware, for which drivers are lacking. UDI might give support for such systems a boost.
    In any case, this is a move towards defragmentation of Unixland; sure SCO, Sun, HP and others will get something free out of this, but it means greater unification in the face of the Redmond bastards. If you're afraid that Linuxland will "lose" in some way due to such initiatives, I think you need to take a look at your faith in this platform; once commercial interests have become involved in Linux (and I'm not talking about RedHat), you should expect market pressures and powerplay to figure in the platform's future - and that means stuff like UDI "muddying the waters" for you. Linux is being used in complete voilation of the GPL all the time - I know of at least three embedded systems which use a modified version of the Linux kernel - and you'll probably never know. Sure, this is not the same, but I just gave this as an example that once money comes into it, the rules change, license or no license.

  • In the near term, UDI might be appear to be a GoodThing (tm), mainly because there is the potential for more hardware support for vendors. However, UDI on Linux has two major flaws that can damage the entire community in the long term. BTW, this is based on the assumption that non-free closed-source drivers will proliferate under UDI.

    The first is that UDI dictates how the driver architecture will work and behave. Kernel developers will lose the freedom to experiment with hardware interfaces to tweek the performance. Regardless of a common heritage, all UNIX-like systems are not created equal. A monolithic kernel behaves different from a micro kernel, and both can be tweeked differently. Just because a driver is a good design under one UNIX-like OS does not mean that it will be a good design under another UNIX-like OS.

    Second, anything that promotes closed-source drivers in the Linux kernel (or *BSD kernel) is bad for the entire Linux movement. Device drivers are the most common source of instability in a OS kernel. If closed-source drivers become common, we will definitely begin to see articles in major magazines which complain about the instability of Linux, when really badly written 3rd party drivers are to blame. This will kill the reputation that Linux has developed for unmatched stability. (Don't believe me? Driver instability is the main reason why Windows 95 and NT is an unstable pig)

    UDI helps other UNIX vendors much more than it helps the free software community. Let's avoid the temptation of the 'quick fix' if it involves giving up our main strength; our free-software roots.
  • by IntlHarvester ( 11985 ) on Thursday April 08, 1999 @12:53AM (#1944655) Journal

    I didn't mean the Parallel Port was going away (although its "optional" in the PC 99 spec). Only that ParPort scanners, video capture stuff, hard drives, and so on have already been pretty much replaced by USB, which is fine because the ParPort has always seemed kinda flaky as a perhiphreal interface.
    --
  • by IntlHarvester ( 11985 ) on Wednesday April 07, 1999 @04:02PM (#1944656) Journal
    The current Linux driver model is working just fine.

    Yes, unless you have a box which Linux doesn't support, or doesn't support well. Or you are trying to run evil closed OSs like Solaris x86 or SCO. As far as a production system goes, the Linux decision might come down to whether a driver is available or not.

    And don't forget all major commerical unixes will run on IA64, along with Linux. UDI support will be pretty much mandatory for any hardware vendor. Yet you are proposing looking this gift horse in the mouth to wait for someone to write a Linux native in their spare time.

    My understanding is that non-GPL drivers are specifically allowed by the Linux licence, probably to encourage commercial support. And the native Linux interface is not going away, if there are are performance problems or you are worried about freedom issues.
    --
  • by IntlHarvester ( 11985 ) on Thursday April 08, 1999 @12:45AM (#1944657) Journal

    For those of us who run machines for profit-making corporations there's also the Best Possible Server Good Thing (tm). A different sort of ideology.
    --
  • by IntlHarvester ( 11985 ) on Thursday April 08, 1999 @12:48AM (#1944658) Journal

    OK, I stand corrected. Although, it does say Copyright Microsoft all over it, with no Adaptech copyright.
    --
  • by jerodd ( 13818 ) on Wednesday April 07, 1999 @04:15PM (#1944659) Homepage

    Okay, now I know that this post will be followed with "But my x doesnt work!" And obviously we have a little ways to go, but I didn't think that drivers were really a problem for Linux.

    My Intel ActionMedia II Display Adapter/A (speaking of Intel) isn't supported. I want video4linux for it NOW!

    Admittidly, I'd like to see usb support (Inaky?) now, but it seems to me that Linux has superior device support right now. I mean, Linux supports things that NT doesn't for cripes sake. I am going to agree with the previous poster that this will only result in more binary only proprietary code. (Which is Bad).

    <blush> Thank you.

    USB support is there, but it's experimental. It at least works for the USB keyboard and mouse, and I believe there was an experimental audio module. It's in the same state as the Linux I20 modules--test 'em on a non-production environment and submit your bug reports or fix the code yourself and submit patches.

    Cheers,
    Joshua.

  • by jerodd ( 13818 ) on Wednesday April 07, 1999 @04:19PM (#1944660) Homepage

    To application development that *USES* those device drivers, for example. Device drivers might be a fun geek hacking toy, and it's always nice to know whats going on at the lower level, but don't you think it's more important on a strategic basis for Linux developers to actually start moving into the Application development area rather than dealing with driver development?

    It might seem like this at first, but when you lose the driver base, you're hosed. This bit us OS/2 users very hard. When your SCSI chipset doesn't work, your applications don't work, either. And having an ancient 16-bit driver that doesn't work with anything except disks does not count as support, even though some vendors (Rancho Technologies) thought it did.

    The solution was to only buy IBM hardware or Adaptec hardware (until other drivers came out). So far, Linux has avoided that route.

    Beware the binary primrose path. Maybe I'm just too much of a radical GNUer or maybe I'm just bitter after the OS/2 debacle--I just don't want to ever be burned by binary-only software again.

  • by jerodd ( 13818 ) on Wednesday April 07, 1999 @03:59PM (#1944661) Homepage

    Have the ports of Linux to other platforms encouraged binary distributions? I don't think it has, and Linux does the same thing as UDI, just for programs (use it on many platforms without a recompile). Therefore, why would a port of UDI to Linux do this?

    The question is, what does the UDI do other than do this? All the UDI does is enable support for non-free UNIX platforms. We need to ask: what do *we* get for this? If all we get is the a bunch of binary modules, we've gotten nothing. If we get Linux developers to write to the UDI, wow. We have yet another API abstraction.

    But look at what SCO (and probably Solaris x86) get out of this. They get free code without having to give anything back, other than more binary-only modules which are a Bad Thing.

    RMS has taught you paranoia well. Yes, perhaps SCO would then be able to use Linux drivers. Remember, however, it goes both ways. Linux will suddenly be able to use drivers from these other Unices. Is this a Bad Thing? I can't see why it would be.

    Actually, working with OS/2 has taught me paranoia quite well. The OS/2 driver situation was simply terrible, and there was nothing a user could do about it. I don't want more binary modules, and that's all SCO has to offer. If I want a proprietary, binary-only system, I do run a Unixware 7.0 system, and could use it. (CDE isn't half bad, by the way, with the exception of the dog ugly Motif).

    Certainly, that's your prerogative. But what if the Linux kernel had even better device support? Look at it this way: propple use different unices in different areas. But what if a developer could develop a single driver which could run on all Unices, and Linux to boot? That's going to be much more tempting than writing two drivers, one for Linux and one for everyone else.

    We have that now. It's just as easy to implement support for the current Linux driver scheme in a Unix or Unix-like kernel as it would be to implement the UDI--and there aren't any UDI drivers today, unlike Linux drivers.

    Be very, very, wary of those who promise you FREE binary code. It's always a bad thing, especially with a freed operating system.

  • Interesting idea. Expressed ten times more consisely than what I was trying to express previously, by the way.

    That said, I have an honest question here which hadn't occurred to me before. Doesn't that defeat the whole point of writing a UDI driver? Why wouldn't a GPL'd driver be usable on a closed system?

    I've never been 100% clear on this point, which seems to be at the center of the RMS vs ERS issue. Is this what they are talking about when they use the term "infects" in relation to the GPL, as in "we have to be careful not to use code that allows the GPL to "infect" the code tree" etc.?

    I'll sit back, listen and learn now

  • by Millennium ( 2451 ) on Wednesday April 07, 1999 @03:53PM (#1944663)
    It's called the Linux kernel's driver interface. It's clean and is very well documented. It has much example code available. O'Reilly has two well-written books on the topic.

    Very true.

    This UDI thing would also encourage distribution of binary driver images, which is a Bad Thing.

    Have the ports of Linux to other platforms encouraged binary distributions? I don't think it has, and Linux does the same thing as UDI, just for programs (use it on many platforms without a recompile). Therefore, why would a port of UDI to Linux do this?

    It's also probably an attempt by SCO to get a free ride by making future Linux drivers work with SCO (which would, BTW, be in grievous violation of the GPL).

    RMS has taught you paranoia well. Yes, perhaps SCO would then be able to use Linux drivers. Remember, however, it goes both ways. Linux will suddenly be able to use drivers from these other Unices. Is this a Bad Thing? I can't see why it would be.

    The current Linux driver model is working just fine. SCO and IBM can distill fun little PDF files if they like, but I'll keep on using the Linux kernel that I know works and has good device support today.

    Certainly, that's your prerogative. But what if the Linux kernel had even better device support? Look at it this way: propple use different unices in different areas. But what if a developer could develop a single driver which could run on all Unices, and Linux to boot? That's going to be much more tempting than writing two drivers, one for Linux and one for everyone else.
  • by jerodd ( 13818 ) on Wednesday April 07, 1999 @03:52PM (#1944664) Homepage
    If this means that vendors can distribute binary-only modules for Linux driver compatibility. doesn't that indicate a subtle dilution of the GPL? Firstly, no distribution can ship with these drivers linked in (in either /lib/modules or /initrd or implicitly). That is very bad. It also means that I can't send someone my Linux setup (kernel+modules) if I'm using any of these binary-only modules.

    This also harms the GPL. I wish Linus hadn't made that statement about binary-only modules being allowed, because it wasn't his statement to make. Binary-only anything in the Linux kernel is a grievous curse that must be avoided at all costs. Let us not sacrifice the freedom of Linux in the future on the altar of some extra device support today.

  • by jerodd ( 13818 ) on Wednesday April 07, 1999 @03:39PM (#1944665) Homepage
    It's called the Linux kernel's driver interface. It's clean and is very well documented. It has much example code available. O'Reilly has two well-written books on the topic.

    This is just another attempt of SCO, which is rapidly become the obsolete PC UNIX vendor, to make themselves important once more. It's also probably an attempt by SCO to get a free ride by making future Linux drivers work with SCO (which would, BTW, be in grievous violation of the GPL). This UDI thing would also encourage distribution of binary driver images, which is a Bad Thing.

    The current Linux driver model is working just fine. SCO and IBM can distill fun little PDF files if they like, but I'll keep on using the Linux kernel that I know works and has good device support today.

  • by jerodd ( 13818 ) on Wednesday April 07, 1999 @03:46PM (#1944666) Homepage
    Because vendors will ship binary drivers for kernel 2.2.5 that sort of work. They work good enough for the vendor to stick penguin sticker on the side of the box. By the time kernel 2.4 comes along, the driver is terribly broken because it turns out the vendor made it full of ugly hacks that don't work with any other newer hardware, but they refuse to support the newer kernels. I've been through this more than once on OS/2. It is simply no fun.

    Binary-only modules also violate the GPL, plain and simple. We can't tolerate that, or we might as well just rerelease Linux under the X11 licence.

    The strength of the Linux kernel, which includes its device support, is its freed, opensource nature. Binary-only modules hurt that.

    I should also add that support for SCO is our bottom zero priority. If anything, SCO should work to make Linux drivers usable in SCO (although that still violates the GPL), but not the other way around. SCO is effectively asking Linux developers right now to give them something for free.

  • (Hopefully this will not be a double entry; I attempted to submit it before and something kinda weird happened. If it is, moderators please push one of the two messages down)I've perused the website and introductory information and have copied the PDF's for perusal later. At first glimpse this appears to have some positive aspects, however, the vendors list was light on things like scanner manufacturers (other than HP), video card manufacturers, etc.

    A potential positive from their site: "While Project UDI does not intend to "take a side" in the debate, we are taking steps to facilitate UDI deployment in the OpenSource Community... We will also be releasing reference implementations of the UDI environment for Linux and other operating systems, as well as sample drivers. These will all be open source distributions."

    Side Notes:

    • they linked to the ESR OpenSource definition page, not FSF. See the comments about binary drivers, etc. as to a possible reason why.
    • They also have done a proof of concept with an Adaptec SCSI controller and an Interphase component which I did not immediately recognize.
    • One of the systems was a Linux system compiled by Intel [Intel Linux, anyone? :^) ]
    Because they did not mention the Linux Kernel Driver Interface, and binary drivers (which break the GPL) are allowed, this is not 100% a good thing, as Jerodd has previously noted. However, if the UDI is or could be made compliant with the Linux Kernel Driver interface, then this could potentially offer the community a larger installable bases of new "power" peripherals, etc. without always requiring us to reverse engineer the WinDoze drivers.

"Protozoa are small, and bacteria are small, but viruses are smaller than the both put together."

Working...