Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Friday August 28 2015, @04:51AM   Printer-friendly
from the kernel-sanders dept.

FreeBSD hackers Jordan Hubbard and Kip Macy surprised an audience of Bay Area FreeBSD Users in August 2015 by laying out their version for a new architecture, based vaguely on BSD but with a microkernel and an event-driven framework consisting of something like libdispatch and launchd. Those are big changes if you are familiar with what FreeBSD has looked like for all of its life.

The good news is, this doesn't mean the destruction of the FreeBSD we all know and love. In fact, Hubbard, who is also the CTO of ixSystems (developers of FreeNAS and PCBSD, both products derived from FreeBSD) aren't aiming to impact FreeBSD but rather change the fundamental architecture of ixSystems' own products.

The slide deck walks you through the proposed, new architecture. Better still, watch the talk yourself.

As a FreeBSD fan, I'm glad they're treating this as a separate product and not hacking up the FreeBSD source tree; that gives us time to see how this shakes out.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 5, Interesting) by LoRdTAW on Friday August 28 2015, @05:05PM

    by LoRdTAW (3755) on Friday August 28 2015, @05:05PM (#229071) Journal

    Safely dead? Says who?

    Bottom line is this: The Linux monolithic kernel design isn't the end-all-be-all of kernel designs. The infamous Torvalds vs. Tenenbaum debate wasn't the defining moment in kernel history. It was simply someone with a bigger mouth who won and argument because he was louder and had a more popular, functioning kernel. Linus is a smart guy, and arguably the most important person in the open source movement. But his big mouth opinions are taken for gospel. And they aren't.

    Windows and OSX are both hybrid kernels. They have microkernels under a monolithic kernel to provide low level system management and hardware interface. But unlike a true microkernel where kernel space is tiny and everything is in user space including drivers, they have a monolithic kernel and drivers sitting atop the microkernel stuff. Best of both worlds. They also move certain interfaces into user space; Windows has Win32 in userspace and OSX has A BSD like Unix server in user space. Linux has just about everything in kernel space. It's a lot to manage. A hybrid/micro approach could allow for a more modular approach allowing different kernels to be swapped in without changing hardware drivers. Perhaps some other stuff could be moved into user space to lower the security attack surface of the kernel.

    True microkernel operating systems are more rare, mainly existing in very specialized software/hardware segments or research. GNU/Hurd, Minix and QNX are more visible to the public (QNX via RIM who use it as their mobile Blackberry OS.)

    There are two projects from Dresden University of Technology:L4Linux and TUD:OS. Both use the L4 Microkernel to host one or more Linux kernels via a paravirtualization interface. TUD:OS aims to be a more complete Microkernel based OS with Linux hosting as a feature. L4Linux aims more for the hybrid kernel approach by using Linux as the OS interface and L4 underneath as the hardware glue. Personally I think L4Linux is very interesting. Perhaps it could stop the moving kernel ABI target.

    And beyond the simple micro/hybrid/macro/monolithic argument are other designs that use a networked approach where the OS is more like a network switch and services and applications are network endpoints or servers/clients and all exposed as files. Plan 9 from Bell Labs used this approach and essentially made the kernel less important. It also solved the problem of how to deal with networking which broke Unix via the 9p filesystem. It is a true everything is a file OS, unlike Unix which was broken by networking. If you look at the 9p design, you start to realize that the way we share data between systems via a plethora of clumsy, PITA to use protocols and software - SUCKS. 9p could for example be ported to an arduino making it visible to any network node without writing goofy interfaces. A PWM pin could simply be controlled by writing a number to /name_space/arduino/PWM0. It's just a file and its I/O points are exposed via files. Everything implements 9p, everything talks 9p. That would make life so much easier without having to worry about yet another protocol to get in the way which needs its own interface/server/client/library. IoT could learn a thing or two from this lesson instead of arguing about which shitty protocol to implement. Plan 9 is considered a distributed OS. In fact, it was ported to the IBM Blue Gene supercomputer and actually proved itself to be a very capable OS for the task. Inferno takes the Plan 9 design to the next level by virtualizing the entire OS making the hardware underneath irrelevant. Doesn't matter if you are on ARM, PPC, MIPS or x86, the application runs. Think along the lines of the kernel is a bytecode VM running a 9p interface. Sounds like a pipe dream, but the software exists and works. And it wasn't built by a bunch of schmucks either.

    Bottom line: Operating system design is far from over or "safely dead" as you put it. My favorite quote is from Eric S. Raymond when talking about why Plan 9 didn't succeed Unix:

    It looks like Plan 9 failed simply because it fell short of being a compelling enough improvement on Unix to displace its ancestor. Compared to Plan 9, Unix creaks and clanks and has obvious rust spots, but it gets the job done well enough to hold its position. There is a lesson here for ambitious system architects: the most dangerous enemy of a better solution is an existing codebase that is just good enough.

    Starting Score:    1  point
    Moderation   +3  
       Interesting=3, Total=3
    Extra 'Interesting' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   5