TL;DR

  • GNU Autoconf보다 앞서 나온 MS-DOS용 Autoconf는 키 입력을 이용해 부팅 구성을 선택하는 프로그램이며, 1991년 프랑스 잡지에 실린 원본을 복원해 다시 부팅하는 데 성공함.
  • 원본은 Science & Vie Micro 1991년 11월호 88호에 실렸으며, Julien Pommier가 작성해 월간 프로그래밍 대회에서 2,000프랑을 받음.
  • 원본을 손으로 옮겨 첫 어셈블리 프로그램이자 첫 상용 제품의 출발점으로 삼았으며, 복원 과정에서 AUTOCONF.SYS 1,180바이트와 READCONF.COM 11바이트를 다시 빌드함.
  • 확장판은 어셈블리 코드 7,000줄 이상으로 성장해 중첩 구성, 정렬 메뉴, 미리 보기, 여러 키보드 배열, Windows 95 지원 등을 갖췄으며, 살아남은 빌드는 1996년 1월 11일 14시 26분으로 확인됨.
  • 같은 조사에서 발견한 MegaBoot도 JWasm으로 빌드하고 MS-DOS 5에서 부팅했으며, 두 프로젝트의 소스와 복원된 역사를 각각 공개함.

잡지

  • GNU Autoconf가 configure 스크립트를 생성하기 전, DOS용 Autoconf는 CONFIG.SYS와 AUTOEXEC.BAT를 하나씩 유지하면서 키를 눌러 부팅 구성을 선택하는 프로그램이었음.
  • 메뉴가 나타날 때까지 기다릴 필요가 없었음. PC BIOS가 초기 키 입력을 키보드 큐에 보관하므로 AUTOCONF.SYS가 로드되기 전 구성 문자를 누를 수 있었고, 드라이버는 실행되면 해당 키를 찾아 곧바로 진행함.
  • 원본 프로그램을 작성한 것은 아니며, 프랑스 컴퓨터 잡지에 실린 x86 어셈블리 소스를 손으로 옮겼음. 처음 본 어셈블리 프로그램이자 처음 컴파일한 코드였고, 이후 3~4년 동안 확장해 첫 상용 제품으로 발전시킴.
  • 오랫동안 최초 버전의 작성자를 기억하지 못했음. 잡지를 버리고 호수 정보도 잊은 데다 오래된 인쇄물 아카이브를 검색하기 어려워 흔적을 놓쳤으나, 최근 Abandonware Magazines와 Internet Archive에서 내려받은 SVM 스캔 자료를 AI의 도움으로 살펴 7쪽의 원본을 찾음.
  • 원본 Autoconf는 Science & Vie Micro 1991년 11월호 88호 227~233쪽에 실렸으며, “La configuration idéale”라는 글은 Julien Pommier가 작성해 잡지의 월간 프로그래밍 대회에서 우승하고 2,000프랑을 받음.
  • 7쪽에는 AUTOCONF.ASM 전체 어셈블리 목록과 11바이트 READCONF.COM, 설치 안내, 시작 파일 예시, MASM, LINK, EXE2BIN으로 빌드하는 명령이 수록됨.
  • 게임을 할 때마다 CONFIG.SYS를 편집하는 데 지쳐 여러 부팅 구성이 필요했음. 대부분 이해하지 못한 채 목록을 한 글자씩 바로잡아 일주일가량 옮기고 어셈블리 방법을 알아냄.
  • 35년 뒤 Copilot과 함께 목록을 다시 전사하고 JWasm으로 DOS에서 빌드해 AUTOCONF.SYS 1,180바이트와 원본 크기인 READCONF.COM 11바이트를 생성함.
  • 그 결과 원본 프로그램이 다시 부팅됨.

