giovedì 23 novembre 2006

Linux drivers

I should practice my English, so I'll try to write some posts in English from now on.
I've plugged my Logitec web-cam in my Fedora 6 laptop, hoping that the OS would recognize it. Sadly it didn't happened, so I went on Logitec's site, but they don't supply Linux drivers. I haven't tried my Epson Photo R300 printer yet, but I guess I won't get the same printing results as in windows, because of the lack of an Epson's specific driver. Why are all this hardware vendors not suppling Linux drivers? Is it a matter of licenses? If so, why are they giving out free drivers for win and mac? ATI and nVidia have closed-source drivers for Linux, so I guess it's not a question about licenses. Maybe they don't care about Linux users, they think that spending in the development of Linux drivers won't give a return in investment... the solution could be letting the community develop the software, by exposing the hardware specifics, but that would let competitors to learn about the technology used. So is this a no solution problem?
No. In object oriented programming, there is a parading which enables a programmer to expose only something about its work – that is the “interface” – while hiding the implementation, the algorithms behind a piece of software: the information hiding paradigm. Can this paradigm be used in another context, precisely in the software interface between the operating system and a hardware device? Well, actually it IS used, exactly in this precise context! Think about all the PROTOCOLS used between devices, some of which are even OPEN PROTOCOLS... maybe the community itself could provide open protocols between devices! Imagine a “universal printer protocol” which relies on one or more well know communication layer (via USB, or parallel port, or even over a network adapter) that includes all the PostScript and PCL features, and adds some special features like color calibration or else (the availability of this optional features could be negotiated between the devices by the “universal printer protocol” itself). Or a “universal A/V protocol”, which includes bidirectional audio and video streaming over an open compression format (ogg?), or without compression on simpler device (am I thinking about my web-cam?), every thing transported over a well known connection layer (of course USB 2, or firewire, or even a wireless or hard wired network protocol). The vendors could even enhance these open protocols, by proposing or adding features, and the same protocol could be used by every operating system (Linux, Windows, Mac, but also Symbian via infrared or bluetooth, or by cell phones). And easily a device could expose the implemented features, and higher versions of the protocol could provide new or enhanced features as well: a printer protocol 1.0 could provide black and white printing, while 2.0 could provide colors, and 2.1 even more colors...

Nessun commento: