text: The following timeline highlights the major shifts in the development of container to date (see 
  Figure 2-9): 
  
  (cid:2) 2000 FreeBSD Jails: FreeBSD Jails enabled Computer systems to be partitioned into 
  multiple servers that were independent subsystems named Jail with unique IP address. 
  
  (cid:2) 2001 Linux Vserver: Similar to FreeBSD Jails, Linux also developed a feature for operating 
  system virtualization where a file system, memory, and network can be shared among 
  independent systems. 
  
  (cid:2) 2004 Solaris Containers: Solaris Containers combined system resource controls and 
  
  boundary separation that was provided by zones to take advantage of features, such as 
  snapshots and cloning from ZFS. 
  
  (cid:2) 2006 Google process containers: Process Containers was designed for limiting, 
  
  accounting, and isolating resource usage (CPU, memory, disk I/O, and network) of a 
  collection of processes. Later, this was renamed as Control Groups (cgroups) and merged 
  to Linux kernel 2.6.24. 
  
  (cid:2) 2008 LXC evolved (Linux Container Group): Linux Containers (LXC) was the first, most 
  complete implementation of Linux container manager. It was implemented in 2008 by 
  using cgroups and Linux namespaces. 