Julien을 찾다

  • 이름을 확인한 뒤 Julien에게 기사를 보내며 짧게 물었음. “이게 당신인가요?”
  • Julien은 다음 날 아침 “네, 35년 전의 저예요!”라고 답함. 기사를 몇 차례 찾아봤지만 발견하지 못했고, 프로그램이 출간 뒤에도 이어졌다는 사실도 몰랐음.
  • 당시 인터넷 접속이나 BBS가 없었고, 내 포크에 관해 듣지 못했으며, 나중에는 프로그램 이름도 잊었음. 리눅스 소프트웨어에서 사용하는 다른 Autoconf 검색 결과 사이에서 프로그램을 찾을 수 없었음.
  • SVM에 실린 일은 Julien에게 큰 자부심을 안겨준 순간이었음. 기사를 찾고 복원된 역사를 확인한 일이 “내 삶의 한 장 전체”를 되살렸다고 전함.
  • 그 프로그램이 처음 컴파일한 코드였고 내 경력 전체에 영향을 줬을 것이라고 전했음. 수십 년간 원작자에게 감사하고 싶었지만 잡지를 버려 이름을 알아낼 수 없었으며, 오래된 플로피 디스크와 하드 드라이브도 사라져 내 소스 스냅샷 일부를 잃었음.
  • 메시지를 주고받는 동안 Julien은 새 HISTORY.md를 읽고 있었음. 한 번도 만난 적 없는 두 사람이 같은 작은 어셈블리 프로그램이 각자에게 어떤 의미였는지 마침내 비교함.

나의 Autoconf

  • 1990년부터 1999년까지 Geneva에 거주했음. 내 Autoconf 버전은 주로 BBS의 ZIP 아카이브로 퍼졌으며, 당시 컴퓨터 매장이었던 Infomaniak 지하에서 운영된 Boris & Co. ([Ne/V\\eSiS])가 배포처 중 하나였음. 아카이브는 불법 복제 소프트웨어와 함께 유통됨.
  • 잡지에 실린 간결한 프로그램은 어셈블리 코드 7,000줄 이상으로 커졌음. 이름 지정 및 중첩 구성, 정렬 메뉴, 구성 미리 보기, 한 번의 부팅에 한정된 줄 편집, 다양한 키보드 배열, 검색 가능한 도움말, Windows 95 지원, 선택한 구성으로 직접 재부팅하는 BOOTIT을 갖춤.
  • 다른 사람들의 작은 기여도 간간이 있었음. 기록된 변경 사항 145건 전체와 명령줄 옵션, 보조 유틸리티, 소스 코드 조사 내용은 복원된 프로젝트 역사에서 확인 가능함.
  • 보존된 후대 바이너리도 MS-DOS 5에서 부팅됨.
  • 보존된 소스와 영어·프랑스어 바이너리에는 같은 빌드 문자열이 들어 있음.

assembl.: 11/01/96 (14:26)

  • 이 문자열은 살아남은 Autoconf 3.00 beta 2 빌드가 1996년 1월 11일 14시 26분에 만들어졌음을 나타냄.

MegaBoot

  • 같은 검색에서 다른 프로그램도 발견함. 친구 David가 1996년 스위스 Carouge의 Infomaniak 지하에서 함께 시간을 보내던 중 MegaBoot를 작성함.
  • MegaBoot는 Autoconf의 정신적 후계작으로, 메모리에 있는 CONFIG.SYS를 다시 쓰는 또 다른 DOS 문자 장치 드라이버였으며 전체 화면 메뉴를 제공함.
  • 소스를 복원하고 JWasm으로 빌드되도록 했으며, 복구된 버그 두 개를 수정하고 MS-DOS 5에서 부팅함.
  • David는 MegaBoot에 MIT 라이선스를 부여했으며, 현재 자체 저장소인 dblock/megaboot를 보유함.

이후의 변화

  • MS-DOS 6.0은 1993년에 여러 구성을 기본 지원하기 시작함. Autoconf 개발은 1996년 1월 베타 버전까지 계속됐으며, DOS가 제공하지 않는 기능도 여럿 있었음.
  • 같은 Minimal DOS, DOOM, Windows 95 구성을 MS-DOS 6.22 기본 시작 메뉴로 구현한 예시도 제시함.
  • 이후 Autoconf는 점차 사라짐. 소프트웨어 배포가 BBS에서 인터넷으로 옮겨갈 때 프로젝트를 함께 옮기지 못했고, 소스 일부가 유실됐으며 DOS에 이미 기본 해결책이 있어 별도의 부팅 구성 제품이 더는 필요하지 않았음.
  • 원본과 후대 Autoconf 소스는 현재 dblock/autoconf에 함께 있으며, MegaBoot 소스는 dblock/megaboot에 있음. 무엇보다 마침내 Julien을 찾아 감사 인사를 전함.

링크

  • Autoconf 소스와 복원된 역사
  • MegaBoot 소스
  • 1991년 11월 SVM 원문 기사와 소스 목록
  • Internet Archive의 SVM 88호 전체
  • 2011년에 작성한 Autoconf 관련 글