2016-01-15 2 views
21

Recentemente ho iniziato ad apprendere la finestra mobile e sembra che la maggior parte del lavoro pesante venga fatto dal kernel linux, usando namespace e cgroups.differenza tra cgroups e namespace

Un paio di cose che mi sto trovando confondendo sono:

  1. Qual è la differenza tra uno spazio dei nomi e un cgroup? Quali sono i diversi casi di utilizzo a cui si rivolgono?

  2. Cosa ha implementato questa finestra mobile per ottenere popolarità?

  3. Mi piacerebbe conoscere l'interno di queste funzionalità e il modo in cui sono implementate.

+0

Vedi https://en.wikipedia.org/wiki/Cgroups e https://en.wikipedia.org/wiki/Cgroups#Namespace_isolation – gavv

risposta

36

I collegamenti adeguati per queste due nozioni sono state fissate in PR 14307:

Sotto il cofano, Docker è costruito sui seguenti componenti:

I cgroups e namespaces capacità di il kernel di Linux

Wit h:

  • cgroup: Gruppi di controllo forniscono un meccanismo per l'aggregazione/set di partizionamento di compiti, e tutti i loro futuri figli, in gruppi gerarchici con comportamento specializzata.
  • namespace: avvolge una risorsa di sistema globale in un'astrazione che fa apparire ai processi all'interno dello spazio dei nomi che hanno la propria istanza isolata della risorsa globale.

In breve:

  • Cgroups = limiti quanto si può usare;
  • namespace = limita ciò che si può vedere (e quindi l'uso)

vedere di più al "Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic" di Jérôme Petazzoni.

Cgroups coinvolgono misurazione delle risorse e limitando:

  • memoria
  • CPU
  • blocco I/O
  • rete

namespace fornire processi con la propria visione del sistema

Mul namespace tiple: