Howard Oakley writes about how macOS works, covering Apple Silicon, virtualisation, security checks, Time Machine and system behaviour.
Commenters call it one of the few places with worthwhile writing on Apple hardware, citing a scheduler insight and Time Machine snapshot details.
This is a very interesting conversation, thank you!
A couple of minor quibbles: FAT32 is not a compatible extension of the older FAT; ext2fs is not a compatible implementation of any old Unix filesystem; having less features does not always make software worse; the BSD LFS research report is from 01993 rather than 01988 https://www.usenix.org/legacy/publications/library/proceedings/sd93/seltzer.pdf (it credits Ousterhout with introducing the idea of LFSs in 01989); several of the other filesystems I listed that I don't think are significantly influenced by HPFS have not in fact disappeared; and Windows 95 does not, to my knowledge, support extended attributes on existing filesystems.
It's probably worth mentioning that, as you imply, ext2fs did eventually add both extended attributes and B-tree directories, just after being quasi-renamed ext4fs. And I do agree that ext2fs was initially intended to be as boring as possible (without suffering the annoyances of the Minix filesystem) rather than innovative. It just failed to be compatible with BSD FFS.
It's a good point that renaming and hardlinking doesn't automatically take into account such extended attributes implemented as a library; that's a plausible reason to implement them in the filesystem. But implementing them in the filesystem doesn't actually help you with respect to copying, unless copying files is an operation the filesystem supports intrinsically, like "reflinks" on some Linux filesystems such as XFS. You…
No :) but that's a close approximation.
The editor is a native macOS window that's kind of like list view in a file manager, or a spreadsheet, or a little folder...depending on your point of view. Plus some menu commands and keyboard equivalents.
The items in each list are macOS "bookmarks" which are a type of authorised/verified/secure alias (in fact, they're still called aliases in the code) that have been around for about 10–15 years. They contain the path plus a bunch more info. As macOS becomes more locked-down the recommended way of accessing files is to retrieve these bookmarks through the normal layers of system permissions and security. Without the bookmarks, for example just using plain text paths, I would not be able to show the full images in Quick Look or easily launch the list items. A key benefit is that the bookmark will still resolve if the file is moved somewhere else on the same disk, or even to a different volume!
Here's more info on file bookmarks: https://eclecticlight.co/2020/05/21/bookmarks-a-type-of-alias-their-access-and-use/
I store the items as JSON in the saved file, simply because I prefer it to XML (which is the main/default option). I wanted the files to still be human readable and editable to a degree.
The files are launched using the default app specified by that file, so it can be changed on a per-file basis. Individual images might open in an image editor, image viewer, app to run OCR, script to run OCR on it, etc.
In the past, I've heard recommendations not to use remote Time Machine over SMB directly, but rather to create an APFS disk image on a remote server and then backup to that as if its an external hard drive.
Supposedly, doing that eliminates a lot of the flakiness specific to SMB Time Machine, and while I haven't tested it personally, I have used disk images over SMB on macOS Tahoe recently, and they actually work great (other than the normal underlying annoyances of SMB that everyone with a NAS is mostly used to at this point).
The new ASIF format for disk images added in Tahoe actually works very well for this sort of thing, and gives you the benefits of sparse bundle disk images without requiring specific support for them on the underlying file system.[1][2] As long as you're on a file system that supports sparse files (I think pretty much every currently used file system except FAT32, exFAT, and very old implementations of HFS+), you get almost native performance out of the disk image now. (Although, again, that's just fixing the disk image overhead, you still have to work around the usual SMB weirdness unless you can get another remote file system protocol working.)
[1]: https://eclecticlight.co/2025/06/12/macos-tahoe-brings-a-new-disk-image-format/
[2]: https://eclecticlight.co/2025/09/17/should-you-use-tahoes-new-asif-disk-images/
Oh man. I used PostScript a ton when I worked at hp 20 years ago. It's actually a pretty great language, like lisp/scheme but I found it to be more approachable somehow. Maybe because it's postfix instead of prefix?
https://liucs.net/cs101s13/fixity.html
Anyway, it had several fatal flaws. I don't think it could handle images natively, so instead it encoded them as vectors and those files took up MB. It probably just needed a metaphor like iframe.
I remember when Apple switched to the PDF engine in Quartz in preparation for OS X in the late 90s, I thought it was a mistake then. The QuickDraw it was replacing was actually quite good, in some ways the epitome of C-style rendering. And Cocoa was refreshing at first (it handled stuff like palettes and gamma in a data-driven way instead of through leaky abstractions) but without a way to transition off QuickDraw, it felt like more busywork that had to be done just to keep up.
https://eclecticlight.co/2024/06/01/pdf-on-macs-the-rise-and-fall-of-preview/
Apple seems to have lost its academic roots, and suffers for it now. Or I should say, its customers suffer while it grosses almost half a trillion dollars per year. At least with vibe coding we can just whip up a Preview app in an afternoon, so maybe none of this matters anymore.
> Is netatalk the key thing here that makes it Time Machine compatible? The rest seems like standard DIY home server stuff.
The last update to AFP shipped with Mac OS X Mountain Lion in 2012 [1]. Nobody should be using AFP in 2023, unless you have no other choice.
While you can use Time Machine to backup to an SMB share, ideally you want to use an APFS volume to get all of the benefits, especially if you're concerned about data integrity.
You can read about using APFS network shares for Time Machine at The Eclectic Light Company [2], a Mac-focused blog/website by Howard Oakley.
If you're interested in the details of how Time Machine works, nobody I'm aware of has written more about its details than he has [3].
He's written a slew of useful macOS utilities, including T2M2 for Time Machine [4].
[1]: https://en.wikipedia.org/wiki/Apple_Filing_Protocol
[2]: https://eclecticlight.co/2021/04/16/time-machine-to-apfs-using-a-network-share/
[3]: https://eclecticlight.co/?s=time+machine
[4]: https://eclecticlight.co/2021/09/29/going-beyond-t2m2-with-mints-grokking-time-machine-to-apfs/
You can boot regular macOS directly to a root terminal in “Single User Mode”. This was easier on Intel macs of yore but is also possible on M1+
Below content from https://eclecticlight.co/2020/11/28/startup-modes-for-m1-macs/#comment-56556
Launch 1 True Recovery, open Terminal, then run “bputil -a” (without the quotes) to downgrade system security and allow for more boot arguments. You might need to restart after this step.
Then, run [nvram boot-args=”-s”] (without the square brackets). Restart to launch Single User Mode.
Once in Single User Mode, run these commands (in the following order) to mount the root volume group:
1. mount -P 1
2. /usr/libexec/init_data_protection
3. mount -P 2
Future restarts will always launch Single User Mode first. To stop launching Single User Mode, run [nvram boot-args=“”] (without the square brackets).
To restore your system to full security, run “bputil -f” (without the quotes). If you choose to run that command in macOS, prefix “sudo” to the beginning.