/dev/shm을 사용하는 것보다 /tmp/를 사용하는 것이 더 널리 사용되고 권장되는 이유는 무엇입니까?

/dev/shm을 사용하는 것보다 /tmp/를 사용하는 것이 더 널리 사용되고 권장되는 이유는 무엇입니까?

내 경험에 따르면 대부분의 사람들은 임시 파일이나 디스크 쓰기 저장에 /tmp/를 사용하지만 /dev/shm을 대신 사용하도록 권장하거나 심지어 사용하는 사람은 자주 볼 수 없습니다.

왜 그런 겁니까?

답변1

/dev/shm파일 시스템의 공유 메모리 세그먼트와 함께 사용하기 위한 것입니다. 공유 메모리에는 SysV 공유 메모리와 POSIX 공유 메모리의 두 가지 유형이 있습니다. POSIX 공유 메모리는 일반적으로 tmpfs shm_open파일 시스템에 위치한 명명된 세그먼트를 생성하여 사용됩니다 . 일반적으로 설치 되며 ./dev/shm/dev/shmnosuidnoexec

/tmp임시 파일과 함께 사용하기 위한 것입니다. 일부 시스템에서는 tmpfs이지만 많은 시스템에서는 디스크 백업입니다. 많은 시스템에서는 /tmp태그가 지정되지 않았기 때문에 에서 프로그램을 실행할 수 있습니다 noexec. 시스템 관리자는 특정 시스템의 요구 사항에 맞게 크기를 적절하게(더 크게 또는 더 작게) 조정할 수 있습니다.

/var/tmp와 유사 /tmp하지만 후자는 일반적으로 시작 시 지워지는 반면 전자는 그렇지 않습니다. 대부분의 경우 후자를 사용해야 하지만 임시 파일을 장기간 보관해야 하는 경우 /var/tmp사용할 수 있습니다 .

따라서 실제로 임시 파일을 사용할 수 없는 명확한 이유는 없지만 /dev/shm일반적인 사용 사례나 의도된 목적이 아니므로 예상하지 못할 것입니다. 유지 관리하기 쉽고 다양한 시스템에서 최적으로 작동하는 코드를 작성하는 것이 목표라면 그렇게 하지 않을 강력한 이유가 없는 한 규칙을 따르는 것이 가장 좋습니다.

답변2

/tmp엄밀히 말하면 왜(또는 만약) 더 추천해야 하는지 모르겠습니다 /dev/shm. 이유를 알고 있습니다.

이것파일 시스템 계층 표준Linux 배포판의 디렉터리 구조와 디렉터리 내용을 정의합니다. 그것지정하다/tmp:

/tmp디렉터리는 임시 파일이 필요한 프로그램에서 사용할 수 있어야 합니다.

하지만 지정하지 않았습니다 /dev/shm. 검색shm텍스트 버전이것을 확인하기 위해.

관련 정보