Reading and trying to understand this:<p>1. The address space for each process has an unprivileged &quot;user-level&quot; segment (DSAPP), and a privileged &quot;OS&quot; segment (DSOS) where the data traditionally associated with the kernel is stored.<p>2. Traditional &quot;system calls&quot; are implemented as ordinary procedures. These procedures switch to the privileged segment, do their stuff, and then switch back to the user segment.<p>3. Since these are ordinary procedures, what&#x27;s to prevent application code from switching to the privileged segment and mucking with the OS guts? Well, the app doesn&#x27;t know which segment is privileged! It can try to read it out of the &quot;system call&quot; procedures, but that memory is execute-only, so that won&#x27;t work.<p>4. Maybe the app determines the privileged segment via guess-and-check! To prevent that, the OS plays shell games, switching which segment is privileged around every time the app guesses wrong.<p>5. Ok, so there aren&#x27;t that many segments: the probability of guessing right is still ~.01% per try. That&#x27;s very unlikely, assuming the app only guesses once. (We hope attackers haven&#x27;t thought of guessing more than once.)<p>This guess-and-check attack would seem to be a deal-breaker, no? This seems like a terribly insecure design.