LXC based on cgroups
Overview
LXC was initially developed by IBM, as part of a collaboration between several parties looking to add namespaces to the kernel. It provides operating system-level virtualization through a virtual environment that has its own process and network space, instead of creating a full-fledged virtual machine.  LXC relies on the Linux kernel cgroups functionality that was released in version 2.6.24. It also relies on other kinds of namespace isolation functionality, which were developed and integrated into the mainline Linux kernel.