Re: map of system call to tar ball file?
Re: map of system call to tar ball file?
- Subject: Re: map of system call to tar ball file?
- From: Terry Lambert <email@hidden>
- Date: Mon, 13 Oct 2008 18:24:12 -0700
On Oct 13, 2008, at 2:20 PM, Todd Heberlein wrote:
OK, I found open() in Libc-498.1.1, but it just calls
__open_nocancel().
Any idea where I can find this function? And back to the original
question, is there an easy way to find where these functions might
be so I don't have to ask?
You could buy Amit Singh's "Mac OS X Internals" book and read it...
In Mac OS X, the system call API is at the top of libSystem. This
differs frm many other UNIX implementations, which place their system
call API at the user/kernel boundary, without intermediation by a
shared library. The purpose of this is to allow modification of
kernel interfaces and changes to the contract between kernel and user
space, while maintaining binary compatibility with historical
applications.
LibSystem is a pseduo-project which aggregates a number of library
projects into a single library called libSystem (currently, /usr/lib/
libSystem.B.dylib). It gets its pieces from a large number of places,
which are documented in the pseduo-project itself, and which include,
but are not limited to, libsyscall, libc, libnotify, libm, and others.
Section 2 (manual page section) calls are implemented in either Libc,
if there is logic or compatibility code required, or they are
implemented in libsyscall. The libsyscall implementation itself is
another pseduo-project which utilizs souzrce code from the xnu project
in the libsyscall subdirectory, which in turn utilizes code and build
products from building xnu itself (xnu is the kernel project).
For libsyscall, the normal approach is to use perl to post-process the
file xnu/bsd/kern/syscalls.master in order to generate system call
stub functions for those system calls which do not have wrapper
functions in Libc.
-- Terry
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden