The Future of Closed Source Software and Linux
slashy writes "What is the future of closed source software and Linux? OSWeekly.com delves into the subject and emerges with a possible answer. Quote: "I have been struggling with one major problem lately with the Linux operating system and that problem is the amazing lack of new and exciting software. It's frustrating because by the time said software does finally make its way down to the Linux user, the Windows crowd has been using it for nearly a year or longer.
Perhaps some of this is because there does not appear to be a clear, simple to follow outline cooperative for companies to design for the open source operating system. Arguably this is because of the perceived need to keep things "open," however, I feel it's time for Linux to grow up and find some kind of common ground with the closed source community. I am a firm believer that both parties could learn a lot from each other; unfortunately I don't see that happening any time soon."
"Lack of new exciting software"? Try xgl/compiz! It's the most exciting software I've seen since a windowing environment!
Perhaps some of this is because there does not appear to be a clear, simple to follow outline cooperative for companies to design for the open source operating system. Arguably this is because of the perceived need to keep things "open," however, I feel it's time for Linux to grow up and find some kind of common ground with the closed source community. I am a firm believer that both parties could learn a lot from each other; unfortunately I don't see that happening any time soon."
/. Sorry if you don't like it or don't believe it, but that doesn't make it less true. Or at least, that doesn't it make it less true in the eyes of software developers.
Actually, this is exactly what I have heard from a number of software vendors. I review software and gadgets for a few web sites. One of my testing criteria, particularly for hardware, is if the hardware is Linux-compatible. When it comes to software I always ask if there are any plans to offer a Linux version of the software. The answer that I hear the most often is in regards to a lack of available resources, which I certainly can understand since I review a lot of software form independent companies. But when I question further about asking Linux coders to help with the conversion, the major of companies that have shown an interest in a Linux port say that they've attempted to do so, but the programmers that they approached expect the software to be open-sourced if the company is to get their help. I've even had some developers of software that's geared more towards a particular science admit that they think there would be a huge demand on their software for Linux, but the "requirement" by Linux coders that the software is open-sourced killed the prospect of releasing a Linux version.
As much as I'd like to brush that off as "just an excuse", look at a lot of the replies here on Slashdot about Linux and open-source and you'll quickly see that HE'S RIGHT! I love open-source (or at the very least open standards) just as much as anyone else here and I use it whenever feasible. But there is definitely an assumption among a lot of Linux users that if it's available on Linux the course code has got to be made available or else it doesn't belong on Linux, like it's some kind of plague.
Now, I'll confess that this attitude has been diminishing as Linux eeks its way into the mainstream. The attitude is shifting away from open source and more towards open standards. But there is still a big movement and big preconception that "Linux == Open Source" and "Closed Source != Welcome On Linux".
NOT flaming here, folks. Just relaying what I've been told by software developers and what I've seen here on
Yes, absolutely. You are free to release Linux user applications under any license you choose. Kernel contributions are a different story, but user-applications are completely up to you.
Is it "possible" to write software that will run in linux that does not "require" GPL code?
Yes. Most libraries on Linux are released under the LGPL or other licenses that do not force you to distribute source code to applications that link to those libraries. Of course you should check the licence for each library you intend to use first (just as you should in the proprietary world).
As I said, I'm just relaying what other developers have told me. That's all. Take it at face value.
However, you cannot deny that there it a very strong sense of "Make the source code available!" in the Linux community. I'm NOT saying that it's right or wrong, just that it's there. And don't say that Linux coders do not require open source! I've seen postings on Slashdot and other Linux communities that have actually criticized companies for releasing software on Linux but not making their source code available as though it's some kind of expectation! I know enough to take such postings with a grain of salt, knowing that there are extremists in every crowd who will never be satisfied, but what the hell do you expect a developer to think if they had plans on releasing their software but then saw that there's an expectation of releasing their source code?
It's not only possible, it's easy. The main thing to watch is libraries. All you have to do is avoid using libraries available only under the GPL in your program. The only critical libraries that your program will have to use are glibc and the GCC C++ library module, and both of those are under LGPL-style licenses. As long as you dynamically link to them (so the library object code isn't physically included in your executable) you don't have a licensing problem. Other libraries you'll have to look at their license terms to see whether they're compatible and how you have to use them to be compatible, but none of those are required to run on Linux and you can just not use them if you can't find a way to be compatible with their licenses. GTK (Gnome) and Qt (KDE) are probably highly desirable for GUI apps, but GTK's under the LGPL and Qt has a commercial license available so you can use both without having to open-source your code.
Well that's what SourceForge claims as registered projects but it's not necessarily sane.
Let's break it down a bit:
39,000 pieces of reasonably usable software (beta + release); in fact it's probably far fewer (considering many projects either duplicate or inherit functionality from other projects, or are no longer active). Hardly over 120,000 though.
It's called Konqueror. It has these wonderful things called 'ioslaves' which can be accessed by special 'protocols'. Not only does it support browsing the local filesystem and the web, but also ftp sites (ftp://ftp.gnu.org), secure ftp (sftp://blah), info and man page viewing (info:/libc, man:/fstab), and a whole host of other resources. And it presents a unified and self-consistent interface to all of them.
There are fantastic GUI clients for FTP on Linux, and sometimes you don't realize you're already using one on a day to day basis (assuming you're a KDE user).
Pirate Party UK
The author made some good points, but I'm confused why he didn't mention the Linux Standards Base. Aren't these issues exactly what the LSB is supposed to address?
Correct me if I'm wrong, but I don't think closed source software is really the main issue for most Linux users. New software is what we lack. Many people are using NVidia video cards with a closed source driver and playing Doom 3 which is also closed source. For example, I want Photoshop and Dreamweaver and Nero (the real one) to run natively in Linux.
-- Ghodmode
The "open" kernel API of Linux is not constant, and it's not open in the sense that you can link even non-open code to it. That's why you have those thunkings to binary "drivers", with a thin layer under a GPL license, that just communicates with the binary code.
The case with NVidia is very different. NVidia is a hardware company and their "software" is nothing more than a bridge to make their hardware work in various operating systems. Their revenue comes from their hardware, open sourcing their driver can only help them sell more hardware...
Also, it runs inside the kernel which means a bug in the software can kill the whole OS. The kernel is GPL meaning that a closed source module is illegal. They use a GPLed wrapper though, putting it in the legal grayzone instead...
Personally I love the proprietary NVidia driver, it works great for me! What annoys me is that it has bugs, limitations and unimplemented features that would had been solved a long time ago if it was Open Source. One example is that I can't configure the height+width of the TV-out signal which is possible in Windows. The Linux driver can only set a "zoom" level. I can choose between cropping the left and right sides of the screen or have black bars on the top and bottom... Also, you can't use NVidia cards on AIGLX or fully accelerated on XGL because they haven't implemented the necessary OpenGL extensions yet.. They have always been VERY slow to implement new features of X11 while the Open Source drivers get them immediatly.
User-space applications are a completly different thing.
BTW, most people with a clue aren't bitching to make NVidia OSS their code, only to document the specs of their cards so the OSS community can write their own drivers.
My other account has a 3-digit UID.
I agree with most of your argument but I also can't help feeling that the lack of closed source development for Linux is hurting the community as a whole. Perhaps companies developing closed source software for Linux won't advance the Linux code base much but having, potentially, tens of thousands of software developers using the libraries and reporting bugs should help improve the to the point where they are far better than any closed source set of libraries.
I think part of the problem companies see with developing for Linux is that it feels like a constantly moving target. Software compiled for Win 95 will probably run on WinXP would software compiled for Linux in 1995 run on a modern Linux box? I doubt it. Most software houses just don't have the resources to constantly patch and recompile their code and like it or not there is a lot of 10 year old code still being run.
I don't know, perhaps the APIs are more stable that I give them credit for - I'm a Java developer so insulated from all that. My one experience of trying to get an old piece of closed source code running on a modern Linux machine was a total failure due to the fact I was running a newer version of the C libraries - that didn't exactly fill me with confidence that Linux would attract closed source development any time soon.
I used to have a better sig but it broke.
Actually - Konq and ioslaves is one of the several reasons I've gone all-Linux at work. It's a nifty feature. And not only do ioslaves work within Konq, they also work for many KDE applications from the file open dialog.
Regarding photo editing I recently found the program F-Spot for Linux. It was the reason I (once again) switched to Linux to play some with it. It's not so much editing as photo management. But in that aspect it does a better job than many Windows/OSX programs. Or perhaps more accurately, it has "versions" so you can have different edits of the same photo.
Why no other programs have this is beyond me. It seems like an obvious feature.
Frankly, ZoneAlarm is goofy.
.0001% of us, we write our own GUIs, hunt out little known programs, or use the commandline. But the vast majority of computer users out there shouldn't need to be familiar with a tool like ZoneAlarm, and shouldn't have to worry about all those bloody popups. For the m
AppArmor is vastly superior, in that it also can be used to regulate resource privelidges on a per-application basis, but instead of only controlling network access, AppArmor works on a system-wide basis. Furthermore, AppArmor can isolate applications from one another. The GUI isn't so bad.
Oddly enough, we have "Ask Slashdot:" articles discussing the very technology that underlies AppArmor, LSM, and how one might be able to find a similar thing on Windows.
Furthermore, the types of issues that cause you to use ZoneAlarm aren't nearly as prevalent on Linux. You don't get malware, and OpenSource and/or high-end pro software tend not to phone home randomly.
If you're really, really, really determined to have lots of really, really annoying popsups (remember that things like keyloggers are resolved by AppArmor), you can use either Program Guard or SysTrace for Linux. Program Guard annoys you about TCP/IP access on a per-application basis, while SysTrace annoys you about everything.
TuxGuardian is apparently another app like this
NetLimiter: I do not understand the point of this application. Why would you ever want to do per-application bandwidth shaping when you can do global L7 QoS? Furthermore, it seems to me that you can use a combination trickle for hard "per-application" limits (which, IMHO, don't _ever_ make sense_, and global QoS to acheive any combination of features you could potentially acheive with NetLimiter.
This is a list of GUI iproute2 QoS configurators, but I think you're pretty much fine running Wondershaper, and perhaps watching pretty graphics go by with MasterShaper.
As it is, I run 6 desktops, 3 vonage lines, and 3 laptops over a Comcast 8Mbps/768kbps connection. I use one firewall on the router, running linux, with QoS enabled and global L7 traffic shaping. We have no problems when simultaneously running Limewire, Bittorrent, Vonage, and generalized web access (everything remains responsive).
The real problem with pointing at these sorts of applications is that this kind of functionality is just not needed on Linux. Proper application isolation, lack of malware, high quality global QoS, and decent packet filtering means that these kinds of annoying GUIs that are really nothing other than system maintenace and mundane micromanaging are not needed. I don't need to rate limit my downloads or uploads in order to preserve network responsiveness; I don't need to watch my applications to see if they are phoning home or not. I don't need to worry about whether or not my financial data is being read by malware; I don't need to worry about whether compromised user-apps on my system are affecting admin-level system services.
If you really, really, really, really want, the tools are out there, in proper Java, QT, and/or GTK form. But the reason they aren't widely deployed is because you really shouldn't be using them; a computer is a tool for work or entertainment, not an adventure game on its own. We don't live in the Tron world; and much like you don't need to have pressure gauges and per-pump control over your automobiles fluidic systems, you don't need to have direct control over this stuff on Unixy systems. It just works, and that's good enough for 99.9999% of non-super-geeks out there. For the remaining
WhiteWolf666 an exBush supporter. All you new-school,compassionate,save the children Republicans can rot in hell
You know that you can run Azureus on Linux, right? So if KTorrent doesn't meet your "Azureus"-standards, use Azureus..