유닉스에서 하드웨어와 특수 장치 파일용 장치 드라이버는 파일 시스템에서 마치 일반 파일처럼 나타난다. dd는 기능이 개별 드라이버에서 구현되어 있는 경우 이러한 파일들을 읽거나 기록하는 것이 가능하다. 그러므로 dd는 하드 드라이브의 부팅 섹터를 백업하는 등의 일과 고정된 크기의 랜덤 데이터를 취득하기 위해 사용할 수 있다. dd 프로그램은 복사 시 데이터에 변환을 수행할 수도 있는데, 여기에는 바이트 순서 스와핑, ASCII↔EBCDIC 텍스트 인코딩 변환을 포함할 수 있다.[2]
dd라는 이름은 IBM의 작업 제어 언어(JCL)에서 발견되는 DD 문과 관련되며[3][4] 여기에서 DD는 "Data Description"을 가리킨다.[5] 이 명령의 문법은 다른 유닉스 명령보다 JCL 문과 유사하다.[3]
파일, 드라이브, 파티션의 데이터 복구 및 복원에 대한 오픈 소스 소프트웨어의 초기 역사에는 GNU dd가 포함되어 있으며, 저작권 고지는 1985년에 시작된다.[8] dd 프로세스 당 하나의 블록 크기를 가지며 특정한 형태의 dd를 실행 중인 사용자의 상호작용 세션까지만 한정하여 복구 알고리즘을 제공하였다. 그 뒤 dd_rescue[9]라는 C 프로그램이 1999년 10월에 작성되어 해당 알고리즘 안에 두 개의 블록 크기를 가질 수 있었다. 그러나 2003년 dd_rescue의 데이터 복구 알고리즘을 강화한 셸 스크립트 dd_rhelp의 저자는 2004년에 처음 출시된 dd와는 무관한 데이터 복구 프로그램인 GNU ddrescue[10][11]의 사용을 권장하였다.
더 새로운 GNU 프로그램을 더 오래된 스크립트와 구별하기 위해 GNU의 ddrescue와는 다른 이름이 쓰이기도 하는데 여기에는 addrescue (freecode.com, freshmeat.net에서의 이름), gddrescue (데비안 패키지 이름), gnu_ddrescue(오픈수세 패키지 이름)가 포함된다. savehd7이라는 다른 오픈 소스 프로그램은 복잡한 알고리즘을 사용하지만 사용을 위해 자체 프로그래밍 언어 인터프리터의 설치가 필요하다.
드라이브 성능 벤치마크
드라이브 벤치마크를 테스트하고, 1024바이트 블록에 대한 순차 시스템 읽기/쓰기 성능을 분석하려면 다음과 같이 진행한다:
↑LAB Valentin (2011년 9월 19일). “dd_rhelp author's repository”. Important note : For some times, dd_rhelp was the only tool (AFAIK) that did this type of job, but since a few years, it is not true anymore: Antonio Diaz did write a ideal replacement for my tool: GNU 'ddrescue'.
외부 링크
dd: convert and copy a file – 명령어와 유틸리티 오픈 그룹의 단일 유닉스 규격, Issue 7 참고