tmpfs
tmpfstmpfs(Temporary File System의 줄임말)는 많은 Unix 계열 운영 체제에서 구현되는 임시 파일 스토리지 패러다임입니다.마운트된 파일 시스템으로 표시되도록 되어 있지만 데이터는 영구 저장 장치가 아닌 휘발성 메모리에 저장됩니다.유사한 구조는 RAM 디스크로, 가상 디스크 드라이브로 나타나 디스크 파일 시스템을 호스트합니다.
의미론
tmpfs에 저장되는 모든 것은 하드 드라이브 등의 비휘발성 스토리지에 직접 파일이 생성되지 않는다는 점에서 일시적입니다(단, 메모리 부족 시 스왑 공간이 백업 저장소로 사용됩니다).재부팅 시 tmpfs 내의 모든 것이 손실됩니다.
tmpfs에서 사용되는 메모리는 포함된 파일에 맞게 확장 및 축소됩니다.
많은 Unix 디스트리뷰션에서는 디폴트로 tmpfs를 이노블로 하여 사용하고 있습니다.파일 시스템의 /tmp 브랜치 또는 공유 메모리의 경우.이는 다음 예시와 같이 df에서 확인할 수 있습니다.
사용된 파일 시스템 크기 사용률 tmpfs 256M 688K 256M 1% / tmp 탑재
일부 Linux 디스트리뷰션(Debian 등)에서는 디폴트로 /tmp에 tmpfs가 마운트되어 있지 않습니다.이 경우 /tmp 아래의 파일은 /와 같은 파일시스템에 저장됩니다.
또한 거의 모든 Linux 디스트리뷰션에서 tmpfs는 /run/ 또는 /var/run/에 마운트되어 PID 파일이나 Unix 도메인 소켓 등의 임시 런타임 파일을 저장합니다.펌웨어 변수와 같은 임시 시스템 파일은 다음 위치에 저장됩니다./sys
실장
tmpfs 개념에는 몇 가지 독립된 변종이 있습니다.가장 초기의 것 중 하나는 SunOS용 Sun Microsystems에 의해 개발되었으며, BSD나 Linux와 같은 다른 운영체제는 그들만의 것을 제공했다.
SunOS
SunOS 4에는 tmpfs의 가장 초기 구현이 포함되어 있습니다. 1987년 말 SunOS 4.0에서 처음 등장했으며, 모든 개체를 메모리 [1][2]매핑할 수 있는 새로운 직교 주소 공간 관리 기능도 함께 제공되었습니다.
Solaris/tmp 디렉토리는 1992년 [4]12월에 출시된 Solaris [3]2.1부터 기본적으로 tmpfs 파일시스템으로 되어 있습니다.Solaris 출력df
명령어는 임의의 tmpfs 볼륨의 백그라운드 스토리지로 swap을 표시합니다.
df - k 파일 시스템 사용 가능 용량 601592 0 601592 0% / tmp / test에 마운트됨
리눅스
tmpfs는 버전 2.[5]4 이후 Linux 커널에서 지원됩니다.Linux tmpfs(이전의 shmfs)는 부팅 시 사용되는 ramfs 코드를 기반으로 페이지 캐시를 사용하지만 ramfs와는 달리 메모리 부족 상황(기본값의 물리 RAM의 절반과 RAM 페이지의 절반)을 방지하기 위해 파일 시스템 크기 및 inode 제한을 스왑할 수 있습니다.리)[6]
BSD
4.2BSD는 기존 FFS 디스크 파일 시스템을 가상 메모리 영역에 적용하여 구현된 메모리 기반 파일 시스템인 MFS를 [7]도입했습니다.
tmpfs는 MFS의 성능을 향상시키기 위해 기존의 인메모리 데이터 구조를 사용하여 구현된 메모리 파일 시스템으로서 2005년 [8]9월 10일에 공식 NetBSD 소스 트리에 통합되었습니다.이 시스템은 4.0 이후 버전에서 사용할 수 있습니다.
FreeBSD는 NetBSD의 구현을 포팅하여 7.0 [9]이후 버전에서 사용할 수 있습니다.
DragonFly BSD는 또한 NetBSD의 구현을 이식하여 2.5.1 이후 버전에서 사용할 수 있습니다.
OpenBSD는 NetBSD의 tmpfs 구현도 포팅했습니다.처음에는 Pedro Martelletto에 의해 시작되어 많은 다른 사람들에 의해 개선되었습니다.2013년 [10]12월 17일부터 빌드에서 사용할 수 있게 되었습니다.OpenB의 첫 출시SD(tmpf 포함)는 5.5였습니다.[11]유지보수 부족으로 인해 OpenBSD 6.0이 tmpfs를 비활성화했습니다.
이점
디스크 스토리지에 비해 RAM의 속도가 빠르기 때문에 tmpfs를 사용하면 캐시를 한 곳에 저장할 때 캐시가 훨씬 빨라져 전체 시스템의 효율성이 향상됩니다.재부팅 시 RAM이 클리어되므로 tmpfs를 사용하면 사용자가 임시 파일을 수동으로 삭제할 필요 없이 시스템이 너무 복잡해지는 것을 방지할 수 있습니다.또한 RAM에 파일을 저장하면 디스크가 너무 빨리 차는 것을 방지하고 쓰기 양을 줄임으로써 솔리드 스테이트 드라이브의 수명을 연장할 수 있습니다.
단점들
RAM이 적은 시스템에서는 tmpfs가 메모리를 빠르게 채웁니다.
캐시 파일이 tmpfs에 저장되어 있는 경우 재부팅 시 캐시된 데이터가 손실됩니다.
레퍼런스
- ^ Peter Snyder. "tmpfs: A Virtual Memory File System" (PDF). Retrieved 2007-05-07.
- ^ Hal L. Stern. "SunOS 4.1 Performance Tuning" (GZipped PostScript). Retrieved 2007-05-07.
- ^ "SPARC: Installing Solaris Software" (PDF). SunSoft. December 1992. p. 9. Retrieved April 23, 2019.
- ^ "Solaris Operating System (Unix)". operating-system.org.
- ^ Daniel Robbins (2001-09-01). "Common threads: Advanced filesystem implementor's guide, Part 3". IBM DeveloperWorks. Retrieved 2013-02-15.
- ^ Christoph Rohland; Hugh Dickins; KOSAKI Motohiro. "tmpfs.txt". kernel.org. Retrieved 2010-03-16.
- ^ "NetBSD mount_mfs(8) man page". 2007-12-08. Retrieved 2013-02-15.
- ^ Julio M. Merino Vidal (2006-02-24). "NetBSD-SoC: Efficient memory file-system". Retrieved 2013-02-15.
- ^ Xin LI (2013-04-23). "FreeBSD tmpfs(5) manpage". Retrieved 2008-12-02.
- ^ "CVS: cvs.openbsd.org: src - enable tmpfs so it gets tested some more".
- ^ "OpenBSD 5.5". 2014-05-01. Retrieved 2014-05-01.
외부 링크
- "Solaris tmpfs(7FS) man page". Retrieved 2013-02-25.
- "Kernel.org tmpfs documentation". Retrieved 2015-10-05.