I think from what I’ve read that this is the case, but I’ve read some other info that’s made it less clear to me.
On the second part of the question regarding container engines, I’m pretty sure that may also be correct, and it kinda makes me wonder a little about risks of engine lock-in, but that may be a little out of scope.
Containers are practically a linux thing. The specs to run containers are open (Open Container Initiative). That’s why if you aren’t on linux, the most common solution is to virtualise linux or add a layer that translates linux syscalls to those on the host OS (e.g windows subsystem for linux). Once the linux environment exists you have multiple orchestrators (docker, podman, kubernetes, etc.). They all either have their own runtime or use an existing one (runc, crun, youki, …).
I haven’t read the OCI specs, but IINM containers are built upon linux primitives (namespaces, cgroups, and I forget the rest).
This is factually wrong. https://learn.microsoft.com/en-us/virtualization/windowscontainers/about/ documents how to use Microsoft Windows containers.
Woah, that’s news to me. Are these OCI containers?