Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

[ Create a new account ]

What Needs Fixing In Linux

Posted by CmdrTaco on Monday December 01, @09:35AM
from the or-what-needs-breaking-in-windows dept.
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."
linux os worksforme whatdoesnt wireless
linux os
story

Related Stories

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • new mascot (Score:5, Funny)

    by Anonymous Coward on Monday December 01, @09:37AM (#25943709)
    I'm tired of that penguin
  • by MaxwellEdison (1368785) on Monday December 01, @09:38AM (#25943715)
    I am sure that only sane, rational, and courteous debate will follow. Finally an argument-free thread!
  • by ishmalius (153450) on Monday December 01, @09:41AM (#25943775)

    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.

    • by sukotto (122876) on Monday December 01, @10:19AM (#25944477)

      So many people tut and say "Someone should do something", but so few step forward and say "...and that someone is me"
      -- Terry Prattchet

      • by rgviza (1303161) on Monday December 01, @10:33AM (#25944745)

        Actually the author is the problem. The title should be "The problems with packaging my proprietary software for Linux Distros and keeping the packages up to date".

        The kernel has little or no bearing on the problem. The way he worded the title, he implies that "Linux" (the kernel) is the problem, when in reality the problem is he (and other proprietary software developers) don't have the time to make a package for each distro and keep up with them all.

        The reason "open source" sucks for Joe User is that Joe User often wants functionality that is sometimes only available in proprietary software which the distro maintainers are not allowed to distribute and package.

        Therefore he has to go out and find the software and figure out how to install it.

        It has nothing to do with linux or open source, rather it has everything to do with proprietary licenses and their restrictions on re-distributing the binaries.

        If Joe User wants to avoid these issues, he just needs to pay for all of his software and run Windows. If he wants to run free software, along side this proprietary stuff, it's gonna take a little elbow grease. The people with the technical know how to make Joe's life easier, are _not allowed_ to help beyond documenting what needs to be done to make stuff work.

        This means poor Joe has to use google and find the info and do it himself, or do without whatever software it is he needs.

        FOSS doesn't suck for Joe, the proprietary licensing and distribution restrictions do ;-) The only thing that will fix it is if these people release source for their binaries and/or license the binaries in such a way that the distro maintainers are allowed to build packages that work and distribute them with their distro.

        Open source developers and distro maintainers are powerless to fix the situation without more flexible licenses.

        -Viz

  • 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 [ubuntu.com] or use GTK+ to draw widgets for libqt programs [launchpad.net] (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!)

  • by suso (153703) * on Monday December 01, @09:49AM (#25943891) Homepage Journal

    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.

    Call me old fashioned or whatever the cute term is now. But fuck that! If I ever see programs like cp become bloated with X library calls because some news reporter needs to see a GUI progress bar, I'm going to be very angry.

  • NetworkManager (Score:5, Insightful)

    by Xabraxas (654195) on Monday December 01, @09:49AM (#25943893)
    My biggest issue lately has been NetworkManager. It isn't absolutely necessary but wireless connections are quite annoying without it and more and more applications are becoming NetworkManager aware which means it is increasingly important to have it. It hasn't progressed that much since its inception and it's still not possible to configure most networking options to work with it. The NetworkManager homepage makes it clear that they are not interested in profiles, and their application makes it clear they are not interested in bridge interfaces or any other kind of advanced networking. So your options are to disable it and configure networking through your init scripts or deal with the extremely limited options of NetworkManager. My biggest complainst are that I cannot get a static IP on my home wireless while getting DHCP everywhere else and it's a real pain in the ass to set up bridged networking for use with a VM.
  • I'll leave others to comment on the rest of the article but I liked this one nugget:

    One thing that might help is a kind of meta-package format: a file which, when downloaded, is run by a client native to the given distribution. The client then goes to the software repositories for the program maker and obtains all the right packages to make that program run on that particular machine.

    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'.

  • by petes_PoV (912422) on Monday December 01, @10:00AM (#25944075)
    The list's the same as it was 10 years ago - and will be in 10 years time.

    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.

  • He complains:

    1. Poor package management.

      The way packages are managed within any individual distribution is entirely up to the maintainers of that distribution.

      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?

    2. Configuration files.

      There needs to be a consistent -- and whenever possible, self-documenting -- configuration system throughout, from the kernel to userland tools and user applications

      I know! Let's recreate the windows registry, but this time better!. Yawn.

    3. Unstable Kernel ABI. FUD.
    4. He wants a versioning filesystem. Like Windows has. (Does it?) I want a poney.
    5. Audio API. He says there are too many of them.
    6. The GUI is anarchic. (I see no black flags).
    7. X11 is not integrated with the apps. What the fuck does this mean.
    8. He wants "commercially hosted backup and restore". Maybe if he thinks there's money in it he should start a company instead of sitting on his fat ass and whining.
    9. Conclusion "Most of what's wrong with Linux isn't fatal", replacing it by a Vista look-alike would save all his problems.

    Just about the shittiest article I've read for a long time.

  • Not bad, but... (Score:5, Interesting)

    by mlwmohawk (801821) on Monday December 01, @10:19AM (#25944459)

    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
    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 /etc are, IHO, better and can be backed up and diff-ed.

    (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.

  • Remote desktop (Score:5, Insightful)

    by lord_sarpedon (917201) on Monday December 01, @10:24AM (#25944569)

    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?
    -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 :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...

    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.

  • by GooberToo (74388) on Monday December 01, @10:32AM (#25944721)

    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 [pulseaudio.org] and ALSA [alsa-project.org] are all that you need. If you have more specialized needs, then JACK Audio [jackaudio.org] 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.

    • Re:Problems: (Score:5, Insightful)

      by Eunuchswear (210685) on Monday December 01, @09:44AM (#25943805) Journal

      That is not a bug. It's a feature.

          • by KutuluWare (791333) <<gro.ulutuk> <ta> <ulutuk>> on Monday December 01, @10:20AM (#25944489) Homepage

            I agree. Clearly there are only two diametrically opposed options here. Either we immediately cease all development and enhancement of Linux and agree that the current kernel version is the absolute perfection of open source, or everyone formats their hard drives and installs Vista.

            There couldn't possibly be a middle ground anywhere in there.

      • Re:Problems: (Score:5, Insightful)

        by O('_')O_Bush (1162487) on Monday December 01, @09:54AM (#25943975)
        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.
      • Re:Problems: (Score:5, Insightful)

        by Korin43 (881732) on Monday December 01, @10:00AM (#25944061) Homepage Journal
        The thing about Linux is no one can agree on one desktop, which is why there are more than one. Some people like the retardedly simple yet unconfigurable Gnome, some people like the super advanced yet buggy KDE, and some people don't care and use XFCE because it's fast. No matter which one you choose, a lot of people won't be happy, and the beauty of an open source operating system is you can't force them to use one they don't want. And if distributions being so different is a problem, don't tell your grandma to get Linux, tell her to get Fedora, or Ubuntu, or SUSE. Your argument is from the view of someone who doesn't understand the entire point of open source software. Linux users don't want our choices taken away. There are definitely issues they need to work with, like choosing one package format, but getting rid of all choices is not what's going to make Linux better.
      • Re:Problems: (Score:5, Insightful)

        by eln (21727) on Monday December 01, @10:12AM (#25944307)

        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.

    • by Anonymous Coward on Monday December 01, @10:12AM (#25944299)

      > 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.

    • by amorsen (7485) <benny+slashdot@amorsen.dk> on Monday December 01, @10:15AM (#25944381)

      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] [gnu.org] would be cool ).

      Hard to do in kernel space. We're getting there in user space.