/dev/zero

위키백과, 우리 모두의 백과사전.

특수 장치 파일

/dev/zero는 읽기를 위해 가능한 많은 널 문자(ASCII NUL, 0x00)를 제공하는 유닉스 계열 운영 체제특수 파일이다.[1] 일반적인 용도 중 하나는 데이터 스토리지를 초기화하기 위해 문자 스트림을 제공하는 것이다.[2]

기능[편집]

/dev/zero의 읽기 동작은 읽기에 요청할만큼의 널 문자(0x00)을 반환한다.

/dev/null과 달리, /dev/zero는 데이터의 싱크(sink)로서가 아닌 소스(source)로서 사용할 수 있다. /dev/zero로의 모든 쓰기 동작은 아무 영향 없이 성공한다. 그러나 이 목적의 경우 /dev/null을 사용하는 것이 더 일반적이다.

/dev/zero가 메모리에 매핑될 때(예: 가상 주소 공간에 대해 mmap) 익명 메모리를 사용하는 것과 동일한 효과가 있다.(예: 메모리가 파일에 연결되지 않음)

역사[편집]

/dev/zero는 1988년 익명 메모리를 사용하여 공유 라이브러리를 위해 매핑 가능한 BSS 세그먼트를 허용할 목적으로 SunOS-4.0에 도입되었다. 1990년대 중반, HP-UX는 /dev/zero를 개방하지 않고 익명 메모리를 직접 매핑하는 mmap() 플래그 MAP_ANONYMOUS를 도입하였다. 1990년대 말 이후로 기존 /dev/zero 목적을 대신하는 MAP_ANONYMOUS는 대부분의 유닉스 버전에 지원된다.

[편집]

dd 유닉스 유틸리티 프로그램은 출발지에서 도착지까지 옥텟 스트림을 읽으며 이 과정에서 데이터 변환을 수행할 수 있다. 파일 시스템 파티션에서 기존 데이터를 파괴하려면(로우 레벨 포맷)

dd if=/dev/zero of=/dev/<destination partition>

널 문자로 채워진, foobar라는 이름의 1 MiB 파일을 생성하려면:[3]

dd if=/dev/zero of=foobar count=1024 bs=1024

참고: 블록 크기 값은 SI(십진)값으로 줄 수 있다.(예: GB, MB 등) 1 GB 파일을 생성하기 위해 다음과 같이 입력한다:

dd if=/dev/zero of=foobar count=1 bs=1GB

참고: 0바이트로만 채워진 읽기 파일을 만드는 대신 수많은 파일 시스템들은 또한 희소 파일의 생성도 지원하며, 이는 실제 공간을 덜 사용하면서 읽기 시 0을 반환한다.[4]

같이 보기[편집]

각주[편집]

  1. Mitchell, Mark; Oldham, Jeffrey; Samuel, Alex (2001), 〈6.5.2 /dev/zero〉, 《Advanced Linux Programming》, Sams Publishing, 136쪽, ISBN 9780735710436 
  2. Love, Robert (2007), 〈Mapping /dev/zero〉, 《Linux System Programming: Talking Directly to the Kernel and C Library》, O'Reilly Media, Inc., 259–260쪽, ISBN 9780596009588 
  3. Optimizing NFS Performance: Tuning and Troubleshooting NFS on HP-UX Systems, Dave (2002). 《Olker》. Prentice Hall Professional. 26–7쪽. ISBN 9780130428165. 2014년 7월 16일에 확인함. 
  4. Sparse file