And as a result we will have to work around this crapshow in macOS, and Linux requires OS level paging config, and both of course can still OOM kill.
But what I find interesting is that Linux can be configured to behave honestly via vm.overcommit_memory = 2 (strict, meaning correct, accounting). So when a JVM reserves a huge heap, and then forks it because muh, never heard of threads, it will get a failure if there is insufficient actual reservable virtual memory to accommodate what has been requested.