DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
How the LKP works

The System Call Interface

Normally, native UnixWare 7 processes enter the kernel through a mechanism known to Intel CPUs as a ``call gate''. Linux binaries, however, use a different mechanism known as an ``int80'' software interrupt. This difference provides the means by which UnixWare 7 distinguishes between UNIX and Linux processes.

Native UnixWare 7 processes do not issue int80 interrupts. If the LKP is not installed, the UnixWare 7 kernel terminates any process that makes an int80 call.

If the LKP is installed, the UnixWare 7 kernel traps int80 interrupts, understanding them to be Linux process requests for kernel functions. When a process executes an int80 instruction, the UnixWare 7 kernel marks it as a Linux process and moves it into a Linux working environment. In effect, the kernel switches personality from UnixWare 7 to Linux for that process.

For each int80 software interrupt it receives, the LKP layer of the UnixWare 7 kernel identifies the type of call, and retrieves its arguments. Depending on the system call type, the LKP layer then does one of the following:

When the call is complete, the UnixWare 7 kernel sends the results back to the caller process.

Limitations

The LKP supports most Linux system calls, but cannot support system calls that get or set Linux kernel attributes. The following Linux system calls are not currently supported.

acct adjtimex bdflush capget capset
create_module delete_module get_kernel_syms init_module mount
nfsservctl old_umount old_vm86 pivot_root prctl
query_module quotactl reboot sendfile setdomainname
setfsuid setfsuid16 setfsgid setfsgid16 sethostname
sigqueueinfo swapoff swapon sysfs sysinfo
syslog umount uselib ustat vhangup
vm86        


Next topic: The Device Kernel Interface (lxdevfs)
Previous topic: LKP interfaces

© 2002 Caldera International, Inc. All rights reserved.
UnixWare 7 Release 7.1.3 - 17 October 2002