you are right, OS is same , which is Linux kernerl, But the Ubuntu/CoreOS/Redhat etc distinction are in userspace (i.e tools other than the kernel), and hence you can have coreos running ubuntu/redhat containers. You cant have container specific kernels, drivers, time susbsytem etc. But you can certainly have different distros (redhat, ubuntu etc are different distro, not OS).
CoreOS eases management of container , an immutable & minimal rootfs , backed by tools (etcd, systemd, fleet, flannel) etc that facilitates building large scale systems. For example, etcd is almost a replacement of zookeeper (you can use it for leader election, distributed locks etc). Fleet is a distributed init system. CoreOS does not provide a sceduler, which mesos does. Also coreos is not a resource scheduling system, which mesos is. You have containarize things to run on coreos (currently its docker, i think it will rocket in future). While thats not a mandate for mesos. Neither CoreOS not Mesos gives you `distributed systems`, you can distribute your workload using mesos or coreos (mesos will autoschedule things for you). Generally the word `distributed systems` used to describe things like zookeeper, etcd, cassandra, riak, serf etc, where the members are aware of each other, without any external components. Most of them also uses sound theoretical foundations like paxos, raft etc for attaining different types of consistency, partition tolerance etc. Mesos and CoreOS address orthogonal issues, and they can definitely complement each other. CoreOS eases updating kernel, manageing app deployments due to host OS and app separation. While mesos eases scaling and usage issues by autoscheduling. Mesos can use coreos for its containment layer (docker/rocket), as well as use etcd (from coreos) to do the leader election bit instead of zookeeper (which is pain to run over WAN, pain to dynamically resize etc). But there are major work involve. regards ranjib