Syntax highlighting of SoftwareZones

= Requirements =
 * A container must have some limit on the amount of memory it may use.  
 * The overhead in storage, processing time, and dedicated lines of code to the greater kernel should be minimized
 * Should allow runtime flexibility in size and number of containers
  * We should be able to change limits easily
  * We should be able to create and destroy them easily to satisfy the needs of application containers (not all containers are long-lived)
 * Memory which is private to the container (say, anonymous memory) must be strictly accounted to that container
 * Memory for files may be accounted to either the container or a shared pool
  * Some care should be taken to ensure that a container may not abuse this shared pool
  * It is preferable to actually determine when sharing is "actually" occurring, but approximate metrics should be OK.  This requirement is very secondary to any overhead which it might exhibit.

== Software Zones ==
Use the existing Linux zone model to create sets of contiguous memory.  Each of these is a subset of a current 'struct zone'.  Each container gets one or more of these zones from which to allocate its pages.  Pages shared between containers will be placed in centralized, "shared" zones.

== Static Page Ownership ==



|| || Software Zones || Static Page Ownership || Partial Page Ownership ||
|| enforces memory limits || <bgcolor="green"> || <bgcolor="green"> ||<bgcolor="green"> ||