Sharp cheddar (Tillamook) at bedtime yields weird dreams

Discussion in 'Mac Programming' started by Sydde, Nov 30, 2010.

  1. Sydde macrumors 68020


    Aug 17, 2009
    Velvet Green
    This is just crazed personal musings, hence the odd subject. Sorry about that. You have been warned.

    From time to time, I will look in on, to see what might be going on with the hurd project. Interesting that this, the progenitor of Linuces, as it were, has been more than a quarter-century in the making and, as of now, is barely stable, negligibly useful, on the verge of being left behind for dead.

    Yet the basic concept seems sound, if one is willing to sacrifice maximum performance for flexibility and security. But the sacrifice has been a painful choice, perhaps leaving contemporary OSes somewhat wanting in these areas for the sake of pleasing/impressing the user.

    So, my thought was, what if the hurd project were to place an active object environment at the bedrock, as the primary means of reaching the kernel, as the basic structure of the OS. It seemed to me that some of the limitations of the microkernel (primarily, the cost of daemon IPC and its context switches) might be overcome through the use of an object model along the general lines of Cocoa (meaning as a part of OS architecture, rather than via the compiler, such as with C++).

    How, then, does the "math" work out? If objects rely on "opaque references" instead of plain pointers ("opaque" in the sense that the table-lookup scheme is not defined across implementations, possibly even within one implementation), but service methods can operate mostly within the space of a process (perhaps small context adjustments), does it seem likely that the balance might work out in favor of an object-based architecture?

    Cocoa is obviously a fairly thin layer on top of Darwin+Carbon, It would be interesting to see how well a system would perform with the paradigm reversed:
    • Live, run-time replacement/testing/upgrade of what are now perceived as system-level components.
    • Method selectors subjected to privilege testing, selectively (surgical application of security measures).
    • Classes offer a potentially lower-impact means of providing services than daemons+IPC.
    • Similarly, integration, to construct large, more complex application environments, is supported inherently by the object architecture.
    • Sub-classing the basic application object could allow processes to have finer control of things like scheduling and page-outs - meaning much of those functions can also live outside kernel (privileged) space.
    • Traditional Unix-style applications could be supported by embedding them in an application object.

    I think I will be more careful in future as to when I am eating the sharp cheese.
  2. sikkinixx macrumors 68020


    Jul 10, 2005
    Rocketing through the sky!
    What you just wrote was far over my head.

    However, Tillamook sharp cheddar is indeed a fine cheese. I think I will go have some myself. Cheers to cheese.
  3. Catfish_Man macrumors 68030


    Sep 13, 2001
    Portland, OR
    Have you seen Microsoft's "Singularity" research project? It seems microkernels get a lot more practical when you can run everything in ring 0 in a single address space. Not having to do TLB flushes, etc... cuts IPC time a lot.
  4. autorelease macrumors regular

    Oct 13, 2008
    Achewood, CA
    Made me think of the Smalltalk environment, as well as Genera, the OS for Lisp machines:

    Everything was written in Lisp, all object-oriented, and you could modify any part of the OS at runtime. The OS and the development environment were essentially the same.
  5. Sydde thread starter macrumors 68020


    Aug 17, 2009
    Velvet Green
    The idea behind the Hurd is to be able to modify or replace system components without shutting down or rebooting. And, of course, one of the ideas behind Objective-C, so to speak, was Smalltalk.

Share This Page