윈도우 비스타의 Super Fetch 기능을 리눅스에서 구현 하려면...?

asiris2000의 이미지

Windows Vista 에 있는 Super Fetch 기능을 리눅스로 옮기는 프로젝트를 진행하고 있습니다.

진행 중인 커널의 버전은 2.6.18.1버전이구요

커널 쪽은 처음이라 혼자 열심히 공부 중입니다.

프로그램을 메모리로 로딩할 때는

fork() 계열의 커널 함수인 do_fork()로 프로그램의 메모리를 할당받고

exec() 계열의 커널 함수인 do_execve() 함수를 이용해서 프로그램을 로딩 후에

로딩 된 프로세스를 러닝 상태가 아니라 대기 상태로 둔다면 되지 않을까라고

생각하고 공부를 해보고 있는데.. do_fork()나 do_execve() 커널 함수가 여기저기 많이 얽히고 섥혀 있어서 쉽지가 않네요 ;;;;;;

리눅스에 프로세스 관리를 어떻게 하는지도 알아야 할 것 같고...

메모리를 어떻게 관리하는지... 그리고 디스크에서 프로그램을 로딩할 때도 어떻게 하는지...

너무 양이 방대해서 어떤 부분을 중점적으로 공부하기가 너무 힘드네요 ㅠ_ㅠ

프로젝트 완료 기간도 다가오고 있고... 쉽지가 않은데

이 글을 보시는 분들 중에 Super Fetch라는 기능을 리눅스에 구현할 때 메모리에 프로그램을 로딩하는 부분을

어떻게하면 구현할 수 있겠다 라는 생각이 드시면 그 구현 방법이나 힌트를 좀 알려주시면 감사하겠습니다 ;ㅁ;