CreateProcess 는 윈도우 운영체제에게 두번째 인자로 넘오온 파일을 프로세스로 생성시키라는 함수입니다.
제가 궁금한 것은 윈도우 운영체제에서 CreateProcess 외에 프로세스를 생성할 수 있는 다른 방법은 없는지 입니다.
예를 들면 파일을 오픈하고 그 핸들을 가지고 프로세스를 생성한다던지.. 등..
그리고 원격 컴퓨터에 있는 프로그램을 클라이언트에서 실행시키는 프로그램을 짜보고 싶은데요.
원격 컴퓨터에 있는 exe 파일을 어떻게 로컬 컴퓨터의 하드디스크에 저장하지 않고 프로세스로 생성시킬 수 있을까..
CreateProcess 함수의 원리는 무엇일까.. 내부적으로 어떤 일이 일어나는가..
윈도우 운영체제에서 한 네트워크 그룹에 잇는 사람들끼리는 이런 것이 가능합니다. 예를 들면 A라는 사람이 워크래프트3나 스타크래프트를
공유폴더로 지정해놓고 B라는 사람이 그 폴더에 접근해 실행파일을 실행시키면 A라는 사람의 컴퓨터에서 실행되는 것이 아니라
B의 컴퓨터에서 실행되어 제한적으로 게임을 할 수 있습니다.(싱글플레이는 되는데 네트워크 게임은 안되더라구요^^;)
B의 컴퓨터 하드디스크의 용량은 실행 전이나 후나 변화가 없습니다. A의 컴퓨터 메모리 사용량도 변화가 없습니다.
처음의 궁금증은 이를 생각하다가 막혀 여쭤보는 것입니다. 이쪽으로 관련 정보나 의견이 있으신 분은 답변 좀 주세요^^
무슨 이름의 API로 치장하던지 간에 프로세스를 생성하는 것은 운영체제의 고유 권한이기 때문에 그 함수가 호출하는 시스템 콜을 살펴보셔야 할 듯 합니다.
커널의 자식 프로세스로 새로운 프로세스가 생성되기 때문에 자식 프로세스가 죽어도 커널은 안전하며
커널이 죽으면 자식도 모두 죽어버리는 그런 관계의 프로세스도가 되는 것입니다.