vkernel & GSoC, some questions

Matthew Dillon dillon at apollo.backplane.com
Mon Mar 17 00:12:13 UTC 2008


:
:Given the fact that there are not as many developers as needed, what would be a practical purpose of vkernel?
:
:UML is typically used to debug drivers and/or for hosting. Now that Linux about to have or already has container technology, hosting on UML makes little sense.

    The single largest benefit UML or a hardware emulated environment has
    over a jail is that it is virtually impossible to crash the real kernel
    no matter what you are doing within the virtualized environment.  I
    don't know any ISP that is able to keep a user-accessible (shell prompt)
    machine up consistently outside of a UML environment.  The only reason
    machines don't crash more is that they tend to run a subset of available
    applications in a subset of possible load and resource related
    circumstances.

    Neither jails no containers nor any other native-kernel technology will
    EVER solve that problem.  For that matter, no native-kernel technology
    will ever come close to providing the same level of compartmentalization
    from a security standpoint, and particularly not if you intend to run
    general purposes applications in that environment.

    The reason UML is used, particularly for web hosting, is because 
    web developers require numerous non-trivial backend tools to be installed
    each of which has the potential to hog resources, crash the machine,
    create security holes, or otherwise create hell for everyone else.  The
    hell needs to be restricted and narrowed as much as possible so human
    resources can focus on the cause rather then on the collateral damage.
    For any compute-intensive business, collateral damage is the #1 IT issue,
    the cost of power is the #2 issue, and network resources are the #3
    issue.  Things like cpu and machines... those are in the noise.  They're
    basically free.

    With a virtual kernel like UML (or our vkernel), the worse that happens
    is that the vkernel itself crashes and reboots in 5 seconds (+ fsck time
    for that particular user).  No other vkernel is effected, no other 
    customer is effected, no other compartmentalized resource is effected.

    Jails are great, no question about it, and there are numerous applications
    which require the performance benefits that running in a jail verses
    an emulated environment provides, but we will never, EVER see jails
    replace UML.  This is particularly true considering the resource being
    put into improving emulated environments.  The overhead for running an
    emulated environment ten years from now is probably going to be a
    fraction of the overhead it is now, as hardware catches up to desire.

						-Matt



More information about the freebsd-hackers mailing list