일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- mininet
- AWS
- 리뷰
- 후기
- DocumentDB
- 재테크
- docker
- 커피머니불리기
- python3
- 하나머니
- VPC
- MongoEngine
- 도커
- 리워드앱
- Container
- namespace
- 포인트앱
- 토스카드
- aws codecommit
- S3
- docker network
- 앱테크
- codecommit
- Python
- built-in
- MongoDB
- 실사용
- network
- clone
- Linux
- Today
- Total
ㅍㅍㅋㄷ
Linux namespace - IPC 본문
IPC namespace
최근 lightweight 한 가상화 플랫폼인 Docker나 Linux container LXC 가 주목을 받고 있는데, 여기에 사용된 기반 기술 중 하나로 namespace라는 것이 있다. namespace 에 대한 설명은 이전 포스팅 참고 ( Linux namespace )
namespace 는 크게 6가지로 분류되는데, 이번 포스팅에는 IPC namespace에 대해 알아볼 예정이다.
1. UTS namespace : hostname 을 변경하고 분할
2. IPC namespace : Inter-process communication. 프로세스간 통신 격리
3. PID namespace : PID (Process ID)를 분할 관리
4. NS namepsace : file system 의 mount 지점을 분할하여 격리
5. NET namespace : Network interface, iptables 등 network 리소스와 관련된 정보를 분할
6. USER namespace : user와 group ID를 분할 격리
IPC 는 프로세스간 서로 데이터를 주고 받는 경로를 뜻한다. Linux 에서 사용되는 대표적인 IPC 방식은 Signal, Socket, pipe 등이 있다.
IPC namespace는 이러한 IPC resource 를 격리 시켜 제공한다.
Clone을 이용한 IPC namespace 구성 방법
IPC namespace 를 구성하는 방법은 매우 간단하다.
clone() 을 호출할때, flag로 CLONE_NEWIPC 만 추가 하면 끝이다.
int child_pid = clone(child_main, child_stack+STACK_SIZE, CLONE_NEWIPC | SIGCHLD, NULL);
다른 flag 와 함께 호출하는 것도 아래와 같이 | 를 이용하여 손쉽게 가능하다.
int child_pid = clone(child_main, child_stack+STACK_SIZE, CLONE_NEWUTS | CLONE_NEWIPC | SIGCHLD, NULL);
참고
- https://blog.jtlebi.fr/2013/12/28/introduction-to-linux-namespaces-part-2-ipc/
'IT > Linux' 카테고리의 다른 글
Linux namespace - NET (4) | 2016.05.10 |
---|---|
Linux namespace - NS (File System) (0) | 2016.05.04 |
Linux namespace - PID (1) | 2015.07.14 |
Linux namespace - UTS (2) | 2015.07.03 |
Linux namespace (0) | 2015.07.02 |