Linked by Thom Holwerda on Sat 29th Nov 2008 21:22 UTC
Linux Even though there are a lot of happy people using Apple's iPhone very happily, there's also a group of people who are not so happy, most likely because of Apple's rather strict policies regarding applications and developers. While most of these people would just jailbreak the thing, some take it a step further - by installing another operating system. Yes, Linux now runs on the iPhone (1st gen/2nd gen, and the 1st gen iPod Touch).
E-mail Print r 3   · Read More · 68 Comment(s)
Thread beginning with comment 338755
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[3]: Wha?
by darknexus on Sun 30th Nov 2008 15:23 UTC in reply to "RE[2]: Wha?"
Member since:

@darknexus: No, I won't flame you, and many of your points are valid, but you're missing one thing. Linux is where it is BEACUSE of its unfriendliness to proprietary, binary-only drivers. The most compatibility is on the source code level. If you want the whole thing (kernel and programs) to run on another architecture, the code just needs to be recompiled, and sometimes tweaked (ported) as well. But it's doable.

I think you're slightly missing my point here. I'm aware of the relative ease of porting Linux to other architectures due to it being open source, and this is great for what it is. But by no stretch can we say being unfriendly to proprietary drivers is a good thing. Proprietary drivers would work on the architectures the manufacturer supports, that's true and no one is going to argue differently.
And think for how many architectures the proprietary drivers would be supported? Would they support PPC, CELL, z/Architecture and ARM processors? I understand YOU may not need it nor use it, but there are folks that do. And they may become pretty angry if their hardware of choice doesn't work because of lack of availability of proprietary drivers.

And how is that different from the current situation? There need not be a proprietary driver for which there already is an open source equivalent that works well enough for people. But there is a lot of hardware that there is _no_ driver support for. Isn't manufacturer support better than no support at all? Let's make this clear: being unfriendly to proprietary drivers is not going to force most companies to open their specs and/or driver code. It's simply going to drive them away from your platform. There are exceptions, of course, and some companies have started to open their specs, but I can count them on one hand and the only reason they've done this is they have a vested interest in getting themselves into the Linux realm due to netbooks and other such devices. You seem to be under the impression that Linux be moved entirely to proprietary drivers, which is not at all what I was trying to say. The quality of the open source drivers varies wildly from excellent to downright awful. If Linux were more driver-friendly to manufacturers, then you could have a choice, and isn't that what we all want?
Further, providing stable interfaces would ease the process for manufacturers at writing drivers for various platforms. Provided they don't need to access any machine instructions directly of the target host, they could simply recompile the driver for whatever architecture is needed, and let the kernel do the lower-level work.
You're 100% right. I used Solaris 8, 9 and 10 on original Sun Blades and Ultras and there's no problem with this. But such a driver works only on architectures supported by the OS, unfortunately (which means "less than Linux"). I believe that Sun and/or OpenSolaris have access to the driver's source code, that's why it can be recompiled by them. However this still is a problem with proprietary drivers from commercial vendors.

No, it's not. That is precisely my point, I can take a binary driver (the binary file, no source code or access to it) and drop it into a Solaris system of higher version (10 to 11, or what is now Opensolaris, comes to mind). These drivers still work, no recompiling, No source code access. Drop them into place, run a few devfsadm commands if necessary, and load the module. This sort of thing does not work in Linux, and it is precisely because of a stable API and ABI that it works well in Solaris. You're absolutely right that the architecture of the driver and the target machine must be the same, however, a driver compiled for x86 will not work on SPARC, for example. Often though, the driver simply needs a quick recompile by the manufacturer to work fine and, in this case, Solaris's limited architecture support becomes a boon rather than a bane. There is only three architectures that need be supported, not fifty.

To recap: I'm not saying we should abandon open source drivers for proprietary ones. There are drawbacks to both approaches, and proprietary drivers would only work on the architectures the manufacturers decide to support. But in many cases this would give us more choice than we currently have, and the option to perhaps use a better-quality driver is one we *should* have. Further, this would automatically make open source drivers work better, as they wouldn't need to be recompiled or tweaked every time the kernel internals change. This would be great for open source drivers that, for one reason or another, aren't included in the mainline kernel tree. The API doesn't even have to change if they don't want it to, just freeze it and stabilize it, then stick to it for a while only changing it when a bug is found. Solaris proves this can be done quite well.

Reply Parent Score: 4