{{위키데이터 속성 추적}}
{{소문자}}
{{소프트웨어 정보
| name                   = cgroups
| title                  = cgroups
| logo                   = <!-- Image name is enough -->
| logo caption           =
| logo_size              =
| logo_alt               =
| screenshot             = <!-- Image name is enough -->
| caption                =
| screenshot_size        =
| screenshot_alt         =
| collapsible            =
| author                 = Paul Menage, Rohit Seth
| developer              = [[kernel.org]] (Tejun Heo et&nbsp;al.), [[freedesktop.org]]
| released               = 2007년
| discontinued           =
| latest release version =
| latest release date    = 
| latest preview version =
| latest preview date    = 
| frequently updated     = 
| status                 =
| programming language   = [[C (프로그래밍 언어)|C]]
| operating system       = [[리눅스]]
| platform               =
| size                   =
| language               =
| language count         = <!-- DO NOT include this parameter unless you know what it does -->
| language footnote      =
| genre                  = [[시스템 소프트웨어]]
| license                = [[GNU GPL|GPL]] 및 [[GNU LGPL|LGPL]]
| website                = {{URL|https://www.kernel.org/doc/Documentation/cgroup-v1/}} and {{URL|http://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/}}
}}
'''cgroups'''(control groups의 약자)는 [[프로세스]]들의 [[시스템 자원|자원의 사용]](CPU, 메모리, 디스크 입출력, 네트워크 등)을 제한하고 격리시키는 [[리눅스 커널]] 기능이다.

[[구글]]의 엔지니어들이 2006년에 이 기능에 대한 작업에 착수하였고 당시 이름은 "프로세스 컨테이너"(process container)였다.<ref>{{뉴스 인용 |date=29 May 2007 |author= Jonathan Corbet |title= Process containers |publisher= LWN.net |url= //lwn.net/Articles/236038/ }}</ref> 2007년 말에 리눅스 커널 문맥에서 "컨테이너"라는 용어의 의미가 여러 개이므로 혼란을 방지하기 위해 이름이 "컨트롤 그룹"(control groups)으로 변경되었으며, 컨트롤 그룹 기능은 2008년 1월에 출시된 커널 버전 2.6.24에 [[리눅스 커널|리눅스 커널 메인라인]]으로 병합되었다.<ref name="lwn-notes">{{뉴스 인용 |date=29 October 2007 |author=Jonathan Corbet |title=Notes from a container |publisher=[[LWN.net]] |url=//lwn.net/Articles/256389/ | accessdate=2015-04-14 | quote=The original 'containers' name was considered to be too generic – this code is an important part of a container solution, but it's far from the whole thing. So containers have now been renamed 'control groups' (or 'cgroups') and merged for 2.6.24.}}</ref> 그 뒤로 개발자들은 수많은 새로운 기능과 컨트롤러들을 추가해오고 있는데, 이를테면 [[kernfs]] 지원,<ref>{{웹 인용 |url=https://lkml.org/lkml/2014/1/28/502 |title=cgroup: convert to kernfs |date=2014-01-28}}</ref> [[방화벽]],<ref>{{웹 인용|url=http://www.spinics.net/lists/netdev/msg264727.html |title=netfilter: x_tables: lightweight process control group matching |date=2014-04-23 |url-status=dead |archiveurl=https://web.archive.org/web/20140424095421/http://www.spinics.net/lists/netdev/msg264727.html |archivedate=24 April 2014 |df=dmy }}</ref> 통합된 계층구조를 포함한다.<ref>{{웹 인용 |url=https://lkml.org/lkml/2014/3/13/503 |title=cgroup: prepare for the default unified hierarchy |date=2014-03-13}}</ref>

== 채택 ==
다양한 프로젝트들이 cgroups를 기반으로 사용하고 있으며, 여기에는 [[코어OS]], [[도커 (소프트웨어)|도커]], [[아파치 하둡|하둡]], [[Jelastic]], [[Kubernetes]],<ref name="mesosphere">{{웹 인용 |url=https://mesosphere.com/blog/2014/07/10/mesosphere-announces-kubernetes-on-mesos/ |title=Mesosphere to Bring Google’s Kubernetes to Mesos |publisher=Mesosphere.io |date=2014-07-10 |accessdate=2014-07-13 |보존url=https://web.archive.org/web/20150906165229/https://mesosphere.com/blog/2014/07/10/mesosphere-announces-kubernetes-on-mesos/ |보존날짜=2015-09-06 |url-status=dead }}</ref> [[lmctfy]] (Let Me Contain That For You), [[LXC]] (리눅스 컨테이너/LinuX Containers), systemd, [[Apache Mesos|Mesos]], Mesosphere,<ref name="mesosphere" /> [[HTCondor]] 등이 있으며 메인라인 리눅스 커널에 채택된지 3년이 지난 2010년 11월에 [[레드햇 엔터프라이즈 리눅스]] 6과 같은 주요 리눅스 배포판에도 또한 채택되었다.<ref>https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/pdf/6.0_Release_Notes/Red_Hat_Enterprise_Linux-6-6.0_Release_Notes-en-US.pdf</ref>

== 같이 보기 ==
* [[운영 체제 수준 가상화]]
* [[프로세스 그룹]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* [https://www.kernel.org/doc/Documentation/cgroup-v2.txt Linux kernel documentation on cgroups]
* [http://www.haifux.org/lectures/299/netLec7.pdf Linux kernel Namespaces and cgroups by Rami Rosen]
* [http://www.netdevconf.org/1.1/proceedings/slides/rosen-namespaces-cgroups-lxc.pdf Namespaces and cgroups, the basis of Linux containers (including cgroups v2)], slides of a talk by Rami Rosen, Netdev 1.1, Seville, Spain, 2016
* [//lwn.net/Articles/679786 Understanding the new control groups API], [[LWN.net]], by Rami Rosen, March 2016
* [https://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/43438.pdf Large-scale cluster management at Google with Borg], April 2015, by Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune and John Wilkes
* [https://msdn.microsoft.com/en-us/library/windows/desktop/ms684161(v=vs.85).aspx Job Objects], similar feature on Windows

{{가상화 소프트웨어}}
{{리눅스 커널}}

[[분류:리눅스 커널 인터페이스]]
[[분류:리눅스 커널 특징]]
[[분류:운영 체제 보안]]