Ask HN: Books about OS X internals
It happened so that I've got a Macbook as my work laptop and I'm feeling helpless with it. In Linux world I'm considering myself as advanced/expert user, but OSX feels so different. I know that OSX comes from (Free?)BSD family but since I'm 0-level in BSD also this knowledge does not help much. Are there any good books that explain how OSX works internally and what advanced tools there are to work with it? Examples of what I already miss are: strace, ip * (ip netns, ip route), binutils, firewall management
11 comments
[ 3.8 ms ] story [ 37.0 ms ] threadhttp://newosxbook.com/index.php
- `dtruss` can be used in place of `strace` - you may need to modify the SIP settings to allow Dtrace usage though.
- macOS uses llvm which does not require GNU binutils
- The traditional `ifconfig`, `route` etc are available, and scutil for DNS.
- The firewall is pf, which originally comes from OpenBSD. There are other interfaces, but `pfctl` works (and has a man page).
"Given the book's length, I chose to exclude several topics that are well covered in other texts. The TCP/IP stack is an example -- there is no "networking" chapter in the book since the Mac OS X TCP/IP stack is largely a derivative of the FreeBSD stack, which is already well documented. In general, information that is generic across Unix variants and can be found in standard texts is not included in this book."
The author, Amit Singh, was the original author os the MacFuse project.
I wouldn't recommend it now.
If you’re supposed to use the Mac as a tool, I would just start using it as a tool, and Google specific problems/issues if and when I ran into them. You seem to know the basics from your Linux experience, so chances are you’ll be fine that way.
I would think “advanced/expert Linux users” wouldn’t know about strace, the IP stack, etc. either.
That, at least, should get you an idea about the terminology.
Reminds me of the Linux programming books from Wrox press back in the old days.
Note that this is not the application firewall that can be activated in system preferences. It's entirely separate and only accessible from the console or third party software like icefloor.