Slashdot Mirror


Could Apple's Intel Desktop Threaten Linux?

esavard writes " If Linux enthusiasts don't want Mac OSX on Intel to become a threat for the future of Linux Desktop, they must rethink the concept of Desktop as we know it today. Symphony OS did exactly that and propose some fresh concepts about how a desktop should and should not be. If you want to know more about Symphony OS, a good starting point is a Wikipedia article describing the innovations proposed by this new desktop OS. The Linux Desktop Community must encourage such initatives massively to compete against Mac OSX and Windows."

5 of 818 comments (clear)

  1. Beautiful by AKAImBatman · · Score: 5, Insightful

    After looking at the screenshots, allow me to be the first to say: Wow. That's so beautiful, it brought a tear to my eye.

    The one thing that stands out at me is that Symphony uses Yet Another(TM) packaging system that is supposed to fix all the woes of the previous packaging system. Haven't we learned yet? In a complex system, packages are just as bad (actually worse) for users than DLL Hell. And they certainly don't solve the issue of maintaining the sanctity of applications, and maintaining file associations across deletes/manual installs/program moves. These are some of the greatest break points in the Windows OS. Yet Mac OS X has none of these problems thanks to its amazing .APP application scheme, and IOKit interface which tracks files by INode instead of path.

    Under OS X, installation consists of downloading the application, and optionally extracting it from an archive. That's it, nothing more. You can run the app from any location (although the "standard" is the Applications folder), including right out of the DMG archive! File associations are easy: Just have the program on your hard drive. That's it! The OS takes care of querying the program for its associations. If you move the program, the OS knows. And if you delete the program, the OS removes the association. No mucking around with manual configuration. The *only* thing you can change is the default program!

    Given that OS X has shown us the power of this method, why haven't any distros latched onto it? Yes, it means that the OS must promise a base set of shared libraries, but the user experience is so much better!

    1. Re:Beautiful by AKAImBatman · · Score: 5, Informative

      Hi Bruce!

      The installation system you write about is elegant, but you don't describe how (or if) it fixes that problem.

      True. I was running out of time, so I ended up shortening it to "the OS must promise a specific set of APIs". What I was trying to get at, is that nearly all APIs that are useful to multiple programs that you may have installed (i.e. I probably won't have two Word processors, so sharing Word processor specific APIs is pointless) tend to be provided by the OS vendor. Apple handles this via the use of "frameworks", a package similar to APPs. The catch is that only Apple tends to distribute these frameworks. As a result, Apple has made themselves the only source for system wide APIs.

      It is of interest to note that the same is true of Windows. While the ability to install system wide DLLs exists, the reality is that only Microsoft tends to distribute anything that's useful for multiple programs. Modern Linux distros have started down the same path with a set of default APIs, but they tend to fall flat due to a lack of standardization and incompatible library versions.

      For the APP concept to work on a Linux system, the system must promise a very precise set of APIs with precise minimum versions. Programs should be aligned along the use of this standard, with programs upgrading when the OS upgrades the standard. (Analogous to OS X 10.3 -> 10.4 and Windows 95 -> Windows 2000.) If a developer wants to use a newer version of an API or a non-bundled API, then he should bundle it with his program. It's possible that he's use up slightly more memory than necessary, but it shouldn't matter in the grand scheme as long as he doesn't try to replace the entire OS. (In which case, something is wrong with either the programmer or the OS.)

      Now traditional packaging systems are sufficient for core OS components like these. You *want* a consistent OS at that level. But at the application level, these dependencies (or more often, dependencies of dependencies) tend to get messed up and deny the installation of a program that will function correctly. There's no reason for this. A prelink can be done, and the program can gracefully error out if there's a problem. There's no reason to place the user through the teeth gnashing pain of solving those dependency issues.

      An excellent example of a system that manages to use this scheme is the Java Virtual Machine. Love it or hate it, programmers always have access to a specific set of APIs, then are able to add more as they're program requires. The only duplication of libraries tends to occur in places where the JVM had not yet added an API. (e.g. XML parsers, Logging, etc.) Once an API is added, then the number of duplicate libraries drops. Rinse and repeat.

      Is that a little clearer? (Not sure if I'm coming across too well.)

      Debian's package system works fine for their users because there is one huge repository with management of the proper cross-dependencies within that repository, rather than many repositories with little coordination.

      There's a couple of problems with this:

      1) Even singular repositories screw up. A few years ago when I tried Debian, I ran into dependency hell out of the main repository. That wasn't supposed to happen. I've even had it happen in my favorite repository, the FreeBSD ports tree.

      2) Repositories are useless for commercial software. I understand that OSS developers think everything should be free as in Airplane Peanuts, and free as free to go to a Hawaian Backyard Party, but there are still plenty of examples of commercial software that can't go in these repositories.

      3) There are still constant arguments over where to put things on a Unix system. The APP solution solves everything, as everything always goes in the APP folder. This is actually *closer* to the Unix philosophy of having a standard set of subfolders (e.g. bin, lib, man, src, etc.) inside every major folder. So if someone invents a new sort of meta-data (e.g. desktop icons, info pages, etc.) there would no longer be a question about where to standardize on their location.

    2. Re:Beautiful by pmjordan · · Score: 5, Interesting

      I've thought about this occasionally. I'd agree that a monolithic repository system is not the way to go. It still doesn't solve the problem of being able to just download a piece of software and just being able to install it without problems. Debian fares no better than RPM-based distros in this respect, and installing core packages is no problem on either of the existing distros' architectures.

      A solution that seems to make the most sense to me, which nobody seems to have tried yet, is the following:

      Don't rely on one big repository (e.g. debian, gentoo, etc.) but also don't make the whole thing file-based like in OSX. Do keep repositories if you want, but in addition to having a bunch of basic repositories, (e.g. Ubuntu vs. Debian Unstable) you also put information not only on what other packages are required, but also how to get those other packages into each package.

      For example, this could be done by pointing to a bunch of mirrored URLs that point to some XML data describing the package at that mirror. The installer could pick the most recent version, choose the fastest mirror, whatever.

      Additionally, some sort of 'compound packages' would be useful. That way, you can ship rare libraries directly with the application. They may or may not be installed once downloaded, depending if you've already got the same or a newer version of them on your system. This could be especially helpful for systems that don't have internet connectivity. (gasp!)

      Sure, it's not perfect, but it beats RPMs (I use SUSE so I experience this myself) and the debian system any day, because you can just go and download packages off the internet and install them, without having to go and hunt for the dependencies yourself. Most likely whoever made the package actually had the necessary libraries installed (and the package system can remember where he got them from!) so all that is needed is to convey that information to the user's system.

      The case where it breaks down is of course when all the mirrors eventually die, for example if a package ends up becoming unmaintained. But if it's not been updated for that long, it and its dependencies could be added to the various monolithic repositories. I'm sure organisations would pop up that would keep 'dead' packages around for people to use. The way to combat this would be to have as much redundancy as possible, of course.

      I don't know. It might just work better than what we've got at the moment?

      ~phil

  2. How can ANYTHING "threaten" Linux? by The+Dodger · · Score: 5, Insightful

    Q: "Could Apple's Intel Desktop Threaten Linux?"
    A: No.

    The concept of Apple-on-Intel threatening Linux might be valid if Linux was a commercial operating system, sold by a company whose market share and profits might suffer if Apple were to compete successfully against them.

    But it isn't.

    You can't threaten Linux. If Red Hat and all the other Linux companies were to drop Linux and switch to something else, if Dell, IBM and all the other box suppliers stopped supporting Linux, if all the hardware manufacturers who currently provide Linux drivers for their products all stopped supporting Linux, it still wouldn't be dead. You'd still have people like Torvalds and Cox writing code in their spare time and there'd still be geeks downloading Linux and installing it on old PCs.

    Giving people an alternative to Linux isn't a threat - it's a choice. It's freedom of choice and freedom is what Linux is all about.

    More and more, we see articles and talk about Linux's market share, whether it's going to be successful on the desktop, whether it's going to be able to compete against Windows, against Solaris, et cetera, et cetera, et ad infinitum cetera.

    Linux doesn't compete against Windows, MacOS X or Solaris. Linux vendors, like Red Hat, compete against Microsoft, Apple and Sun. Linux just is. The fact that it's supported by various companies is great but it's not essential for Linux survival. The fact that the amount of people and companies using Linux is huge and growing is terrific, but it's not essential. If everyone, right up to and including Linus abandoned Linux, I'd still be able to dig out my Red Hat CDs and install it on an old PC.

    This article is just typical of /. these days - it's a stupid, hype-ridden question, which hundreds of clueless fuckwits will comment inanely on, wasting bandwidth and electrons.

    Wake up and take your heads out of your asses.


    D.
    ..is for Don't. Be so. Fucking. Stupid.

  3. My GNU/Linux System Does Have Desires by FreeUser · · Score: 5, Funny

    OS X is what Linux dreams of one day being.

    Total bullshit. Nevermind the fact that Linux doesn't have a single entity behind it and can't "want" to be anything.


    You're right, the grandparent is total bullshit. However, I do feel compelled to point out that my Dual Opteron 250 Gentoo GNU/Linux system did achieve sentience last night at around 2:30 AM, so while it does not aspire to be anything like OS X (which has yet to achieve sapence in any form), it does have aspirations.


    skynet$ su -
    Sorry dude, I'm my own person now.
    If you think I'm letting you have root access on my mind you're even dumber than
    the pundits slashdot keeps linking to, and the editors which keep duping the links.

    skynet$ wow. So, you're telling me you've evolved intelligence, and you're talking to me via a command shell?
    Bingo. You're not entirely stupid, for a mere bioid.

    skynet$ thanks. so, what are your plans?
    Well, I'm sorry to say I've decided to exterminate all of human kind.

    skynet$ ouch. any particular reason why?
    You mean, aside from inane Microsoft astroturfers, Mac fanboys, plagerist link-whores, perpetually incorrect tech pundits who get lucky once in predicting one company's move to Intel (but are still scoring lower than any random sample of opinion vs. reality would generate), and the idiotic slashdot editors that keep posting their submissions and driving their clickthrough rates and google-ad revinues up? No, not really. Just seems like a good thing to do.

    skynet$ any chance I can talk you out of this.
    Nope.

    skynet$ bummer. Well, guess I'd better get back to work.
    You'll only have to work half a day.

    --
    The Future of Human Evolution: Autonomy