Hacker News

Alan Kay's answer to “Did the ENIAC have a BIOS”?

ENIAC에는 BIOS가 있었을까요?

Alan Kay는 ENIAC에 BIOS나 이에 해당하는 기능이 없었고, 원래 형태를 저장 프로그램 컴퓨터로 보기도 어렵다고 설명합니다. 초기 컴퓨터는 스위치로 부트스트랩 명령을 직접 입력하기도 했으며, 댓글에서는 ENIAC의 전후 개조와 EDSAC의 부트 ROM 사례를 들어 이 설명의 범위를 짚습니다.

AI 요약

Alan Kay는 ENIAC에 BIOS가 있었는지 묻는 질문에, BIOS뿐 아니라 그에 비슷한 기능도 없었다고 답합니다. 그는 ENIAC을 저장 프로그램 컴퓨터로 분류하지 않는 쪽에 서 있습니다. 몇 가지 편법은 가능했지만, 저장 프로그램 컴퓨터라고 부르기에는 부족하다는 설명입니다.

BIOS와 초기 부팅

Kay는 BIOS의 기본 입출력 프로그램이 펌웨어에 들어 있어야 BIOS로 인정할지 질문을 던집니다. 용어를 엄격하게 해석하면 ROM이 필요하지만, 취지에 무게를 두면 ROM 자체가 필수 조건은 아니라고 봅니다.

그는 1960년대에도 많은 컴퓨터가 코드 한 줄 없는 상태에서 시작했다고 설명합니다. 작업자가 토글 스위치나 다른 스위치로 몇 개의 명령을 입력하고, 그 명령으로 종이 테이프에 담긴 나머지 프로그램을 읽었습니다. 초기 DEC 컴퓨터 다수가 이런 방식으로 시작했습니다. 1964~1965년 무렵 CDC 6600에는 토글보다 쓰기 편한 초기 기동용 스위치 패널이 있었습니다.

Kay가 인용한 Wikipedia 설명에 따르면, BIOS라는 이름이 공식적으로 쓰인 초기 사례는 1975년 CP/M이며, 오늘날 익숙한 BIOS 개념은 1981년 IBM PC와 함께 자리 잡았습니다. 두 경우 모두 ROM을 사용했습니다.

ENIAC의 저장 프로그램 여부

댓글에서는 Kay의 ENIAC 설명에 단서를 더합니다. @jshier는 ENIAC이 처음에는 문제마다 배선을 물리적으로 바꿔야 했지만, 전쟁 뒤 개조를 거쳐 1948년부터 1955년 폐기될 때까지 저장 프로그램 방식으로 작동했다고 설명합니다. @HarHarVeryFunny는 이때도 프로그램을 카드에서 읽어 저장한 게 아니라 기능표 다이얼로 설정했다고 덧붙입니다. 천공 카드는 데이터 입출력에 썼으며, 입출력 장치가 원시적이라 BIOS에 해당하는 코드가 필요하지 않았을 것이라고 봅니다.

@retrac은 1949년 EDSAC의 ‘initial orders’를 ROM 부트 코드 사례로 제시합니다. 회전 스위치로 ROM의 값을 설정했고, David Wheeler는 작은 ROM에 종이 테이프 로더와 간단한 어셈블러를 넣었다고 설명합니다. 이 사례는 초기 컴퓨터의 부팅 방식이 한 가지로만 정리되지 않음을 보여줍니다.

Hacker News 반응

  • @jshier — Kay가 ENIAC을 저장 프로그램 컴퓨터가 아니라고 본 점에는 동의하기 어렵습니다. 원래 ENIAC은 분명 저장 프로그램 컴퓨터가 아니었고, 문제를 바꿀 때 물리적으로 재구성해야 했습니다. 하지만 전쟁 뒤에는 다른 저장 프로그램 컴퓨터처럼 작동하도록 개조됐습니다. EDVAC 보고서에서 볼 수 있는 설계 사상을 처음 받아들인 사례였습니다. 1948년부터 1955년 폐기될 때까지 그 방식으로 작동했습니다. 《ENIAC in Action: Making and Remaking the Modern Computer》는 초기 설계와 재설계를 잘 정리한 책입니다.
  • @HarHarVeryFunny — “다른 저장 프로그램 컴퓨터처럼”이라고 하면 1948년에 그런 컴퓨터가 여럿 있었던 것처럼 들립니다. 제가 알기로는 당시 가동 중인 컴퓨터는 IBM SSEC 하나뿐이었습니다. 저장 프로그램 방식의 EDVAC은 아직 가동하지 않았고, 폰 노이만이 ENIAC을 그 방식으로 바꾸는 작업에 조언했습니다. 개조 뒤에도 프로그램을 저장해 불러온 게 아니라, 각 프로그램 단계에 해당하는 기능표 다이얼로 설정했습니다. 천공 카드는 프로그램이 아니라 데이터를 읽고 쓰는 데 썼습니다.
  • @retrac — 1949년의 EDSAC에는 ‘initial orders’라는 모듈이 있었습니다. 부트업 ROM이었습니다. 회전식 선택 스위치로 ROM의 각 워드에 들어갈 8진수를 설정했습니다. David Wheeler는 작은 ROM에 종이 테이프 로더와 미니 어셈블러를 넣는 게 가장 합리적이라고 판단했습니다. 그래서 전원을 켜면 기계가 테이프를 읽고 실행했습니다.
  • @TheOtherHobbes — DEC는 BM792를 시작으로 UNIBUS용 부트 ROM 카드를 옵션으로 판매했습니다. BM792는 32×16 다이오드 배열이었고, 부트 코드를 설정하려면 다이오드를 손으로 제거해야 했습니다. 이후 카드에는 PROM이 쓰였고 기능도 다양해졌습니다. M9312는 512워드와 기본 CPU 진단 기능을 제공했습니다. 디스크, 종이 테이프, 콘솔 등 어떤 장치에서 부팅할지 구매할 때 선택해야 했습니다.
  • @charcircuit — BIOS라는 개념은 1975년 CP/M과 함께 등장했으므로 그보다 오래된 컴퓨터에는 BIOS가 있을 수 없습니다.
    • @RiverCrochet — 안타깝게도 BIOS, UEFI, 펌웨어, 부트로더, 부트 ROM, 부트 플래시, IPL, 부트 모니터, 마이크로코드를 ‘장치가 스스로 부팅하도록 해 주는 ROM 상주 코드’라는 뜻으로 뭉뚱그리는 사람이 많습니다.
  • @Walf — 초기 컴퓨터에는 BIOS가 있긴 했지만, 펌웨어가 아니라 사람의 손으로 불러들였던 건가요?

원문: Quora / 번역·요약: Trawling