2014-07-23 3 views
0

제가 알다시피, 커널은 커널에서 사용자 공간을 위해 주로 두 가지 인터페이스를 제공합니다. 이들은 시스템 호출과 가상 파일 시스템 (procfs, sysfs 등)입니다. VFS는 내부적으로 System Call을 사용합니다.가상 파일 시스템과 시스템 호출의 차이점은 무엇입니까?

그래서 두 개가 정확히 어떻게 연결되어 있는지 알고 싶습니다. VFS를 시스템 콜을 통해 사용해야하는 상황과 그 반대의 경우가 무엇입니까?

답변

1

시스템 호출은 모든 사용자 공간 프로세스가 사용자 공간 모드에서 커널 모드로 전환하는 일반적인 기능입니다.

커널에 상주하는 함수 호출과 같으며 변수 개수가 다양한 사용자 공간에서 호출됩니다. 가장 중요한 매개 변수는 syscall 번호입니다.

커널은 지원되는 시스템 호출 (= 커널 함수)의 아키텍처 관련 배열을 항상 유지하며 사용자 공간에서 전달 된 시스템 호출 번호를 기반으로 사용자 공간에서 오는 모든 시스템 호출을 올바른 함수로 전달합니다.

가상 파일 시스템은 파일로 간주 될 수있는 모든 것을 처리하기위한 표준 기능을 제공하는 파일 시스템을 추상화 한 것입니다. 그래서 예를 들어 어떤 파일 시스템에이 파일이 저장되어 있는지에 관계없이 모든 파일에서 "open", "close", "read"등을 호출 할 수 있습니다.

여기 VFS와 syscalls의 관계는 VFS가 기본적으로 커널에있는 코드이며 커널에 접근하는 유일한 방법은 syscalls입니다 ("open"은 syscall이므로 "close"등)

관련 문제