3 ms·
It's a bit more complicated. Ideally you'd only need libdyld.dylib and libSystem.B.dylib or so, but... $ echo 'package main; func main() {}' > nop.go $
by rollcat 2y ago
It's a bit more complicated. Ideally you'd only need libdyld.dylib and libSystem.B.dylib or so, but...
$ echo 'package main; func main() {}' > nop.go
$ go build ./nop.go
$ DYLD_PRINT_LIBRARIES=1 ./nop 2>&1 | wc -l
44
OpenBSD & macOS philosophies are often surprisingly aligned in certain ways, but OpenBSD is simple, macOS is comprehensive (and - TBF quite bloated).
- nxobject 2y agoThat's a very fair assessment of Apple – IIRC a lot of early idiosyncratic hardening work in XNU world was done for the launch of the iPhone OS App Store, but it's only been (relatively) recently that they've started long-term initiatives systematically harden macOS on top.
- rollcat 2y agoI think it's also because a desktop is broadly considered a "power tool", you absolutely need it for systems development, and that is forever at odds with "iPhone-level" lockdown/security. Even if you'd start from scratch, you'd need a solid theoretical foundation (e.g. capabilities), and probably build up new metaphors on top. I like what OpenBSD did with pledge&unveil. It gets "the first 80%" of the work done, it's easy for the developer, and invisible to the user.