유닉스 - 프로세스 테이블 질문

skycloud의 이미지

프로세스 테이블이 커널 영역안에 있는 것으로 알고 있습니다.

프로세스가 생성되면 테이블에 entry가 추가되며 entry에는 file descriptor table이 존재하여 open file들에 대한 것들이 있어서 open한 file들을 알 수 있는데
제가 알기로는 file descriptor table은 user area에 있다고 생각했는데 아닌가요?

bushi의 이미지

file descriptor 와 file descriptor table 모두 커널에만 있습니다.
어플리케이션이 알고 있는 것은 일종의 key 일 뿐이고,
시스템콜을 할 때 key 를 커널에 같이 넘겨주면 커널이 file descriptor table 에서 적절한 file descriptor 를 찾아서 사용합니다.