[coyotos-dev] Contrasting Coyotos, EROS & Keykos
Jonathan S. Shapiro
shap at eros-os.org
Sat Jan 22 00:44:38 EST 2005
On Fri, 2005-01-21 at 18:25 -0800, Norman Hardy wrote:
> That's sick. (a compliment) We never tried that.
> It might have caused some slow paths to be taken in the kernel but
> I can't think of any. It might have provoked some bugs, but not in
> the kernel design, I think.
It would have been a massive slow path. It requires that the capability
registers node be simultaneously able to act with PrepCode==segment and
also with PrepCode=DomKeyRegs. In KeyKOS, a node was only permitted to
have one such role at a time. Bringing incoming capabilities into the
key registers node would have induced activity in the depend logic which
would in turn have invalidated portions of the address space
After receipt, the process would attempt to access its own memory,
discover that the node was not prepared as a segment node, and endeavour
to do so. This would deprepare the node as a DomKeyRegs node, which
would cause a hazard bit to be set in the DIB.
Resumption of the process (now attempting again to execute the load or
store instruction) would discover that the DomKeyRegs node was
unaccounted for and attempt to re-prepare it under a DomKeysReg prep
code (which would invalidate the memory map again).
Repeat until done....
Since I have never looked at the KeyKOS code, I can't resist the
temptation: did I miss anything?
More information about the coyotos-dev