Re: [RFC] Wine speedup through kernel module

From: Albert D. Cahalan (acahalan@cs.uml.edu)
Date: Mon Sep 11 2000 - 10:43:53 EST


David Howells writes:
> David Woodhouse <dwmw2@infradead.org> wrote:

>> We already handle doing iBCS and Solaris syscalls by trapping int 7 and
>> int 0x27 insns and using a dedicated syscall handler - it doesn't go
>> anywhere near the original Linux syscall table.
>
> I was planning on having using a Linux syscall rather than an
> interrupt, since the int ties it to i386.

The system call is needed of course, since that lets Linux executables
(perhaps ones being ported from Win32) use the new features.

You might as well also handle int 0x2e with the same code.

>> What method does Win32 use to execute syscalls? Would it be
>> useful to trap that directly?
>
> It does and it doesn't is the answer I think. NT/Win2000 certainly
> does not... kernel32.dll renders the Win32 calls into "Native API"
> calls, which are defined in ntdll.dll. These use "int 0x2e" to obtain
> access to the kernel, but are mostly undocumented (typically).

See www.sysinternals.com for some native API documentation.
In addition to the web site, there are articles and a book.

The native API is generally better for Linux, because it is smaller
and less bloated than Win32. Putting Win32 in the kernel is almost
like putting libc in the kernel. You can make exceptions for calls
that need the greatest performance and/or don't translate well.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Sep 15 2000 - 21:00:15 EST