| 파일 확장자 | .arc, .ark |
|---|---|
| 인터넷 미디어 타입 | application/octet-stream |
| UTI | public.archive.arc |
| 개발 | 시스템 인핸스먼트 어소시에이츠 |
| 포맷 종류 | 데이터 압축 |
ARC는 시스템 인핸스먼트 어소시에이츠(SEA)에서 개발한 비손실 데이터 압축 및 아카이빙 파일 형식이다. 파일 형식과 프로그램 모두 ARC라고 불렸다. 이 형식은 1980년대에 논란의 중심에 있었으며, 나중에 오픈 포맷으로 알려지게 될 것들에 대한 중요한 논쟁의 일부이기도 했다.
ARC는 초기 BBS 시대에 매우 인기가 높았다. ARC는 파일을 압축하는 SQ 프로그램의 기능과 여러 파일을 .LBR 아카이브로 만드는 LU 프로그램의 기능을 결합하여 편리했다. 이 형식은 나중에 더 나은 압축률을 제공하고 압축/압축 해제 과정에서 디렉터리 구조를 유지할 수 있는 ZIP 형식으로 대체되었다.
.arc 파일 확장자는 서로 관련 없는 여러 종류의 아카이브 유사 파일 형식에 사용된다. 예를 들어, 인터넷 아카이브는 여러 웹 리소스를 하나의 파일로 저장하기 위해 자체 ARC 형식을 사용했다. FreeArc 아카이버도 .arc 확장자를 사용하지만, 완전히 다른 파일 형식을 사용한다. 닌텐도는 닌텐도 게임큐브 및 Wii 게임에서 오디오나 텍스트와 같은 리소스에 대해 관련 없는 "ARC" 형식을 사용한다. 이러한 종류의 ARC 파일을 위한 비공식 추출 프로그램이 다수 존재한다.
구성 파일은 아카이브 내에 순차적으로 저장되며, 그 뒤에 아카이브 끝을 알리는 표식인 0x1A 0x00이 온다. 각 항목 앞에는 디렉터리 정보를 담은 29바이트 헤더가 붙는다. 헤더의 모든 멀티바이트 값은 리틀 엔디언 바이트 순서로 저장된다. 아카이브 항목은 일반적으로 이름순으로 정렬되어 유지된다. 29바이트 아카이브 헤더의 형식은 다음과 같다.
| 오프셋 (바이트) | 크기 (바이트) | 설명 |
|---|---|---|
| 0 | 1 | 아카이브 헤더 시작 (0x1A). |
| 1 | 1 | 압축 방식/버전. |
| 2 | 13 | ASCII 파일 이름, 널(null) 종료. |
| 15 | 4 | 압축된 크기. |
| 19 | 2 | 파일 날짜, 16비트 MS-DOS 형식:
(모두 0이면 날짜 없음.) |
| 21 | 2 | 파일 시간, 16비트 MS-DOS 형식:
|
| 23 | 2 | 압축되지 않은 데이터의 16비트 CRC 값 |
| 25 | 4 | 압축되지 않은 크기.
(이 필드는 압축 방식 1을 사용하는 파일에는 존재하지 않음. 즉, 이 경우 헤더 길이는 25바이트임.) |
압축 방식의 특성은 각 아카이브 항목에 포함된 헤더 버전 번호로 표시되며, 내용은 다음과 같다.
32비트 MS-DOS 타임스탬프는 초 단위의 카운트가 5비트 폭으로 제한되어 있어 짝수 초만 표현 가능하다.
날짜 필드:
| 오프셋 (바이트) | 31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 연도 - 1980 | 월 | 일 | ||||||||||||||
시간 필드:
| 오프셋 (바이트) | 15 |
14 |
13 |
12 |
11 |
10 |
09 |
08 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 시간 | 분 | 초 / 2 | ||||||||||||||
아카이브 파일은 오류 제어를 위해 16비트 순환 중복 검사(CRC)를 사용한다. 사용되는 특정 CRC 다항식은 이며, 이는 일반적으로 "CRC-16"으로 알려져 있고 많은 데이터 전송 프로토콜(예: DEC DDCMP 및 IBM BSC)과 대부분의 플로피 디스크 컨트롤러에서 사용된다. 이는 XMODEM-CRC 프로토콜 및 퍼블릭 도메인 CHEK 프로그램에서 사용하는 CCITT 다항식()과는 다르다는 점에 유의해야 한다(단, 이들은 CCITT 표준을 엄격하게 준수하지는 않음).
1985년, 시스템 인핸스먼트 어소시에이츠의 톰 헨더슨은 ar과 같은 이전 프로그램을 기반으로 ARC라는 프로그램을 작성했다. 이는 단순히 파일을 하나의 아카이브 파일로 묶는 것뿐만 아니라 디스크 공간을 절약하기 위해 파일을 압축하는 기능도 제공했는데, 이는 저장 공간이 매우 제한적이고 모뎀 전송 속도가 매우 느렸던 초기 개인용 컴퓨터에서 매우 중요한 기능이었다. ARC로 생성된 아카이브 파일은 ".ARC"로 끝나는 파일 이름을 가졌기에 때때로 "arc 파일"이라고 불렸다.
ARC의 소스 코드는 1986년 SEA에 의해 공개되었으며, 이후 1987년 하워드 추에 의해 유닉스 및 아타리 ST로 이식되었다. 이보다 이식성이 높은 코드베이스는 이후 VAX/VMS 및 IBM 시스템/370 메인프레임을 포함한 다른 플랫폼으로도 이식되었다. 하워드의 작업은 렘펠-지브 인코딩된 파일을 더 압축할 수 없다는 당시의 일반적인 믿음을 처음으로 반증한 사례였다. LZW 데이터에 허프먼 부호화를 사용함으로써 추가적인 압축을 달성할 수 있었고, 하워드의 ARC 버전이 이러한 특성을 입증한 최초의 프로그램이었다. 이 하이브리드 기술은 나중에 필 캐츠와 다른 사람들에 의해 여러 다른 압축 체계에서 사용되었다.
이후 필 캐츠는 자체 셰어웨어 유틸리티인 PKARC와 PKXARC를 개발하여 아카이브 파일을 생성하고 내용을 추출했다. 이 파일들은 ARC에서 사용하는 아카이브 파일 형식과 호환되었으며, 선택적인 어셈블리어 코딩 덕분에 IBM PC 플랫폼에서 ARC보다 훨씬 빠르게 작동했다. 아카이브 생성과 파일 추출 기능을 단일 프로그램에 결합한 SEA와 달리, 캐츠는 이 기능들을 두 개의 별도 유틸리티로 나누어 실행에 필요한 메모리 양을 줄였다. PKARC는 외부 추출 유틸리티 없이 스스로 압축을 풀 수 있는 자체 풀림 압축 파일 생성 기능도 제공했다.
시스템 인핸스먼트 어소시에이츠 대 PKWARE 및 필립 W. 캐츠 소송 이후, SEA는 셰어웨어 시장에서 철수하고 ARC+Plus를 개발했다. 이 버전은 전체 화면 사용자 인터페이스를 포함했으며, 알려진 마지막 버전은 7.12이다. SEA는 결국 1992년에 특정되지 않은 일본 기업에 매각되었다.
ARC 형식은 더 이상 PC 데스크톱에서 흔하지 않지만, 대부분의 바이러스 검사 소프트웨어는 압축 파일 내의 바이러스를 탐지하기 위해 발견된 ARC 아카이브를 여전히 압축 해제할 수 있다.
1980년대 후반, ARC 프로그램 제작사인 SEA와 PKWARE (필 캐츠 소프트웨어) 사이에 분쟁이 발생했다. SEA는 상표권 및 저작권 침해 혐의로 캐츠를 고소했다. 법원이 임명한 독립 소프트웨어 전문가 존 나바스는 두 프로그램을 비교한 결과, PKARC가 ARC의 2차적저작물임을 확인했으며, 두 프로그램의 주석이 오타를 포함하여 종종 동일하다는 점을 지적했다.
1988년 8월 2일, 원고와 피고는 소송 합의를 발표했다. 여기에는 기밀 교차 라이선스 계약이 포함되었으며, 이에 따라 SEA는 PKWARE가 1985년 말 PKXARC의 첫 출시부터 1988년 7월 31일까지 배포한 모든 ARC 호환 프로그램에 대해 라이선스를 부여하는 대신, 당시 비공개 금액이었던 $62,500을 지불받았다. 계약에 따라 PKWARE는 1989년 1월 31일까지 PKWARE의 ARC 호환 프로그램 배포를 허용하는 라이선스를 얻기 위해 SEA에 비용을 지불했으며, 그 이후에는 ARC 호환 프로그램을 처리하는 어떠한 ARC 호환 프로그램이나 유틸리티도 라이선스, 게시 또는 배포하지 않기로 했다. 그 대가로 PKWARE는 SEA에 PKWARE의 ARC 호환 프로그램 소스 코드를 사용할 수 있는 라이선스를 부여했다. PKWARE는 또한 SEA의 "ARC" 상표 사용을 중단하고 프로그램에 사용된 이름이나 표시를 혼동을 일으키지 않는 명칭으로 변경하기로 합의했다. 나머지 계약 세부 사항은 비공개로 유지되었다. 합의에 도달하면서 피고는 어떠한 과실이나 잘못도 인정하지 않았다. 위스콘신 법원 명령에 따르면 피고는 원고의 저작권, 상표권 침해 및 불공정 거래 관행 및 불공정 경쟁 행위에 대해 원고에게 손해 배상을 지급하라는 판결을 받았다.
합의 조건에 따라 공개된 유출 계약 문서에 따르면 피고는 원고에게 과거 로열티로 $22,500, 비용 상환 명목으로 US$40,000을 지급했다. 또한, 피고는 계약 발효일 이후에 접수된 ARC 호환 프로그램의 모든 주문 수익(라이선스 만료 후 수령한 라이선스 비용 또는 셰어웨어 등록비 포함)에 대해 6.5%의 로열티를 지급하기로 했다. 그 대가로 원고는 피고에 의해 원고에게 추천된 라이선스 계약자로부터 받은 라이선스 비용(라이선스 종료일 전후 무관)의 6.5%를 수수료로 지급하기로 했다.
소송 후 PKWARE는 마지막으로 PKARC 및 PKXARC 유틸리티를 "PKPAK" 및 "PKUNPAK"이라는 새 이름으로 출시했으며, 그 이후에는 완전히 새로운 파일 압축 기술과 아카이브 파일 형식을 기반으로 하는 별도의 프로그램인 PKZIP과 PKUNZIP 개발에 집중했다. 그러나 이름 변경 후에도 SEA는 PKPAK 설명서에서 ARC를 명사에서 동사로 바꾸어 원고의 보호받는 상표인 ARC를 계속 사용했다는 이유로 PKWARE를 법정 모독 혐의로 고소했다. 미국 위스콘신 동부 연방 지방 법원은 SEA의 신청을 기각했으며, 피고는 법률 비용 500달러를 회수할 자격이 있다고 판결했다.
SEA 대 PKWARE 분쟁은 곧 BBS 세계가 보았던 가장 큰 논란 중 하나로 확대되었다. SEA의 소송은 SEA가 "거대하고 비인격적인 기업"이고 캐츠는 "작은 사람"이라고 인식한 많은 셰어웨어 사용자들을 분노하게 했다. 사실 당시 SEA와 PKWARE 모두 작은 재택 기반 기업이었다. 그러나 SEA가 소급적으로 ARC 파일 형식을 폐쇄적이고 독점적인 것으로 선언하려 했기 때문에 커뮤니티는 대부분 캐츠의 편을 들었다. 캐츠는 ZIP 파일 형식을 문서화한 APPNOTE.TXT 사양을 공개하고, ZIP 파일 형식이 경쟁 소프트웨어에서 항상 무료로 구현될 수 있도록 할 것이라고 선언함으로써 긍정적인 평판을 얻었다. 결과적으로 ARC 형식은 PC-BBS가 파일 아카이브에 사용하는 지배적인 압축 형식으로서의 지위를 빠르게 잃었고, 짧은 기간 동안 여러 경쟁 형식이 난립한 끝에 ZIP 형식이 지배적인 표준으로 채택되었다.
인터뷰에서 SEA의 톰 헨더슨은 그가 소프트웨어 개발을 그만둔 주된 이유는 캐츠에 의해 시작된 악성 메일 캠페인으로 인해 감정적으로 대처할 수 없었기 때문이라고 말했다.