Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ia32 System call emulation in x86_64

6 views
Skip to first unread message

Somu Peri

unread,
Nov 10, 2009, 11:52:22 AM11/10/09
to
I would really appreciate it if anyone can shed light into how are
system calls for 32 bit binaries handled in a 64 bit kernel (or
atleast give me pointers other than the source code itself). More
precisely I would like to know how and where the kernel decides to use
the 32 bit syscall table rather than 64 bit syscall table.
Thanks
S

David Schwartz

unread,
Nov 10, 2009, 12:09:14 PM11/10/09
to

The kernel doesn't decide. The process can call into either the 32-bit
syscall table or the 64-bit syscall table. Believe it or not, 64-bit
processes can call into the 32-bit syscall table if they want to.
(This can create security vulnerabilities if tracing/filtering tools
assume a 64-bit process must be making 64-bit syscalls!)

32-bit processes, of course, typically only know how to make 32-bit
syscalls. 64-bit processes, assuming they're built by typical
development tools, will call into libraries that make 64-bit syscalls.
(But nothing stops them from making a 32-bit syscall if they want to.)

DS

Somu Peri

unread,
Nov 10, 2009, 4:45:07 PM11/10/09
to

How does the process decide which table to call into? More importantly
how does it tell the kernel which table to use?
Thanks
S

0 new messages