728x90

fork의 의미에 대해서

숫가랏.젓가락.포크. 동사로는 “분기하다”
리눅스에서 fork를 호출한다는 것은 하나의 프로세스에서 자식프로세스가 ‘분기’됨을 의미한다.

새로운 fork 되면 이를 자식프로세스라고 하고 이전의 프로세스는 부모의 프로세스가 된다.(부모자식관계는 항상 나오네)
(1) 부모프로세스는 fork()를 호출해서 새로운 프로세스가ID가 반환되기를 기다린다.
(2) 커널은 부모프로세스의 모든 메모리의 내용을 자식프로세스 메모리 공간에 복사한다.
(3) 특정 커널의 내용이 부모프로세스로부터 자식프로세스로 복사된 후 설정된다.
(4) 자식프로세스는 고유한 ID를 가지며 종속관계를 위해 부모프로세스의 PID(process id)를 가진다.(자식이 부모를 가리킨다)
(5) fork()함수는 자식프로세스ID를 반환
(6) fork함수가 완료되면 두개의 동일한 프로세스가 작업이 시작되는 것.

 

블록체인에서도 하드포크가 나오는데 깃에서도 나오고

계속해서 이름만 다르고 의미적으로는 패턴이 반복되는 듯 하다.

+ Recent posts