fork구현

kyh1026의 이미지

안녕하세요~ ^^

fork에 +a를 하여 시스템콜을 구현하려고 합니다.

그래서 시스템콜 등록하는 방법대로 등록을 하였고

구현은 fork와 똑같이 하되 +a만 중간에 넣었습니다.

그런데 자꾸 자식 프로세스가 생성되자마자 죽는 현상이 일어나는데 이를 어떻게 해결해야될지 모르겠습니다.

라이브러리를 안거쳐서 그런 현상이 일어나는지 알아보려고

원래 커널의 코드로 작성된 sys_fork를 syscall() 매크로를 이용하여 호출을 해보았으나

자식프로세스가 생성되면서 잘 동작 하더군요

저도 sys_fork와 똑같이 sys_ 함수를 만들고 전달하는 인자를 똑같이하여

그 안에서 do_fork와 똑같은 일을 하는 함수를 기능을 추가하고 만들어서 콜 해주는 방식으로 구현을 했습니다.

호출하는것도 syscall()매크로를 이용하여 호출을 하였고요

do_exit()에 printk를 찍어서 확인한 결과 자식프로세스가 생성되자마자 죽습니다.

어째서 이런 현상이 일어나는건지 모르겠습니다.