왜 tar가 아닌 cpio입니까?
이 결정은 2001 년 12 월에 이루어졌습니다. 토론은 여기에서 시작되었습니다.
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1538.html
그리고 여기에서 시작하여 두 번째 스레드 (특히 tar와 cpio에서)를 생성했습니다.
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1587.html
빠르고 더러운 요약 버전 (위의 스레드를 대신 할 수 없음)은 다음과 같습니다.
1) cpio는 표준입니다. AT & T 시절부터 수십 년 전이며 Linux (Red Hat의 장치 드라이버 디스크 인 RPM 내부)에서 이미 널리 사용되고 있습니다. 다음은 1996 년의 Linux Journal 기사입니다.
http://www.linuxjournal.com/article/1213
전통적인 cpio 명령 줄 도구에는 _truly_hideous_ 명령 줄 인수가 필요하기 때문에 tar만큼 인기가 없습니다. 그러나 이것은 아카이브 형식에 대해 아무 말도하지 않으며 다음과 같은 대체 도구가 있습니다.
http://freecode.com/projects/afio
2) 커널이 선택한 cpio 아카이브 형식은 다양한 문자 그대로의 tar 아카이브 형식보다 간단하고 깔끔하며 작성 및 구문 분석이 더 쉽습니다. 전체 initramfs 아카이브 형식은 usr / gen_init_cpio.c에 작성되고 init / initramfs.c에 추출 된 buffer-format.txt에 설명되어 있습니다. 이 세 가지가 모두 26k 미만의 사람이 읽을 수있는 텍스트입니다.
3) tar로 표준화 한 GNU 프로젝트는 zip으로 표준화 한 Windows와 거의 관련이 있습니다. Linux도 그 일부가 아니며 자체적으로 기술적 인 결정을 내릴 수 있습니다.
4) 이것은 커널 내부 형식이기 때문에 쉽게
새로운 것일 수 있습니다 . 커널은 어쨌든이 형식을 만들고 추출 할 수있는 자체 도구를 제공합니다. 기존 표준을 사용하는 것이 바람직하지만 필수는 아닙니다.
5) Al Viro가 결정을 내렸다 ( "타르는 못 생겼고 커널 쪽에서는 지원되지 않습니다").
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1540.html
그의 추론을 설명했다 :
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1550.html
http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1638.html
그리고 가장 중요한 것은 initramfs 코드를 디자인하고 구현 한 것입니다.