Slashdot Mirror


Does Linux "Fail To Think Across Layers?"

John Siracusa writes a brief article at Ars Technica pointing out an exchange between Andrew Morton, a lead developer of the Linux kernel, and a ZFS developer. Morton accused ZFS of being a "rampant layering violation." Siracusa states that this attitude of refusing to think holistically ("across layers") is responsible for all of the current failings of Linux — desktop adoption, user-friendliness, consumer software, and gaming. ZFS is effective because it crosses the lines set by conventional wisdom. Siracusa ultimately believes that the ability to achieve such a break is more likely to emerge within an authoritative, top-down organization than from a grass-roots, fractious community such as Linux.

18 of 521 comments (clear)

  1. Re:authoritative, top-down organization by What+Is+Dot · · Score: 4, Insightful

    I totally agree. I think the main problem with Linux based systems (Fedora, Ubuntu, etc.) is that there are so many of them. Diversity is wonderful for free speech, but in the open source community, we have 100 solutions for every 1 problem.
    The best solution would be for the Linux Kernel project to say, "Open source developers can do as they please, but we here at the Kernel project encourage developers to contribute to THESE specific projects: Gnome, Open Office, etc...
    The open source community is massive, but development will take an eternity until a majority of the community starts to support ONE software solution over it's alternatives.

  2. Its easier to handle layers mentally by krbvroc1 · · Score: 4, Insightful

    Layers are both easier to code, to understand, and to test. Layers/boundaries between software are your friend. To some degree that is why the Internet, based upon a layered network model (TCP on top of IP on top of Ethernet) is so diverse.

    Layering is what keeps things manageable. One you start getting your software tentacles into several layers you make a mess of things for both yourself and others. Its a tradeoff--complexity/speed vs simplicity/maintainability/interoperability.

  3. Re:Merit by FooAtWFU · · Score: 4, Insightful

    Indeed. Whatever downsides layers have, they keep things sane. If you're going to make a mess of things, at least with layers you have an organized mess. There's a reason that Linux is more secure than Windows.

    --
    The World Wide Web is dying. Soon, we shall have only the Internet.
  4. Linux does not think by Mad+Quacker · · Score: 4, Insightful

    Open source software gets better because new people want new features to which they contribute. You can't blame Andrew Morton for disliking what ZFS is going to do, this is just how people work. This is why they say you can't teach an old dog new tricks.

    That said ZFS is one of the coolest things to happen to your files in a long time. The current disk block device usage is basically the same from the beginning of computing, it is ancient and actually quite stupid. Over decades layers keep getting added to it to make it more robust, but really it's a monstrosity. Partitions are dumb, LVM is dumb, disk block RAID is dumb, monolithic filesystems are dumb. All the current linux filesystems should be thrown out.

    I don't want to care how big my partitions are, what level parity protection my disks have, or any of that junk. I want to add or remove storage hardware whenever I want, and I want my files bit-exact, and I want to choose at will for each file what the speed vs protection from hardware failure is. Why shouldn't one file be mirrored, the next be stripped, and the next have parity or double parity protection? Why can't very, very important files have two or three mirrors?

    From the current status of ZFS however I think this could be quickly built using GPL 2+ by one or two determined people, and it would involve gutting the linux file systems.

    --
    "I don't know that atheists should be considered citizens, nor should they be considered patriots." George HW Bush
  5. Re:Democracy Sucks. by Cyberax · · Score: 3, Insightful

    Yes, and dollar is not a currency, it's a banknote.

    Representative republic is JUST A FORM OF DEMOCRATIC GOVERNMENT.

  6. Re:Linux isn't successful on the desktop because by peragrin · · Score: 4, Insightful

    I have spent the last three days teaching someone how to use windows XP when all they used to use was windows 98. Every interface is different. Stop teaching interfaces and start teaching ideas. Stop teaching MSFT word, start teaching word processing. Teach spreadsheets not excel.

    I can sit down in front of any computer and begin to figure it out. i wasn't taught windows, I learned about windows from windows. I learned about OS X from OS X. and I figured out how to make a custom kde setup from KDE.

    You want to know what I find short comings in them all. They are tied to one group, one development process. I want an OS that has the ease of use of OS X, with the multi-platform binaries of java, and the remote windowing of X. I want to carry my home directory files on an encrypted thumb drive, and load up my files, whether or not the OS is OS X, linux, windows, solaris, plan 9, or what ever else the future may bring.

    we have the knowledge and technology to do that today.

    --
    i thought once I was found, but it was only a dream.
  7. Re:Welcome To Reality Open Source by howlingmadhowie · · Score: 5, Insightful

    Linux and other open source projects are getting a harsh lesson in what it is like to ship consumer grade software products.

    um, you do know that linux has been the operating system of choice for supercomputers, webservers, special effects production, scientific computing etc. for a number of years now, don't you? because you seem to think that linux, freebsd, openbsd or whatever just suddenly turned up yesterday or something. are you also aware of the fact that a lot of people who write free and open-source software get paid good money to do so?

  8. Re:Democracy Sucks. by cyber-vandal · · Score: 4, Insightful

    Socialism worked pretty well in the democratic western countries, that's why people aren't dying of cholera/typhoid/starvation in slums anymore.

  9. Re:Linux isn't successful on the desktop because by Anonymous Coward · · Score: 5, Insightful

    "Ease of use. Nobody has sat first time users in front of a linux desktop and watch them puzzle over what those multiple desktops do, or how to switch between them.......If there is one thing I would suggest, get Ubuntu played with by ordinary grandma's so you can see how they get confused."

    Just because your grandma is a little slow (okay, ALOT SLOW) does not mean all of them are.

    My grandmother WAS sat in front of an Ubuntu box for the first time, and after 5 minutes, she asked me why her windows PC did not have Desktop switching, as it only makes sense, rather than constantly minimizing countless windows. Since she already has Firefox on her PC, there was no great hunt for the Big Blue "E" aka "the internet", and after a short explanation about how she, as a user, has her own little piece of the computer called a HOME FOLDER, and can save all her stuff there, she was set.

    I am so tired of this myth that only people with a Mensa I.Q. are capable of understanding how to use a non-windows based system. Granted, she wont be editing config files or writing code, but how many outside the IT industry do that on a regular basis?

    Mod me insightful (or fraking obvious, take your pick)

  10. That's fine by Sycraft-fu · · Score: 4, Insightful

    But the OSI layers are guidelines that help design things, not rigid levels that must be maintained. They are mixed up ALL the time. As a simple example, see Layer-3 switches. These are devices that simultaneously work at Layer 2 and 3 when it comes to dealing with traffic. They break down the traditional view of a separate router and switch, and they are good at what they do. There's plenty of stuff at the high end that's similar. Many things that are part of the presentation layer are actually done by the application (like encryption in SSH) and so on.

    There's nothing wrong with having a layered design philosophy as it can help people decide what their product needs to do, and what it needs to talk to. For example if I am designing an application that works over TCP/IP, I really don't need to worry about anything under layer 4 or 5. However it shouldn't be this rigid thing that each layer must remain separate, and anything that combines them is bad. I don't need to, and shouldn't, take the idea that my app can't do anything that would technically be Layer 6 itself. Likewise in other situations I might find that TCP just doesn't work and I need to use UDP instead, but still have a session which I handle in my own code (games often do this).

    Had we stuck to the OSI model as a maximum, rather than a guiding principle, with the Internet, it probably wouldn't have scaled to the point we have now.

    1. Re:That's fine by einhverfr · · Score: 3, Insightful

      Evidently you have never really followed the development of OSI. The only reason they are taught as "guidelines" today is that the OSI stacks that intended to implement it fell flat because they were horribly bloated monstrosities which solved all the wrong problems in all the wrong ways and took too long to get to market. On the other hand, the TCP/IP 4-layer model is actually pretty strict (as the OSI model was designed to be).

      Just to provide some context, the OSI initiative was an attempt by the UN ITU and other bodies to create an ultimate convergence network capable of adequately handling data and voice across the same physical links. Many of the layers in the OSI protocol diagram (such as the data link layer) are designed to merge circuit-switched and packet-switched paradigms. The idea was that if you can provide the flexibility to create virtual circuits for voice traffic and still handle packets with the remaining bandwidth, you would not need separate network access points for your internet and voice traffic. Many of the OSI protocols (such as H.323) assume that such virtual circtuits are available which is why they are so cumbersome over TCP/IP.

      I personally think that the OSI board designed the wrong kind of network for the wrong kind of problems. It is better to have a TCP/IP model, perhaps multiplexed with voice over ATM than to have intimate integration between such fundamentally different services. I also think that if people are going to teach the OSI model, they need to also teach the OSI design goals and those protocols which are still based on it: X.400, X.500 (and LDAP, which is basically X.500 over TCP/IP), X.509 (and hence SSL), H.323, T.120, and ASN.1.

      Most of the time, when people start getting experience with these protocols they run screaming from anything OSI ;-)

      --

      LedgerSMB: Open source Accounting/ERP
  11. Anyone read what Andrew Morton actually said? by Anonymous Coward · · Score: 4, Insightful

    "I mean, although ZFS is a rampant layering violation and we can do a lot of
      the things in there (without doing it all in the fs!) I don't think we can
      do all of it." http://lkml.org/lkml/2006/6/9/409

    It sounds like his main point was pointing out problems with the current file system, rather than saying ZFS is bad. I bet he simply thinks they should try to implement a much better file system than ext3 without breaking the current layering scheme. I don't see why this is so bad. Why not try it, and if it fails miserably, ZFS is already here.

    I think the author of the article took everything out of context and was just looking for some ammo against Linux. His blog post sucked. He just says the same crap that everyone always says. I'm not saying there are no problems, but I don't see how any of the problems relate to Andrew Morton saying the Linux file systems need to be upgraded/replaced.

  12. Re:Linux isn't successful on the desktop because by Hairy1 · · Score: 3, Insightful

    The real reason Linux isn't popular has more to do with marketing that technical issues. People have always pointed to one feature or another where Linux is weak and say that it won't be viable until the feature is there. The simple fact is that Linux is now ready for the desktop technically. It is the marketing which Linux and more generally open source needs to perfect.

    To address the parent:

    1. Fonts are not something I even notice a difference in. I can't imagine anyone making a decision on this basis.

    2. Linux is now just as easy to use as Windows for the average user. Many devices will be supported without installation of special drivers, and in many respects this experience is easier than windows. For example, my GPS device plugs straight in and works. To use it under Windows I have to keep installing a driver. Not just once but every time I use it. I don't know why. I don't know how to fix it on Windows.

    3. Graphics issues - Desktops like Suse and Ubuntu are well integrated with consistent styles. While there is a broader range of layouts than with Windows, this is not a barrier to adoption.

    4. Lack or help. I don't know of any software which has effective help; be that Windows or Linux. Linux has man pages of course, but thats too technical. I agree that documentation could be better, but popular applications are generally easy to use without detailed help. The lack of local help is not a big factor, and is mitigated by good online resources such as FAQ's and mailing lists.

    5. This last one is odd. You want a "bundle of software that fits my needs". Linux may have been inspired by a philosophy, but there is no suggestion that users must share it. The fact is that under Linux you have access to a huge number of applications out of the box. Under Windows you will need to purchase software piece at a time. I would rather just be able to download a program automatically.

    None of these reasons are real reason why Linux is not popular on the desktop. One real reason is gaming support - one of the primary reasons many of my associates say they still have Windows partitions. If only I could play CS on Linux....

  13. Re:Well, no. by KagatoLNX · · Score: 4, Insightful

    The word "refactoring" applies here.

    When the layers don't meet your needs, you have two options.

    You can either violate the layering or you can get the layers refactored.

    In Linux, we do not accept the first. Why? Because it generates bad software...period.

    Writing drivers for MacOSX is a pain...because of the mingling between Mach, BSD, and everything else they did to make it work.

    Drivers for Windows has always been a source of instability because there isn't good layering there either. Try to write database code on Windows, the lack of coherent design presents dozens of incompatible interfaces with different features.

    You can do what these people do. You can make a "product" that "works" without regard to design. Eventually, you end up doing a complete rewrite. The fact of the matter is that Linus puts design before function, and maintainability before progress. As such, we move slow, we refactor, and we're generally slow. However, progress is steady and it does, generally, get better. Of course there are always people that want it to be everything.

    --
    I think Mauve has the most RAM. --PHB (Dilbert Comic)
  14. Re:Hey! by DaleGlass · · Score: 4, Insightful

    Why can't I say "/dev/hda, you are now snapshotted, shazam"? No, instead I have change my system over to use /dev/mapper/snapshotted-hda


    You don't seem to understand snapshots.

    A snapshot works by creating a copy of the device, with the contents it had when the snapshot was created. If you make a snapshot of /dev/hda at 12:15, then you'll get /dev/mapper/snapshotted-hda as it was at 12:15, while /dev/hda will continue being possible to modify.

    Why would you change anything over? Snapshots are temporary. You snapshot your drive, use the snapshot to create a consistent backup (or whatever), then destroy it.

    Normally you won't keep a snapshot around for long, as they're maintained by keeping copies of modified blocks, and that takes space. Unless you have enough space for fully duplicating the device you made a snapshot of, you won't be able to keep it around forever.
  15. Re:Total bullshit by strider44 · · Score: 4, Insightful

    Why do you need to develop a linux-only game if you use an opengl/openal code path? OpenGL and OpenAL run fine on Windows, and if you use something like SDL or GLUT then you can even compile the exact same 3D graphics code on Windows and Linux.

  16. Re:Linux discipline by try_anything · · Score: 3, Insightful

    I like your title, and I like Linux's approach. The usual approach, especially in commercial software, is to give the users everything they want, no matter how many technical assets need to be sacrificed. Throw away good design, security, and reliability just to get the latest bullet point. That isn't what the Linux community wants. They want things done right, even if it takes a few years to figure out how. Windows is a good example of saying "yes" by default to every demand and ending up with a system so complex and fragile that even gurus don't understand it. (I'm thinking of the recent Raymond Chen blog entry that hit Slashdot, in which he admitted to releasing a bogus Windows patch because he didn't understand how Windows processes shut down.)

  17. Re:An example: speeding up the boot process by try_anything · · Score: 3, Insightful
    When your design constrains you, you don't throw it away and proceed into anarchy. You create a new design. If the layering scheme kills performance, the fix is to create a new layering scheme that accomodates the performance improvements you want to make.

    Having a coherent design is what allows people to reason about the system as a whole. Breach the design, and suddenly nobody can say anything about anything without tracking down and understanding all of the code involved. Commercial companies do this all the time when playing catch-up with rivals, because they have to retain their customers at all costs, but they suffer terribly for it in maintenance costs and stability. There's no reason in this case for Linux to take the fast, self-destructive route. Linux can wait for a coherent solution, even if it is years coming.