OS X BSD System Calls Reference
dyjakan.sigsegv.pl
OS X BSD System Calls Reference
1–10 of 27 posts
Re: OS X BSD System Calls Reference
#2Re: OS X BSD System Calls Reference
#3Note that the BSD system calls do not cover the full functionality of OSX, and the mach interfaces are necessary. For example, sleep() needs to use the Mach message interfaces.
Re: OS X BSD System Calls Reference
#4This makes me wonder, what would this look like for plan9? Just FS-related syscalls, and that's it? Curious...
Re: OS X BSD System Calls Reference
#5Seeing all of the syscalls in one place really puts things in perspective. The #ifdef markers are a nice touch, too. This makes me wonder, what would this look like for plan9? Just FS-related syscalls, and that's it? Curious...
Re: OS X BSD System Calls Reference
#6Note that the BSD system calls do not cover the full functionality of OSX, and the mach interfaces are necessary. For example, sleep() needs to use the Mach message interfaces.
Embrace and extend? How is this different to Android vs. the Linux kernel?
NeXTSTEP became the basis for OS X. It meets the Single UNIX Specification [2].
[1] https://en.wikipedia.org/wiki/OS_X#History
[2] https://en.wikipedia.org/wiki/Single_UNIX_Specification#OS_X
Re: OS X BSD System Calls Reference
#7Earlier quoted context omitted.
Embrace and extend? How is this different to Android vs. the Linux kernel?
"The kernel of NeXTSTEP is based upon the Mach kernel, which was originally developed at Carnegie Mellon University, with additional kernel layers and low-level user space code derived from select parts of BSD." [1] NeXTSTEP became the basis for OS X. It meets the Single UNIX Specification [2]. [1] https://en.wikipedia.org/wiki/OS_X#History [2] https://en.wikipedia.org/wiki/Single_UNIX_Specification#OS_X
Both Android and OSX are listed under https://en.wikipedia.org/wiki/POSIX#Mostly_POSIX-compliant
What I would like to know is, is there any fundamental difference in how the two have derived from their predecessors, ie. Android kernel from the Linux kernel and OSX's XNU kernel from the NexTSTEP/BSD kernels, specifically in terms of compatibility concerns.
(Edit reply to below: Yes but my understanding is that the Android kernel changed fundamental system calls, such as those used for memory allocation, forcing everything userland to be rewritten. Is the 'two systems' of XNU you describe not, therefore, similar in its effect on compatibility?)
Re: OS X BSD System Calls Reference
#8Re: OS X BSD System Calls Reference
#9Note that the BSD system calls do not cover the full functionality of OSX, and the mach interfaces are necessary. For example, sleep() needs to use the Mach message interfaces.
Re: OS X BSD System Calls Reference
#10Earlier quoted context omitted.
"The kernel of NeXTSTEP is based upon the Mach kernel, which was originally developed at Carnegie Mellon University, with additional kernel layers and low-level user space code derived from select parts of BSD." [1] NeXTSTEP became the basis for OS X. It meets the Single UNIX Specification [2]. [1] https://en.wikipedia.org/wiki/OS_X#History [2] https://en.wikipedia.org/wiki/Single_UNIX_Specification#OS_X
That doesn't answer my question. Both Android and OSX are listed under https://en.wikipedia.org/wiki/POSIX#Mostly_POSIX-compliant What I would like to know is, is there any fundamental difference in how the two have derived from their predecessors, ie. Android kernel from the Linux kernel and OSX's XNU kernel from the NexTSTEP/BSD kernels, specifically in terms of compatibility concerns. (Edit reply to below: Yes but…
The OSX kernel has two, due to it's bolt-on nature. Mach message passing and BSD system calls. As far as I am aware, the BSD system calls is an emulation layer, and is not entirely complete.
As a user, you don't care; the quirks of both systems are papered over by libc, which does the appropriate syscall dance to create a posix compliant system. (For an example of a Linux quirk, 'exit()' on Linux doesn't actually exit the process, it only exits the current thread).