What Needs Fixing In Linux
An anonymous reader writes "Infoweek's Fixing Linux: What's Broken And What To Do About It argues that the 17-year-old open-source operating system still has problems. Leading the list is author Serdar Yegulap's complaint that the kernel application binary interfaces are a moving target. He writes: 'The sheer breadth of kernel interfaces means it's entirely possible for something to break in a way that might not even show up in a fairly rigorous code review.' Also on his list of needed fixes are: a consistent configuration system, to enable distribution; native file versioning; audio APIs; and the integration of X11 with apps. Finally, he argues that Linux needs a committee to insure that all GUIs work consistently and integrate better on the back-end with the kernel."
I'm tired of that penguin
I am sure that only sane, rational, and courteous debate will follow. Finally an argument-free thread!
I disagree you insensitive clod!!!
I am so happy that he has volunteered to do this. I was afraid that the article might be about wanting someone ELSE to do the work.
Is more vendor support. Every supposed real problem with Linux is based on or related to a problem with a driver; nine times out of ten this problem is caused by the manufacturer being unwilling or unable to release specifications. The various vendors out there need to realize that Linux may not be the future, but it's a more likely future than Windows, and they need to put some effort into support. Of course, some of them have, and if you reward them by purchasing their hardware, they may do more of it. Regardless, having multiple GUIs isn't actually a real problem - it's an opportunity, not a setback, and meanwhile you can trivially use libqt to draw GTK+ apps or use GTK+ to draw widgets for libqt programs (Sorry I haven't updated in a while, my last build FAILED on the build servers but worked at home, and it was a compiler error, NOT a library I forgot to specify. Nice work, Ubuntu!)
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
It's a cultural thing. There's a difference between designing a distro for a need (I.E., embedded, desktop, server, special applications) and going gun-ho into creating a new distro organization for nearly every new feature.
That's the problem that I see with all of these niche distros. Many rarely see a user, simply because they're either indistinguishable from their dozen other competing niche variants or their features are already blanket covered by another distro.
while(1) attack(People.Sandy);
We have the LSB, and distributions which make some effort to ship binary 'compat' packages, so that third parties can distribute their software in RPMv3 format (n.b. not the same format as currently used by RPM-based distros, which are on RPMv4) and it will just install and work on any i386 or x86_64 Linux system. But I wonder if that is slightly the wrong model. At the moment if you want some particular library you have the choice of statically linking it into your executable, or just relying on it being there in the target system; neither is very appealing.
For example, suppose you want GTK version 2.16 or later but LSB specifies an older GTK (actually, it specifies a set of interfaces, but that corresponds to a particular GTK version). You could statically link your app with gtk-2.16, or you could include your own private copy of the library to be stuck in /opt/myapp/libs, but then what about Fedora 10 which does include a new enough GTK?
Instead of providing a single RPM (or worse, lots of different binary RPMs for different distros), we should encourage vendors to set up a yum repository. Then to install their software you could add the third-party's repository to your software sources list and use the normal GUI tools to update and install packages. If they want to use some newer library which is not included in Ye Olde Enterprise Linux 1.1, then they can just add a package for that library to the repository, and it will be installed only on systems that need it. This also takes care of automatic updates, which are not provided if you just give people an RPM file to install manually.
Of course, we don't live in a world where you can just 'encourage' third-party software vendors to do things and they'll jump to it; otherwise Nvidia would long ago have released free drivers. So you need to make it as easy as possible to set up a repository for yum or apt-get or smart or whatever packaging tool distros are using. It needs to be trivially easy. So I would suggest enhancing yum and the other tools to work from a plain directory of rpm files served over http. Just dump the files on a webserver, let Apache serve the directory listing and let yum point to that and Just Work. Or, if that's too dirty for you, use a directory on an ftp site (which at least has a defined protocol for listing the files available).
I think a repository for package management programs like yum satisfies what the author is talking about when he asks for a 'meta-package'.
-- Ed Avis ed@membled.com
USB barely works. It's OK for mass-storage devices, but sucks hugely for high-bandwidth devices, or anything that's removable - and gets removed.
Video: just as bad. Put these two together and you have a mess of non-functional webcams, video applications which sometimes hold together if you're prepared to spend hours and days hunting down just the rtight combination of codecs, libraries and applications.
However, the worst part of Linux is tha parlous state of the documentation. A morass of different styles: .man .info HOWTOs, html, text-files. Almost none is available in more than one language and hardly any is kept up to date. Even less is declared obsolete, to stop people trying techniques that haven't worked in years - but is still highly-linked to on the web.
Frequently, the best documentation for an application is the string command.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
He complains:
Who else should do it?
He complains the distribution differences make life hard for people selling software. Well, tough, if they want money maybe they should work for it?
I know! Let's recreate the windows registry, but this time better!. Yawn.
Just about the shittiest article I've read for a long time.
Watch this Heartland Institute video
> 1. Filesystem metadata/permissions. An example would be that a file should be able to keep a list of all the dates it was accessed.
Makes things slow. Most distros turn off logging the 'atime' (access time) because this requires writing to the disk on every read.
> Why can a file only have one owner/group?
To keep things simple, the GUI is kept this way. You can make it as complicated as want though with Access Control Lists - just like you do in Windows.
For a GUI way to set this, see something like: http://rofi.roger-ferrer.org/eiciel/?s=5
2. Root is God. This must really be fixed. There should be a way for root to irrevocably divest its powers, and root does not need to access users file.
This is called SELinux and is installed with pretty much every distribution. But for what you want, the users should instead use encrypted home directories.
> 3. They lie about everything is a file. Why not extend this to networking resources ('cd http://www.gnu.org/ [gnu.org] would be cool ).
This is called FUSE, and is included with every distribution.
The idea that the purpose of Linux, and Open Source in general, is to beat Microsoft has done more damage to the movement than just about anything else. It forces people to think in terms of how to obtain market share rather than how to improve software and advance the cause of free software.
The biggest single advantage of the free software model is the ability to innovate quickly, because there are more people working on it, and those people have more freedom to tinker around without having to worry about being profitable this quarter. However, since the vast majority of people in the movement these days seem to be primarily concerned with copying Microsoft products in order to beat them at their own game, real innovation is being stifled.
The fact that most major Linux distributions come with a default desktop that mimics Windows in many ways is testament to this fact. It's time to face facts: For most people, it's never going to be the year of Linux on the desktop, and that shouldn't be regarded as a failure to anyone. The end goal of free software is not to defeat Microsoft. Free software is a goal in and of itself.
An example would be that a file should be able to keep a list of all the dates it was accessed.
Fixed already. Extra attributes have been available for a long time. Feel free to use them.
Root is God.
Fixed. SELinux.
Why not extend this to networking resources ('cd http://www.gnu.org/ [gnu.org] would be cool ).
Hard to do in kernel space. We're getting there in user space.
Finally! A year of moderation! Ready for 2019?
What I find in *most* of these sorts of pieces is that they are either cynically or subconsciously pushing for the winozification of Linux. He makes some good points along with the bad.
(1) Package Management
This is a good point if the debian people and redhat people could work toward a solution, it could be fixed as both systems have a great deal in common.
(2) Configuration Files /etc are, IHO, better and can be backed up and diff-ed.
Bzzzt. Wrong. The foolish part of this subject is that while the Windows registry provides a standardized access to the data store, it only defines types and not what they are supposed to be. Lunux configuration files under
(3) Kernel Application Binary Interfaces
I would like to see a stabilized and standardized device interface API for standard devices, something exposing a limited subset of the kernel that would simplify simple devices like block, serial, and network types of devices.
(4)Native File Versioning
Bzzt. Its called automatic backup people. This is a relatively new feature in Macs and barely working in Windows. Would be nice, but can't characterize it as something that's broken.
(5)Audio Application Programming Interfaces
This I 100% agree with. Choice is nice, but the geometric product of "choice" in system services means that rich multimedia applications are much harder to develop.
(6)Graphical User Interface
He sort of has a point about this and it has often been a problem.
(7)Integration Of X11 With Apps
Bzzt Wrong. X11 is a HUGELY powerful system and if you encounter a bug that crashes your session, that's a bug. Fortunately I haven't seen one of these in about 6 years.
(8)Commercially Hosted Backup And Restore
Bzzt Wrong. This is not "Linux" being broken, it is 3rd party vendors being stupid.
I wish there was a windows remote desktop equivalent. Yeah! I can forward X11 apps over SSH! Network transparency! Cool! But over the internet - usually painful...high latency? oops. Connection dropped? App exits. Hope it autosaves.
Ok, so let's use VNC. A lot better to be sure. Or NX, with its shockingly awesome speed and responsiveness.
But how do I get at the apps I already have running? Nifty, I can ssh in to my desktop machine at home. I know I'm logged in to a gnome/kde/whatever session. Screen locked. What if I have Eclipse open and want to pick up where I left off? :0, and setting environment variables appropriately)? Oh, look at that! Screen's locked. I'll just type in my password and get going. Works fine, except for the fact that my _monitor woke up_ and _everyone can see what I'm doing or hijack my session_ (keyboard and mouse working). Maybe I'll just quickly logout so I can start something in VNC...
-Start a vncserver? That's fantastic. I just bypassed the display manager, so no warning about concurrent sessions. Let's hope that _all_ of my apps are careful about this weird case and don't barf all over my data.
-Forward just eclipse? Maybe if I kill it first from my shell it won't complain.
-Use x11vnc (hoping my session is on display
It's ugly, all of it.
On the windows side, as most everyone here has seen, a) a session started locally can be connected remotely b) a session started remotely can be connected to remotely c) in either case, a "locked" screen is displayed as appropriate and nobody gets to see a haunted cursor and d) none of this breaks 3D acceleration or video overlays when switching back to local display. It's _incredibly_ useful. This is something you'd expect Linux to be _better_ at, a big selling point of desktop Linux...afraid not.
I tried to pick some brains once about even the simplest hacks - like being able to poll X for display updates when it doesn't have a VT. And from that, I don't get the impression Linux will catch up in this department anytime soon.
"Strangers have the best candy" -Me
consistent configuration system
What a dope; because we know this has worked so well for windows. The registry is a nightmare on Windows. Linux/Unix does have a consistent model and it is known as text configuration files. It's powerful and can be leveraged on even the slowest of links. One size does not fit all - although I've seen far too many applications use XML for this where it makes absolutely no sense whatsoever.
native file versioning
Seems Linux is now held to a higher standard. Again, what a dope. Outside of the VMS crowd, I've not seen a huge outpouring of demand for this feature. Having said that, I do believe a versioning FS is in the works and for all I know, some may already be available. Realistically, few people want this and most have no clue what it even means. For the general use case, RC-software already exists to fill this niche. His complaint is empty.
audio APIs
As far as I'm concerned, it's done. Pulseaudio and ALSA are all that you need. If you have more specialized needs, then JACK Audio takes care of you. For the majority of people, Pulseaudio has what you need and is also portable to Windows. Many (most?) distros are already moving or have completed their move to Pulseaudio. As far as I'm concerned, this issue is addressed, save only for migration time for slow adopters.
integration of X11 with apps
This means nothing. What a dope. All GUI applications which communicate with X are integrated.
and integrate better on the back-end with the kernel
Again, what a dope. This means nothing.
In a nutshell, his complaints are silly, meaningless, or have been addressed. As far as I can tell, his only complaint which has any merit is audio API standardization and that has been achieved.
Car anologies are of course famous on slashdot, but I won't do that. I will do instead something radically new. A MOTORcycle anology. Yes, you saw it here first!
What is wrong with motor-cycles.
The list goes on. Any of them can be fixed BUT the moment you do that, you no longer have a motorcycle. You got something else.
Back to linux. The NATURE of linux is that it is free. Not just free as in beer or whatever but free as to what anyone does to it. Anyone can create a distro or a new UI or whatever because that is what it is all about.
Change that and you change the nature of linux and you get... well depending on who does it. A Red Hat or a Windows or an OSX. It might be BASED on linux, but it ain't Linux. Same as OSX ain't BSD. It uses it at its core but it ain't BSD. Similar to how Mandriva ain't Suse.
The suggestions made CAN apply to a distro, even perhaps a collection of distro's but NEVER to Linux.
It ain't just about the name, the author talks about kernel interfaces and X11 as if they are the same thing or indeed got anything to do with each other. They don't.
There are already efforts to standarize Linux distro's making them use the same directory layout.
But to make any such effort to official, that is the way into development hell that Windows and for that matter all gigantic software has become.
Notice that Linux constantly improves, constantly changes. Well those two things go together. Either you get Linux that is a constant moving target or you get MS Windows that doesn't change in years and then breaks everything at once. Oh yeah, remember how Vista was such a dud because all its interfaces changed and none of the drivers work? Well guess what, to fix that, the next windows won't change... so you get a NEW OS in the a couple of years that hasn't improved at all, just a few bug fixes, if you are lucky.
Apple knows this and just threw everything overboard two times already, last time with OSX because sometimes if you want to move on, you just got to break things.
GNU/Linux is what it is because of what it is. Change that and you get something different and that might be to big a price to pay to end up with yet another commitee developed OS. We had those. You can get PLENTY of unixes developed by a single entity. Not a single one of them is a popular as linux. (Oh alright OSX might be more popular but that ruins my argument so I am ignoring it)
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Why the hell should we have to? I prefer having a choice. Windows users have plenty of choices when it comes to desktops -- Litestep, emerge, talisman, Aston and many more -- so why shouldn't Linux users? Simple answer: NO.
Clearly what you want is Mac OS X, not Linux. So use it instead of bitching that Linux isn't what you want.
I dream of a better world... one in which chickens can cross roads without their motives being questioned.
Free software is not monolithic entity with a single purpose in mind, and never will be. That is why there are so many licenses. Who are you to decide what free software's goal is? Seriously, what makes you think you can tell other people what their motivation for developing software is? If people want to write software to compete with Microsoft, that is their right. Every person involved has a different motivation from the next.
Laying this kind of idealistic thought process on people stresses them out.
LS
There is a fine line between being a cultivated citizen and being someone else's crop. - A. J. Patrick Liszkie
Do nothing at all! This isn't a problem, it's a symptom of a healthy open source movement. If anything, be happy that there's so much interest in Linux and open source.
The kernel and tools that constitute a Linux distribution are open and free, and there is nothing you can do, legally or otherwise, to prevent someone from creating another distribution. This is the very essence of open source and the GPL, the thing that gives it (and you) so much power.
And it's not like a lot of these smaller distributions are expecting a huge following. Often they fill needs or particular niches and are usually happy remaining small and focused upon a certain thing. This isn't a competition by any means. You don't win any prize for having the most users of any distribution (RedHat notwithstanding). To think this way is treating Linux as a vehicle to stroke your own ego and is an incorrect attitude.
checking for libvirus... no
ERROR, libvirus.so not found, terminating
Comment removed based on user account deletion