Quote Originally Posted by reiichi View Post
While Darwin does hail from BSD roots, the overlap with actual BSD when it comes to anything graphical is basically nonexistent as Apple's frameworks are nothing like what you'd get out of something more generic. It's fine for dev/cli stuff, but that's about where compatibility ends. But even on that note, the kernels are completely different and even projects like porting a BSD driver over to macOS is a monumental task, like the projects for intel wifi cards.
Sure, which is why I focused on Vulkan for the graphical stuff; you can map Vulkan to Metal (Apple's graphical API) via MoltenVK. (And the kernel is, as you rightly point out, completely separate; Darwin uses Mach as the basis of its kernel, and just takes the userspace and general library APIs from FreeBSD.) Where I meant the BSD similarities were for things like general system APIs; saving off configuration files, dealing with timers, networking APIs, etc. The Windows client likely uses Win32 APIs for that, but the PS4 Orbis system uses standard FreeBSD APIs for that and so the PS4 version likely uses those APIs, and those are available on macOS.

I.e., a translation/port would want to take the DirectX graphics layer (since you can do DirectX -> DXVK -> Vulkan -> MoltenVK -> Metal, and there's no similar GSMX -> Metal translation path that I'm aware of) or write a native Vulkan one (longer-term) to pick up Linux and then use MoltenVK directly, but probably would have less work if it took the PS4 filesystem/networking layers. Because while the kernel drivers for WiFi would be very different between FreeBSD and macOS, the actual networking calls in a userspace application are the same.

So I think we're actually on the same page there.