&gt;&gt; No code in the OS needs access to the user code or data cache<p>This is not true for the data. How do you pass any data structures outside CPU registers then, say the path to a file to open. Normally it&#x27;s a char*[0] (indeed passed in a register) but then the OS actually reads the data off the process memory (L1 data cache usually)<p>[0]: <a href="http:&#x2F;&#x2F;linux.die.net&#x2F;man&#x2F;3&#x2F;open" rel="nofollow">http:&#x2F;&#x2F;linux.die.net&#x2F;man&#x2F;3&#x2F;open</a>