Hi L4 hackers, I'm a newbie in L4 and reading L4 X.2 spec. In IA32 interface, KernelInterface is implemented by 'lock: nop'. That really confuses me. Is it not just a placeholder? Any special side-effect? I can not find any clue in IA32 manuals.
Yours truly, - Louis
On Wed, Jun 16, 2004 at 11:05:41PM +0800, Louis wrote:
Hi L4 hackers, I'm a newbie in L4 and reading L4 X.2 spec. In IA32 interface, KernelInterface is implemented by 'lock: nop'. That really confuses me. Is it not just a placeholder? Any special side-effect? I can not find any clue in IA32 manuals.
lock nop is not a valid instruction. Doing it will cause a trap (and that is how you get the interface page).
So it is not a placeholder.
- g.
[Louis ]
Hi L4 hackers, I'm a newbie in L4 and reading L4 X.2 spec. In IA32 interface, KernelInterface is implemented by 'lock: nop'. That really confuses me. Is it not just a placeholder? Any special side-effect? I can not find any clue in IA32 manuals.
"lock nop" is an illegal instruction that will raise an exception. It is used because we need to somehow transfer control to the kernel, and using "lock nop" is very unlikely to be used by anyone else---really neat if you want to support running unmodified binaries (e.g., Linux binaries) on top of the kernel. That is, other kernels will typically *not* use this as a means to enter the kernel for performing syscalls, etc., and using it for *our* purpose is therefore not likely to cause conflicts.
eSk
l4-hackers@os.inf.tu-dresden.de