PATH는 시스템 콜이어야 한다
2025-04-25
Emacs와 bash는 시작 시 PATH 환경 변수의 각 디렉토리를 순차적으로 탐색하여 대상 파일의 존재 여부를 하나씩 확인하는 비효율적인 방법으로 설정 파일을 검색합니다. 이 글에서는 이러한 비효율적인 검색 메커니즘을 살펴보고, strace 도구를 사용하여 Emacs와 bash의 시스템 콜을 추적하여 많은 fstatat 콜을 보여줍니다. 저자는 이 검색이 반복적인 시도 대신 데이터베이스 쿼리처럼 일치하는 파일을 직접 반환하도록 운영 체제 또는 파일 시스템에 의해 최적화되어야 한다고 주장합니다. Python 구현은 비교적 효율적이지만 단점도 있습니다. 저자는 시스템 콜과 네트워크 왕복 횟수를 줄이기 위해 모든 가능한 파일 이름과 디렉토리 목록을 운영 체제에 제공하는 개선 방안을 제시합니다.
개발