Announcement

Collapse
No announcement yet.

Torvalds: User-Space File-Systems, Toys, Misguided People

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

  • #41
    Originally posted by drag View Post
    A hybrid kernel is a term made up to cover for the fact that Apple was full of shit about using a Microkernel from day one.

    Microsoft actually had the balls to try to put a microkernel into production. NT, for very early versions, actually had a microkernel. But they figured out why Linus was right and abandoned that design.

    They may retain some 'microkernel'-isms here and there, but they are not Microkernels by any stretch of the imagination.

    This is a good thing as Microkernels are much larger, much more complex, and much slower then monolythic.
    Why do people keep repeating the same myths about microkernels? These myths have been proven false but they keep persisting and people keep repeating them.

    Microkernels aren't more complex , in fact the whole point behind microkernels is for a more reliable and simpler design overall by separating things into lots of simpler services.

    Micro-kernels aren't slower , yes some were slower but that was due to poor design decisions to do with process handling and inter-process communication. There are simple solutions to handling that. If one adopts the simple solution of switching to the IPC destination instead of letting the scheduler treat it like a normal scheduling event , we avoid the slowdown because we avoid the latency of having to wait for two additional scheduler rounds.

    When it comes to size, there isn't any significant penalty in either memory usage or lines of code , and memory usage can be smaller due to only having the necessary services and drivers loaded, and loading them on demand.

    Micro-kernels require paying attention to process handling , inter-process communication and memory management but you need to pay attention to them anyway since they are exactly the same things you need to pay attention to when it comes to multi-{threaded/process} programs.

    Comment


    • #42
      Originally posted by Ze.. View Post
      Why do people keep repeating the same myths about microkernels? These myths have been proven false but they keep persisting and people keep repeating them.
      Any proofs?

      Comment


      • #43
        Originally posted by energyman View Post
        and with ntfs you need third party drivers in linux.

        Who uses XP anyway? That is so 2001....
        Simple, all the people who owns a Windows XP disk and managed to avoid later reincarnations of Microsoft OSs.

        Comment


        • #44
          Originally posted by kraftman
          Any proofs?
          Just google either for "Minix" or "Coyotos" (sadly defunct due to the creator taking a job elsewhere) and you'll find plenty of information about microkernels, their advantages and how their challenges are approached.

          Comment


          • #45
            Originally posted by Wingfeather View Post
            Just google either for "Minix" or "Coyotos" (sadly defunct due to the creator taking a job elsewhere) and you'll find plenty of information about microkernels, their advantages and how their challenges are approached.
            You'll also note that although Minix inspired Linux, Linux did not adopt the same microkernel design. Generally speaking in the past it seems to have added a lot of complexity for little real-world benefit, though as the number of CPU cores continues to increase we may have to switch to a more distributed kernel model to make best use of them.

            Comment


            • #46
              Originally posted by Ze.. View Post
              Micro-kernels aren't slower , yes some were slower but that was due to poor design decisions to do with process handling and inter-process communication.
              What are you talking about? Of course they are slower, communicating through message passing will always be slower than communicating through shared memory. It's true that microkernels have worked hard on improving the speed of message passing, like grouping chunks of messages instead of passing them one by one for example. BUT IT IS STILL SLOWER. That's the price you pay for the safety of truly separated processes were if one crashes it won't bring down the system or even any other process, sometimes it's worth that price but again IT'S SLOWER. Microkernels has some undeniable benefits but speed certainly isn't one of them.

              Comment


              • #47
                Originally posted by XorEaxEax View Post
                What are you talking about? Of course they are slower, communicating through message passing will always be slower than communicating through shared memory.
                Indeed. I was reading about the latest version of Minix yesterday after reading this thread and one thing one article said was that writing to an I/O port through the microkernel only took 500 nanoseconds. Which doesn't sound so bad until you realise that it's typically 1,000-1,500 clock cycles on a modern CPU.

                Fortunately it's not something that drivers do often (I'm guessing 90+% of I/O these days is memory mapped) and I/O writes are slow anyway, but it's still a pretty significant amount of time for what would otherwise be a simple instruction in the kernel.

                That said, kernel performance probably doesn't matter much in normal desktop use; it's much more important in specialised uses like high-performance web servers where you really don't want to be taking the hit of continually going in and out of user space to send network packets.

                Comment


                • #48
                  Just to clarify: ZFS on linux is not FUSE based as some people say. There was a zfs fuse implementation but ZOL is far more advanced and a lot of people using it successfully in production. To read about the license incompatibility issue see: http://zfsonlinux.org/faq.html#WhatA...LicensingIssue . Btw. a lot of people believe there is even a legal way to include the zfs code into mainline kernel, but probably a court has to decide this (hello oracle). Nevertheless zfs is super stable (we use it in production for more than two years).

                  Comment


                  • #49
                    Originally posted by dreh23 View Post
                    Just to clarify: ZFS on linux is not FUSE based as some people say. There was a zfs fuse implementation but ZOL is far more advanced and a lot of people using it successfully in production. To read about the license incompatibility issue see: http://zfsonlinux.org/faq.html#WhatA...LicensingIssue . Btw. a lot of people believe there is even a legal way to include the zfs code into mainline kernel, but probably a court has to decide this (hello oracle). Nevertheless zfs is super stable (we use it in production for more than two years).
                    Funnily enough ZOL is not installable on Debian if you want virt-sparsify on your machine. It depends on fuse-zfs

                    Comment


                    • #50
                      Originally posted by allquixotic View Post
                      Also, no such in-kernel module exists for Amazon S3, or SSH, or FTP. And in the case of these very network-limited filesystems, the performance drop of the userspace indirection is probably quite insignificant, especially if you're going out over the public internet, which is thousands of times slower than the maximum bandwidth of a FUSE filesystem. You should even be able to max out a gigabit ethernet port over a LAN using a FUSE filesystem for SSH or FTP.

                      Really, the people complaining aren't offering many alternatives for us to use to get higher performance. And if they are offering them, they have showstopping licensing issues in both cases I'm aware of. Maybe the simple fact that FUSE filesystems have user adoption and are successful is a little hint to the kernel community that, maybe, writing kernel code with all the special rules and regulations of Linux is more trouble than it's worth.
                      So true. I use ntfs-3g (interop with dual-boot windoze) and CurlFtpFS (worked better than NFS and CIFS for me) on a daily basis.

                      Comment

                      Working...
                      X