> > BTW, we didn't fare very well at all in the top *average*
> > uptimes. Sun OTOH, did. Bugger.
> 
> IMO, this can be plausibly explained by the availability of updated
> code for the two platforms. With Sun they release patches relatively
> infrequently, kernel patches less frequently still..OTOH FreeBSD
> "releases patches" many times each day, encouraging the admin to
> upgrade frequently to scratch the itch of being "up to date".

This is an artifact of FreeBSD kernel modularity not being
what it should be, rather than the (in)frequency of patches,
one way or another.

I personally think I should be able to "hot swap" any kernel
subsystem, including the VM code, without rebooting my machine.

The techniques for implementing this are both obvious and well
known from object oriented programming:

o       Make all structures opaque

o       Use indirect reference to opaque objects

o       Use accessors and mutators, instead of direct
        structure element references

o       Only force a more complex upgrade when an accessor
        or mutator goes away in a provider, or a non-existant
        one starts being referenced by a consumer

o       Unless there are two mutually dependent subsystem
        modules (which is a broken object model, BTW), even
        in the more complex case, you can upgrade by doing
        a series upgrade, and tracking dependencies; this
        would mean externalizing imported and exported
        accessor/mutator references (and object types, if
        a new opaque object type comes into existance),
        but it's still quite doable.  You would also need
        to version by interface instance, not provider of
        interfaces, to ensure that member function argument
        changes could be tracked.

NB:     This last technique is vastly superior to the way
        FreeBSD handles shared libraries, actually, since
        if anything like this changes in a shared library,
        you have to keep two copies of a library around,
        since a FreeBSD shared library can't export two
        different versions of the same interface to a
        library consumer.  Also, since you could similarly
        version system calls, you'd avoid the mount/newmount
        screwup that FreeBSD has had dampening the "build
        world" upgrade process a number of times in the
        past.


                                        Terry Lambert
                                        [EMAIL PROTECTED]
---
Any opinions in this posting are my own and not those of my present
or previous employers.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to