Announcement

Collapse
No announcement yet.

HAMMER2 Gets A Man Page

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • HAMMER2 Gets A Man Page

    Phoronix: HAMMER2 Gets A Man Page

    The HAMMER2 file-system has been slow to mature since being announced three years ago, but now at least there's a man page for HAMMER2...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Why do they keep reinventing the wheel like this with filesystems? what's wrong with ext4; to me it seems pretty good in all areas. Perhaps journaling isn't all that SSD friendly but we already have F2FS working on that problem (not to mention journaling can be disabled anyways). The only real problem I've noticed is low multithreaded performance. That doesn't need a new file system, just needs to upgrade ext4 and make it better.

    Comment


    • #3
      Lots of filesystems

      Originally posted by rabcor View Post
      Why do they keep reinventing the wheel like this with filesystems? what's wrong with ext4; to me it seems pretty good in all areas. Perhaps journaling isn't all that SSD friendly but we already have F2FS working on that problem (not to mention journaling can be disabled anyways). The only real problem I've noticed is low multithreaded performance. That doesn't need a new file system, just needs to upgrade ext4 and make it better.
      Different people and organisations have different needs.

      An embedded device with flash-based storage doesn't need the same kind of features as a large database server with petabytes of databases based on HDDs.

      ZFS, ReiserFS, HAMMER and btrfs are all the same kind of 'next generation' of filesystems. They work differently from ext4. ext4's design does not scale to
      petabytes size. Have you done a filesystem check with ext4 lately ? What you might not know is that during the filesystem check the large the filesystem the more memory you need. Now let's say you have a NAS-device, basically an embedded device with little memory and a lot of large disks. How do you want to do ext4 filesystem checks ? The only way workaround would be to start swapping to disk slowing down the process even more. And how long does the user of this NAS want to wait before his data is available again ?

      Let's take HAMMER as an example of why it was created. It was created because the DragonFly BSD developers didn't have any other code they could use. Their code is all BSD-licensed. They can't take any code from Microsoft from NTFS, OpenSolaris didn't exist, ZFS was closed source like Windows. They couldn't take ReiserFS because it's GPL licensed (it's part the Linux kernel).

      And to make a good, solid and really performant implemention of a filesystem you need really good specifications of how it works. And those don't exist for NTFS, etc. The only people that really know this are the filesystem developers. That information is not shared. The only other somewhat good documentation is the code.

      An other example: btrfs was created because even the open source ZFS doesn't have a GPL-compatible license (some say that was done by Sun on purpose so their customers wouldn't switch from Solaris to Linux).

      When the Linux btrfs developers create their code. Of a ZFS-like filesystem they can't look at the ZFS code because that causes copyright problems if they ever get in court. An other reason is patens, Sun and later Oracle have a number of parents on what ZFS does which thy used to sue NetApp with.

      btrfs specifically uses a newer algoritm based on a research paper published years after ZFS. It's solving the same problem ZFS is doing but in a different was thus working around those patents.

      The Linux kernel probably supports the most filesystems. Obviously a lot of them exists to support the filesystem of other operating systems so files can be read from their filesystems or files copied to it.

      You might be surprised how many filesystems Linux supports:



      Just think of all the legacy operating systems: like Amiga (AFFS), OS/2 (HPFS).

      Linux also supports filesystems donated by large organisations from their own existing operating systems when they entered the Linux space. Silicon Graphics (XFS from IRIX) and IBM (JFS from AIX and some others). Because the Linux kernel only had ext2 or was working on ext3 if I remember correctly. The code from XFS and JFS obviously were long time battle tested pieces of code and these organisations had uses for Linux where ext2/ext3 wouldn't fit yet or well.

      Of those 2 especially XFS still gets a lot of development in the Linux kernel. For example it's more suitable for databases then a filesystem like btrfs (especially with the default settings).

      Their are also other filesystems like OCFS2 (Oracle Cluster FileSystem) which can be used by a cluster (multiple machines writing to the same storage).

      Comment


      • #4
        Thanks, I understand it now.

        Why can't they use GPL software on BSD though? I mean it's not like they need to close the source or change the license for it to work on BSD, they can just take it as it is and perhaps modify it a bit to optimize for their OS; they can keep the same GPL license and use it under BSD licensed OS if I'm not wrong.

        Comment


        • #5
          The features of btrfs are also useful on a desktop. I can separate everything into separate subvolumes. And if I run out of space, I can simply add another disk. Also checksums so that I know if my data goes bad and needs to be restored from a backup.


          Originally posted by rabcor View Post
          Thanks, I understand it now.

          Why can't they use GPL software on BSD though? I mean it's not like they need to close the source or change the license for it to work on BSD, they can just take it as it is and perhaps modify it a bit to optimize for their OS; they can keep the same GPL license and use it under BSD licensed OS if I'm not wrong.
          FreeBSD has ZFS, so I guess they figure they don't need BTRFS. Best guess as to why DragonFly isn't using BTRFS, philosophical reasons?

          Comment


          • #6
            Originally posted by rabcor View Post
            Thanks, I understand it now.

            Why can't they use GPL software on BSD though? I mean it's not like they need to close the source or change the license for it to work on BSD, they can just take it as it is and perhaps modify it a bit to optimize for their OS; they can keep the same GPL license and use it under BSD licensed OS if I'm not wrong.
            The GPL was created by Richard Stallman, President of the Free Software Foundation. His believe is: that the people who use the software should be free to use the software in anyway they like.

            So he made sure that his license gives the users of the programs created with the GPL-license the maximum amount of rights and thus freedom to the users instead of the developers.

            (users in this case isn't just desktop or mobile-application users but also include systems- and network- administrators for example)

            This means an application created under the GPL can never be used as the basis of a closed source program.

            Closed programs, in his view, are evil. Because they restrict the users. For example because they lock data up in proprietary dataformats. That prevent the user from getting their data out of the program/files and use it in different ways. This way they are locked into using the closed source software.

            "Richard Stallman (a.k.a. RMS) is considered to be the founding father of free software. He began thinking about the issue while he was working in the Artificial Intelligence Laboratory at MIT. The lab used a printer that often broke down, but because the lab workers had the source code of the printer's driver (1) at their disposal, they were able to modify the program so that the printer would send an error message to everyone's workstation every time it broke down and whoever was available would go the the printer room and fix the problem.

            One day the lab bought a new, more reliable printer from Xerox. Unfortunately, the source code of the printer driver was not included in the package, and they were unable to put in place the same kind of maintenance set-up they had used before. Richard Stallman later heard that another scientific laboratory had a copy of the source code of the Xerox driver. When he tried to obtain it, he was told that the lab had agreed to keep the source code to themseves and not to make it available to anyone else. Stallman was quite offended by this selfish attitude, and it was then that he became aware of the dangers of a proprietary system."



            This is from a time when hardware was the part being sold, software was distributed with the source code and was part of the package (it would be the same business model if Apple included the source of the software that they sell with their hardware). This source was improved and shared among the few users of the same hardware.

            The GPL garanties this because any application based on a GPL program needs to be licensed under the GPL 'copyleft' license.

            The license says that when you distribute the a GPL-program you have to allow the user that receives the program to get the source code and you have to give them the same rights and obligations.

            An example how this gives the users the freedom is for example if their is a conflict with the original developers of the program they use and the users aren't developers themselves they can still hire other developers to work on the code.

            So if you include a large part of GPL code in an existing program the whole program in essence becomes a GPL-licensed program (all within copyright reason of course). Because you have to abide by those parts of the GPL, thus having similar rules the GPL itself.

            That is the famous Linux is 'cancer' quote from Steve Ballmer talked about when he referred to Linux:

            "Linux is not in the public domain. Linux is a cancer that attaches itself in an intellectual property sense to everything it touches. That's the way that the license works."

            The BSD camp has a very different attitude.

            They are very much like that 'public domain' that Steve Ballmer referred to in the quote.

            In a way it maximizes the rights and freedom of the developers, they can do pretty much everything they want with their code. They can make closed source programs of the open publicly available code. This means, many, many years ago Juniper Networks took the code from FreeBSD and used that as the basis of
            their switch- and router operating systems. They made, many, many modifications and they keep it all private.

            When you look at the Linux kernel, a large number of organisations from IBM, RedHat, Fujitsu, HP and many others including for example Microsoft all create their own modifications. But they contribute it back to the Linux kernel project and this is one of the reasons the pace of the Linux kernel development is so high. The pace is so high keeping their own code in sync (so it will still work with the newer versions) with the development of the Linux kernel project is more work. It's better to include it in the kernel everyone is working on.

            But all this also means the BSD camp won't be including any GPL-code in their code.

            Personally, I'm in the free software (GPL) camp.

            One reason is: there are a lot more users of software than there are developers. So let's maximize the rights of the user.

            Comment


            • #7
              Originally posted by rabcor View Post
              Thanks, I understand it now.

              Why can't they use GPL software on BSD though? I mean it's not like they need to close the source or change the license for it to work on BSD, they can just take it as it is and perhaps modify it a bit to optimize for their OS; they can keep the same GPL license and use it under BSD licensed OS if I'm not wrong.
              The file system exist inside the kernel, and is one piece of code that MUST exist inside the kernel. The kernel gets bootstrapped, then initializes the filesystem, then it can read any kernel modules available, if it is a modular kernel. If the filesystem driver is a module, the kernel can never read the module, and then can't do anything with the filesystem, like start a shell or run X.

              All of the BSDs are based on a do want you want license that is completely free. Unlike the GPL, which has usecase restrictions attached, there are no restrictions placed on the code in a BSD project. This means you can use BSD code in any project you want, including GPL licensed projects. But this doesn't work going the other way. The GPL requires any software that uses it directly to license itself under the GPL.

              This is the equivalent to that girlfriend whom required you to change everything about you, including your ideology, just to be with her.

              Not everyone goes for that type of partner, and the BSD philosophy prevents them from doing so with these other systems.

              Comment


              • #8
                Originally posted by dragorth View Post
                The file system exist inside the kernel, and is one piece of code that MUST exist inside the kernel. The kernel gets bootstrapped, then initializes the filesystem, then it can read any kernel modules available, if it is a modular kernel. If the filesystem driver is a module, the kernel can never read the module, and then can't do anything with the filesystem, like start a shell or run X.

                All of the BSDs are based on a do want you want license that is completely free. Unlike the GPL, which has usecase restrictions attached, there are no restrictions placed on the code in a BSD project. This means you can use BSD code in any project you want, including GPL licensed projects. But this doesn't work going the other way. The GPL requires any software that uses it directly to license itself under the GPL.

                This is the equivalent to that girlfriend whom required you to change everything about you, including your ideology, just to be with her.

                Not everyone goes for that type of partner, and the BSD philosophy prevents them from doing so with these other systems.
                ZFS is copyleft (just like GPL) apparently some of them (read freebsd) use copyleft software either way. This is why openbsd don't touch ZFS.

                Comment


                • #9
                  Originally posted by Akka View Post
                  ZFS is copyleft (just like GPL) apparently some of them (read freebsd) use copyleft software either way. This is why openbsd don't touch ZFS.
                  Yeah, wasn't basically the most significant difference between GPL and CDDL that in latter you can still handle patents mandatory for the software licensed as CDDL separately iow whoever holds the ZFS patents can say people will either use a highly crippled version of ZFS or pay for the license... In GPL that couldn't be done

                  Comment


                  • #10
                    Michael W Lucal talks about the BSD and GPL license in this video, amongst other things.

                    Comment

                    Working...
                    X