In thinking about the discussions about REVOCABLE COPY, I have a meta-observation. This is not something that I can substantiate qualitatively.
It appears to me that we have found some essential places (storage allocation, pagers, capserver) where centralization of function is required. How much centralization, and which function, depends on the particular microkernel. Some of this centralization (e.g. storage allocation) seems essential. Some of it is a result of design choices in the respective microkernels. As the degree of necessary centralization rises (and I know that the designs are still evolving), what we are actually achieving is an increasingly monolithic system design in which a fairly arbitrary component (the IPC layer) has been placed in supervisor code and the rest is part of the user-mode system-wide TCB. There may be some debugging advantages in this, but in my opinion there are no fundamental structural advantages. This is my essential *subjective* objection to hierarchy -- it is unavoidable where it emerges from unalterable qualities of the underlying hardware, but undesirable elsewhere. I need to write about this more carefully, as I have promised already to do. I suggest that one good test of any microkernel is how well it allows us to *factor* designs above the kernel, so that dependency on centralized design elements is reduced and interdependency among components is clearly and cleanly structured. The emphasis on microkernel IPC performance was historically important, but it should not be allowed to distract us from the system structuring advantages that are the real motivation for using a microkernel. shap _______________________________________________ L4-hurd mailing list [email protected] http://lists.gnu.org/mailman/listinfo/l4-hurd
