NAT 개념 NAT 는 Network Address Translation 의 약자로, 네트워크 주소 변환을 의미한다. IP 패킷에 있는 출발지 및 목적지의 IP 주소와 TCP/UDP 포트 숫자 등을 바꿔 재기록하면서 네트워크 트래픽을 주고 받도록 하는 기술이다. 동작 원리 출처: Network address translation [wiki...
가상머신과 도커의 차이
가상머신과 도커의 차이 하나의 물리 서버를 효율적으로 사용하기 위해 ‘서버 가상화 기술’이 발전했다. 가상머신과 컨테이너는 모두 서버 가상화 기술을 적용한 것이다. 하지만 어떤 가상화 소프트웨어를 사용하는지, 어떤 시스템 레벨을 가상화하는지에 차이가 존재한다. 가상화 가상화는 컴퓨터에서 하나의 물리 하드웨어 시스템에서 여러 가상 시스템을 실행...
[42Seoul] pipex (3) 구현 과정
회고 어서와, 멀티 프로세스는 처음이지? 그동안 수행했던 과제들은 모두 하나의 프로세스를 사용했다. 이번 과제는 처음으로 멀티 프로세스를 구현하고, 프로세스 간 통신(IPC)을 위해 파이프를 사용했다. 처음 보는 개념이 많다보니 이해하는데 시간이 꽤 걸렸다. 게다가 멀티 프로세스는 디버깅을 하는 것이 어려워서 디버깅에도 시간을 많이 썼다. ...
[42Seoul] pipex (2) 허용 함수 정리 : waitpid
waitpid #include <sys/wait.h> pid_t waitpid(pid_t pid, int *status, int options); 인자로 넘기는 pid 자식 프로세스가 끝나기를 기다리는 함수이다. status 변수에는 자식 프로세스가 종료할 때 보내는 시그널 또는 exit code 를 저장한다. options 는 ...
[42Seoul] pipex (2) 허용 함수 정리 : wait
wait #include <sys/wait.h> pid_t wait(int *status); 자식 프로세스가 끝나기를 기다리는 함수이다. status 변수에는 자식 프로세스가 종료할 때 보내는 시그널 또는 exit code 를 저장한다. 반환값 자식 프로세스가 멈추거나 종료되면 종료된 자식 프로세스의 프로세스 아이디(pid...
[42Seoul] pipex (2) 허용 함수 정리 : unlink
unlink #include <unistd.h> int unlink(const char *file); unlink 함수는 파일을 삭제하는 함수이다. 소프트 링크, 하드 링크 모두 적용된다. 링크를 지우면 링크 개수를 1개 감소시킨다. 만약, 소프트 링크의 원본 파일을 지우면 소프트 링크는 더 이상 사용할 수 없게 된다. 반환값 ...
[42Seoul] pipex (2) 허용 함수 정리 : pipe
pipe #include <unistd.h> int pipe(int fildes[2]); 크기가 2인 int 배열에 한 쪽에서는 데이터를 쓰고, 다른 한 쪽에서는 데이터를 읽을 수 있는 데이터 통신 파일 디스크립터를 만드는 함수이다. 첫 번째 원소인 fildes[0] 는 파이프의 read end 이고, 두 번째 원소인 fildes[...
[42Seoul] pipex (2) 허용 함수 정리 : fork
fork #include <unistd.h> pid_t fork(void); fork 함수는 자식 프로세스를 생성하는 함수이다. 반환값 부모 프로세스에서는 자식 프로세스의 프로세스 아이디(pid)를 받는다. 자식 프로세스에서는 0을 받는다. 오류 발생 시 -1 을 받는다. 예시 코드 #include <uni...
[42Seoul] pipex (2) 허용 함수 정리 : execve
execve #include <unistd.h> int execve(const char *file, char *const argv[], char *const envp[]); execve 함수는 실행하고자 하는 file 에 인자로 argv 와 환경변수인 evnp 를 전달해서 file 을 실행하여 새로운 프로세스를 생성하는 함수이다. ...
[42Seoul] pipex (2) 허용 함수 정리 : dup2
dup2 #include <unistd.h> int dup2(int src_fildes, int dest_fildes); dup2 함수는 첫 번째 매개변수로 복사하고자 하는 파일 디스크립터(src_fildes)를 두 번째 매개변수로 지정한 파일 디스크립터(dest_fildes)에 복사한다. dup2 함수는 특정 파일 디스크립터를 지정...