실행하기 위해 프로그램을 시작하는 사람은 누구입니까?

실행하기 위해 프로그램을 시작하는 사람은 누구입니까?

RAM에서 실행될 프로그램을 시작하는 사람은 누구입니까? 커널인가요?

Linux에서 "ls" 명령을 쳤다고 가정합니다. CPU 코어에 의해 처리되고 필요한 경우 시스템 호출(커널에 대한)을 만들고 시스템 호출을 사용하여 o/p를 플러시하는 RAM에서 실행 중이라는 것을 알고 있습니다. 하지만 실제로 누가 RAM에서 "ls"를 실행하도록 허용합니까?

답변1

ls터미널에 입력 하면 해당 터미널에서 실행 중인 셸(bash 또는 zsh 등)은 커널에 프로세스를 포크하라고 지시하는 시스템 호출을 호출합니다. 그런 다음 커널에 시스템 호출을 사용하여 새 프로세스의 프로세스 이미지를 ls프로그램 으로 바꾸도록 지시합니다 execve. 그러면 ls프로그램 코드가 디스크에서 메모리로 로드됩니다.

따라서 어떤 프로그램이 프로그램을 실행하게 하는지 언급하는 경우 이는 셸입니다.

관련 정보