Why Aren't More Distros Becoming LSB Certified?
mydoghasworms asks: "I have done much thinking lately about Linux Standards Base. The idea makes lots of sense: Adopt a standard which will ensure that if some piece of software is compiled on one LSB-compliant system, it will run on any other LSB-compliant system.
This would be great for members of the general public who are looking for an alternative to Windows, don't want to pay for Mac, but are looking for a platform where installing and running software is as easy as on the platform they are used to. Seen in that light, if LSB lives up to its promise, it could be the step in Linux's evolution that could see it adopted by the general public. That leaves the question: Why is LSB not seeing greater adoption?"
"Is it because it is not marketed well enough? Is the certification process too difficult? Are there perhaps technical challenges to LSB certification not often discussed? If people agree that LSB is in fact what Linux needs right now to ensure widespread adoption, what should be done to create awareness of LSB? Should communities developing Open Source/Free Software projects be encouraged to provide LSB binaries? Your input would be most welcome here."
Why is Linux not gaining on the desktop? Because there is no "perfect Linux desktop container". The properties of such a container is that it should be standardized, easy to accept new client programs from a wide variety of sources, have easy to use services and a well known API that is well documented and defined so that programmers can easily write to it.
Instead we have a bunch of fragmented containers (KDE, Gnome, lots of lesser known desktop environments) that are incomplete and immature. Heck, its a pain in the ass sometimes to get simple brain-dead stuff such as printing and mounting a drive working. So you have projects like OpenOffice having to write their own container!!! And Miguel (bless his heart) making a version of Microsoft's .NET container (Mono) for Linux that is still incomplete and sits with an incomplete container -- Gnome, which is sitting on top of an incomplete desktop container -- Linux.
I know this is a rant, but my shop recently switched back to Windows from Linux desktops (about 40 people), why? Because the new CEO (and me too), were sick and tired of people trying to get things to work together properly. We were sick of not having an Exchange replacement (don't get me started on the open source ones now "available"). And new hires and our clients were just plain used to using the dominant containers out there (windows/mac).
At least Linux as a server container works, because it has the same API as standard UNIX.
Newsfollow.com
Yes Linux is better in how it handles hardware(ONE reboot AFTER install is complete is all I ever seem to have to do with a linux install, windows has at least 2 for JUST the os, leet alone dirvers, updates, etc.). But it's lacking in several other areas that would scare developers away.
What exactly is the purpose of the LSB spec these days? When I last worried about it, I was under the impression it was so that ISV's could distribute software packages in such a way that they would work and integrate well on a variety of distributions, and nothing more. That is, it wasn't about providing consistent functionality across distributions in general, or about standardising things for standardisation's sake. The "Purpose" section in the LSB spec doesn't seem to clarify this for me, but rather describes what the LSB is composed of, rather than why it's composed that way.
The big one is will it run out of the box, right now the way compatability between distros and even versions of the same distro work the odds are against it. The would probably have to ship a game with a spare cd containing all the variations on the binaries needed just to work on most of the mainstream distros.
And as much as I laud and love the way Linux distros install in one go without reboot hell, and deal well with hardware changes, Games need good vidcard drivers and that requires getting ati and nvidia on board with optimized linux drivers Though this last point is somthing of a chicken/egg problem as is the next point.
Linus still does not have installed user base to make porting a worthwile effort for many game/app developers.
The concept behind the LSB was a good one and a step in the right direction even if the implementation had its detractors.
They tried this before, more than 10 years ago with other UNIX systems.... Didn't end up working then, and it won't end up working now.
People will always want to change things, and make their products "different" or "better". Whether or not they really do it or not... well, that's up to the people that end up buying and using what they come with.
You'll note that LSB presumes a 2.4 series kernel. Most distributions are based on 2.6 kernels. You'll note that if you install Mandrake 10.1 and select installation of the LSB package, it will warn you that it will install a 2.4 kernel in place of the 2.6 kernel (with a decent explanation as to why).
A newer LSB should be along any day now, and non-compliant distributions will likely release an LSB2 compliance package.
As far as becoming "certified"... There are about 350 Linux distributions. Many of them published by very small groups. If they have to pay or do anything too ornerous to get certified, they won't. If it's a matter of running a test-suite and sending the results to an authority for verification, then they will likely do that...
If you're the producer of a Linux distro, do you want to have to recompile and patch EVERY SINGLE PACKAGE you put in your distro, EVERY TIME you update it? Or else require all the users to do the same if they want to run apps you didn't include, or update them when you haven't?
Admittedly, this is a worst-case scenario; no distro will be incompatible with ALL apps. Nonetheless, this is the situation that prevails when you don't have a standard base to use. Having a standard reduces the effort for everyone involved. Things will "just run".
I've just spent 3 days installing some esoteric science packages on a Linux distro they weren't certified for, and I could never have succeeded if I weren't an uber-geek. This is not the experience we want Linux users to have, regardless of whether we are commercially oriented or just wanna rock Open Source.
I hope this sheds some light on why a standard is needed...
"My strength is as the strength of ten men, for I am wired to the eyeballs on espresso."
Because we're talking about the average Joe getting away from Redmond. Some of them are looking for a solution where they can use their current machines and rid themsleves of the Windows fueled joys called Spyware.
/usr/bin/ and others in /etc/program/ while the more restricted programs reside in /home/usr/bin/, how is a person new to the world of Linux supposed to know what goes where!?
If you are a producer of a linux distro and you do things your own way, that's fine; but don't look for many people merging to your own specific way of 'doing things'. People like things that they're at least semi-familiar with. If developers of linux distro's keep changing 'standards', nobody will want to switch to linux, because as far as they can tell, SuSE is as far different from Fedora as Windows is to FreeBSD.
Microsoft has kept a tradition of 'C:/Program Files/' for installed applications which makes it easy for any windows user to jump from one MS platform to another. These relatively simple standards are just another security blanket that people refuse to let go of when they're tempted to switch operating systems.
Forgive my lack of knowledge in the numerous GNU/Linux organization structures, but if one has to install some applications in
I believe the entire movement of a standardization process creates this much needed security blanket that so many desktop users have been reluctant to let go of.
Once again, if you're a producer of a linux distro, you're not the average desktop user, you are not a majority. There is no need to put down a solution that you may never use, which has great potential to the masses.
-Xtrvd
Not all of them, obviously. But there are some horrible things in the LSB standards. IIRC it mandates FHS compliance, which requires the utterly horrible /media. Also, on the apps front, LSB apps have to be mostly static, where good dynamic binaries and libraries is linux's greatest strength, and necessary since every app including qt or gtk would be nightmarish - your ram goes poof. And yet you can't make these part of the LSB standard, because important distributions don't have them installed, and don't want to. LSB needs a way to have apps depend on libraries, and it needs to take a serious look at where distributions aren't meeting it and why, because often it's because the standard is wrong and should be changed. The suggestion of multiple levels of LSB compliance could improve things a bit, if they can specify dynamic qt and gtk in one for a start.
I am trolling
Why would linux aim to have just that ?
A number of things that make up the LSB have been in dispute as to whether they're the best way to do something or not. The one that comes immediately to mind is RPM-based package management. -I- prefer APT or compiling directly from source, but there are a dozen different ways to do it and they've all got their merits and pitfalls.
These are Holy Wars, they'll never be solved, and they'll keep certain people from using an LSB system alone. (here it comes:)
"Oh, but then you just install XYZ and you can do it your way."
So you start with an LSB system, then install all these other apps and utils to bend it to your will. Now, ask yourself how different that is from what we've got now with all the 750 fragmented Linux distros?
There are other things that are harder to change, i.e. filesystem layout. Once again, it's a holy war. The community will *never* come to an agreement.
There is no "one size fits all" linux, and there never will be. Different people have different needs, and most linux users (well, or at least this used to be the case) have some extraordinary needs. That's why they use linux.
Most of the people who would want a standardized base like that probably use a BSD. This is not a criticism of anyone or any system, it's just an observation.
do() || do_not();
"Example of what is wrong with F/OSS: 2005"
DAMN YOU OCTODOG! DAMN YOU TO HELL!
And don't think that these nice universal GUI software installers won't go away if Linux ever catches on for the desktop. At some point the quantity of software available will make it unfeasable to continue this kind of software delivery system except for the most basic OS components. Much like Windows already has under "Add/Remove Windows Components".
Windows lacks this type of thing because its popular, not because it is flawed.
The LSB is RPM-centric. It also has other flaws (in filesystem organization, to name one, although that is improving).
.debs, Source Mages uses tarballs+spells, Gentoo uses portage, etc.
... welcome to hell. If you think a little integration work in a heterogenous environment is hard, just wait for what Redmond's incompetence has in store for you. Your CEO won't be the one suffering, you (or the poor schmuck who replaces you after the next round of worms/trojans/viruses and other Microsoft goodies goes around) will be. *BSD and Linux aren't perfect, but their a damn sight better and easier to administer than Windows, and have the added benefit of working as well. Frankly, if you and your CEO were so hell bent on having something easy to integrate and use, and are obviously so willing to exchange flexibility to get it, you should have chosen to go with Apple for both your clients and servers. You would have traded less of your flexibility away, ended up with something much more solid and reliable than windows, and much easier to administer, and prevented a whole lot of heartache down the road. But then, I suspect your post is more of a dig at Linux and promotion of Windoze than it is a true history of some company actually being stupid enough to dump Linux for Windows.
Different distributions use different package schemes. Debian uses
The "perfect container" is a tarball. Anything else you want to do (install wizard, compile script, install script, what have you) belongs outside of the package container. Need a one-click installation procedure? Include the script in the tarball, and provide a GUI that reads the contents of the tarball and lets you run a program from within the tarball (KDE has apps that can do this, for example).
RPMs are flawed in various ways, and centric to particular distributions who happened to have representation early enough in the LSB process to push through a standard favoring their way of doing things over the broader, more portable standars (tar.gz).
Until the LSB becomes a standard that is no longer Red Hat/Suse centric, its adoption by other distros will be lackluster at bets, and rightly so.
As to your 40+ workstations that have been switched to Windows
The Future of Human Evolution: Autonomy
Because of the complexity and differentiation of linux platforms and whatnot, LSB will likely never be fully adhered to in a consistent manner by all vendors/distros.
What I'd really like to see is a much simpler subset of really basic standards, with a different name, that would be relatively easy for all the vendors and distros to be compliant with. For example, I would expect this to be the nature of things it enforces:
* Documentation other than man pages is always in
* Man pages are always in
* Init scripts should always exist in the location
* The following environment variables are always set to some correct-ish value in the default environment based on user configuration of the OS: TZ, HOSTNAME, PATH, USER, etc
* The following basic *nix commands are available in
* The following list of common shells and language interpreters will always be installed in these pathnames: [bash, pdksh, perl, python, etc] (There might be an alternative "lite" version of the standard which excludes a requirement like perl or pythong or specific shells, for minimal/embedded environments).
You get the idea - these are things that *most* distributions already do *mostly* the same anyways. After a few quick tweaks any distro should be able to re-release themselves as compliant with this standard. And once it's popular, vendors have a document to look at that tells them certain things they can rely on when writing linux-specific applications at the operating system level (aside from the stuff at other levels, like the linux and glibc and whatever else API/ABI stuff).
11*43+456^2
I would build a Linux box for any noob (read person who really doesn't do anything on their machine but email, surf the web, type the occasional letter, and print photos) computer user. I can build a machine and throw Linux on it, save hundreds on the OS and productivity software, and it will be the perfect machine for grandma or other non-techie person. For example, Fedora 3 comes with Firefox, an email client, a good messenging client, a media player, and a good word processor. That is pretty much all you want for a person with the needs stated earlier.
People always say "Oh, but installing is oh so hard!!!" But how often does your every day user install anything? THe last time my mother-in-law installed anything on her ancient P2 system was to put Norton AV on there. Which you don't even need under Linux.
Standardizations aren't what Linux needs (though it is wouldn't hurt) to get average user marketshare. What it needs is marketing. I want to walk into a software store, see a box for Fedora (or whatever the most user friendly version is) for $20 bucks. The box needs to say that it will replace Windows, work faster, more secure, and so on. It needs to be a box that if I'm a noob, I'd buy it. It needs to be something that average Joe will recognize as legit and good.
Don't take life so seriously. No one makes it out alive.
Why do you have such a big problem with commercial software? Why do you have a problem with "open standards"? Open Source software without open standards offers little utility for the average end user.
You either work for MSFT and want linux to fail or you are an elitist geeky snob who wants to keep linux usage to the elite. Perhaps you are afraid that if it goes mainstream, you will not be seen as "cool" by the linux community.
Jesus was a compassionate social conservative who called individuals to sin no more.
They're not expensive, just overpriced.
sup
Wait: we *don't* live in such a world? Oh.
There has been 30 years of UNIX. In that 30 years, the closest we ever came to that kind of cross-platform standardization is CDE. Do *you* want to use CDE? Me neither.
While the advantage to the *user* might be great in the long run if everyone followed LSB, there is a great deal of disadvantage in the *short run* for companies. And that's why we see little success with LSB.
Linux IT Consulting and Domino Development in Michigan
The main problem is that LSB specifies some stuff that people think are broken. (In particular, RPM and a C++ ABI that is both obsolete and newer than what people actually use). To the extent that the things LSB specifies are not broken, all the distros do things that way, and you don't need any certification to know you can use them. For applications, they only care about standardization if they need something that can't just be assumed, and these things aren't covered by LSB.
It is, however, useful, but only really as documentation of common practice. You don't have to wonder whether you're ahead of the curve on adopting a version of zlib, because the LSB says what version you can expect.
I've always thought of LSB as more or less a joke. It provides people with a roadmap of where to expect most of the usual commands. The vast majority of Linux distros are based on GNU tools (i.e. the whole GNU-Linux debate). GNU tools are generally built into the same directories. Almost all Linux distros can rely on a good basic /usr /usr/bin /bin /sbin /usr/sbin /etc structure. They almost all share the same tools that are spelled out by LSB, and considering they almost all use the same libraries (glibc, etc) they pretty much share the same library interfaces and so on.
There's nothing LSB offers that isn't already there by nature of the tools that most linux distros use. Linux distros pretty much migrate toward a standard just due to the very nature of it's Unix/GNU inheritance. Why spend the money to certify?
Now, especially add to the fact that the majority of software vendors don't sell you products for LSB-certified Linux distributions. Instead, they certify specific versions of RedHat or Suse or whatever, and in some very annoying cases, they spell out specific glibc and kernel versions. I.e. go beyond those, and their technical support will tell you to go away.
Software vendors don't care about "standards compliance" in the sense that they want their product to work. They don't want to deal with any unknowns. Any unknowns puts their QA reputation at risk. Just because someone is compliant to a standard doesn't mean it works the exact same way. If Vendor A were to create Product X, and wanted to support Linux Distro Y and Linux Distro Z and both distros happen to be LSB complaint, they aren't going to gain anything from it, since they're still going to have to test against both platforms to ensure that they work. If they don't, and for some reason something not specified in the LSB standard (or hell, even an implementation of something specified) causes a compatibility problem, and customer C happens to be a multi-billion dollar company with lawyer-happy executives buys the product and finds the problem, the shit can really hit the fan.
I work for a relatively large software company, and I've seen lesser things trigger lawsuit threats.
This is why the LSB is useless. You have to pay to get it. For you to justify paying, there has to be a financial interest. Financial interest generally means, they want to run some vendor's commercial app. That vendor is going to re-certify the platform no matter if it's LSB certified or not. And unfortunately, vendor's are going to look for the biggest bang for their buck (i.e. redhat or suse), so if Joe Blow Linux distribution goes LSB, the vendor still isn't going to support that platform.
People like the grandparent poster and RMS chase people away from linux. They are not interested in the success of the platform. Their only concern seems to be maintaining the status quo and their status within the movement.
It's funny how linux advocates so often accuse mac users of be elitist snobs.
Jesus was a compassionate social conservative who called individuals to sin no more.
The LSB people would write the standard...
The various distributions would adopt that standard...
The various ISV's would develop to that standard.
I'm sure everyone can see the problems, right?
#1. The LSB people couldn't get a complete standard written and published. Their current "standard" still doesn't include GNOME or KDE so it isn't going anywhere on the desktop.
#2. The various distributions are different because the people running them have different approaches to solving the same problem. What incentive IS THERE RIGHT NOW for them to wait and adopt the LSB? That's right, they need an incentive.
#3. The ISV's, seeing the delays, skipped the LSB and formed partnerships directly with the distributions (like Oracle did with Red Hat).
So, what we have right now is a bunch of ISV's who are not writing LSB apps forming partnerships with distributions who are not abandoning their old ways to support the LSB which has not released a workable standard for either the ISV's or the distributions.
The LSB, as it is currently focused, will always be a failure. Even if they managed to release a standard, it would only hold back the current speed of development.
What the LSB really needs to do is focus on the things that would make a huge difference right now.
#1. Fix the FSB. Right now, the location of a file depends upon how I install it. If I compile it myself, it goes in one directory. If I apt-get install it, it goes in a different one.
#2. Expand the FSB (part 1). Standardize the naming of each file, right down to the version number. If some app depends upon libfoo-1.0.0.3 then that should be the same file, with the same name on each distribution.
#3. Expand the FSB (part 2). Standardize the packages that contain the files that were standardized in #2. Package foo-1.0.0.3 would be named the same for each distribution and contain the exact same files of the exact same versions.
#4. Get rid of the RPM requirement. Instead, specify the BASIC functionality that the package management system will have and the basic information contained within a package and the format. That way, the various systems can ADD that functionality to their existing systems.
And the best thing is that those can be implemented over time. No more waiting for the LSB standard to be published BEFORE the distributions can become compliant BEFORE the ISV's can write and TEST their apps on those LSB compliant distributions.
In the end, the apps can have stated dependencies that should be easily verified because of the file and package standardization.
The status quo is a sign of success of the platform.
It is an opinion that will always have different views. Some will think that once you ad propriatary stuff to the distro it no longer is free and you alienate them. Others will whine that it is too hard and thier brain hurts and won't use it either. Still others will view comments like ours and say why should i even try it.
What the real problem seems to be is user X is complaining that he isn't using windows when using linux. Companies are complaining that they don't want to test thier product on linux but rather on redhat and it is too hard to make somethign on redhat work on something else almost identicle in the working sence. Your complaining that people are complaining and i'm complaingin because you don't se the same way i do.
When we get down to the root of it, we are expressing opinions of ours and others opinions and have the freedoms to be different enough to compare opinions. Microsoft and Apple don't give you this choice. Thats why we have what we have now. You see it as a draw back and i see it as a plus. I'm not concerned with everyone using linux on the desktop. I don't see that as a sign of success. How i measure success is that i can do anythign i would do with a windows box and hope those tasks aren't more difficult then working on a windows box. If other users find simular results and want to use it, more power to them. Replacing microsoft as a desktop isn't exactly what linux is about. If it happens then so be it but i don't think it is or should be a primary goal.
the average businessman doens't know what GNU is or stands for, but most have heard of linux. Kleenex doesn't mean tissue under the Kleenex brand anymore, it's any tissue you use for the sniffles these days. Words have meanings, and they change. Linux is now an OS as far as most people are concerned and the linux kernel is just a part of the linux OS. Suse, Red Hat, Mandrake, Yellowdog, Debian... they're all linux flavors or distributions. You can call Linux whatever you want, but people will just look at you funny like they did the speaker at a state college near here when he referred to Microsoft's new C# language as "See Pound". When meanings of words change, they usually get another entry in the dictionary. I wouldn't be surprised to see Linux defined as a Unix-like operating system in your average dictionary soon. Oh, no wait... American Heritage already has one... I'd expect more soon Linux -- A trademark for an open-source version of the UNIX operating system.
No. Windows lacks this type of thing because it operates in a completely different culture. The Windows world is dominated by a culture of control and marketing.
First off there is the issue of proprietary software. Even when things are "free" as in "no fee", there is often some degree of control reserved for the distribution and even use of said software. That alone puts a damper on the "hundred thousand entries" you're expecting. But it goes further than that.
While something may be available because of the functionality - it is also likely to be there because of marketing or sales strategies. That covers your dig at Microsoft's recent trouble over multimedia. But also includes finding Yahoo Search installed with Adobe's Acrobat reader.
That's not to say that all of the above is "bad". It's simply a different environment. And it runs by a different common culture.
And that's not to say that Linux is imune to this culture either. You're not likely to find UT2004 available after your next "apt-get update". And if you do install Adobe Acrobat Reader 7 for Linux, you're going to find it comes with Yahoo. But then, I can "apt-get install evince" and have a nice PDF reader for a ~1.7M download vs. the ~98M that I need to pull for Adobe's version.
I'm not saying good installers don't exist in linux, it just drives me nuts when people say, "Linux is better because all I have to do is type emerge -xyz blahblah.blah.blah instead of all the crap I have to do in Windows." I think portage absolutely rocks, but not for most people.
But even with good installers there's a problem. As you say, one could use Mandrake Control Centor or Yast or Whatever. But that's different for every distribution. Someone can learn one way easily enough, but then they have to switch for some reason and suddenly it's just different enough to be frustrating.
I realize that the heart and soul of linux is and has been the ability to get exactly what you want, but in order to make linux "ready for the desktop" some things need to be standardized. And a standard way of distributing software, whatever distribution you choose, would go a long way towards making linux everybody friendly. Naturally, experts will continue to buck the trend by using whatever tool they deem most useful or powerful, but Average User just wants to point and click, the same way, every time.
I'm not really sure where you're going with this. In the windows world, you have to know where the executable is to run it. In linux, you just open up a console or "run" dialog and type the name of the program. And any good package manager is going to take care of this for you. Who cares where the executable resides if the package manager is taking care of it? And a good package manager should also put the icon in the menu for you. Basically, this doesn't have much to do with GNU/Linux, but how your distro and the package manager deal with things.
Alright, I've said package manager enough.
We as the Linux comunity should care....the more users an OS has, the more potential for development...thus the more job for developers, the more possiblity for for competition thus leading to innovation.... if a set of standards are adopted, what distros do you think compinies will write software for, the ones where they have a map to making it work on as many deaktops as possible. now you may argue that this could also be the end of OSS development, but think of a linux halo effect, similar to that of the ipod halo. start small, work your way in and around.