TECH 으로 돌아가기
TECH HACKER NEWS 어제 7분 읽기 45 READS

ENIAC에도 BIOS가 있었을까? 앨런 케이의 답변으로 돌아보는 컴퓨터의 부팅 이야기

엉뚱해 보이지만 꽤 깊은 질문

질문 사이트 Quora에 이런 질문이 올라왔어요. ENIAC에도 BIOS가 있었나요? 얼핏 보면 가벼운 호기심 같은데, 여기에 객체지향 프로그래밍과 Smalltalk의 아버지로 불리는 앨런 케이(Alan Kay)가 직접 답을 달았어요. 컴퓨터 역사를 몸으로 겪은 사람이 이런 질문에 답했다는 것 자체가 흥미롭죠.

이 글에서는 그 질문이 왜 흥미로운지, 그리고 답을 이해하려면 어떤 배경을 알아야 하는지 차근차근 풀어볼게요. 결론부터 말하면, 이 질문은 오늘날의 개념으로 과거를 바라볼 때 생기는 착시를 아주 잘 보여주는 예예요.

먼저, BIOS가 뭐냐면

BIOS(Basic Input/Output System)는 컴퓨터 전원을 켜면 가장 먼저 실행되는 작은 프로그램이에요. 메인보드의 롬(ROM) 칩에 들어 있어서, 운영체제가 올라오기 전에 하드웨어를 점검하고(POST라고 불러요), 키보드나 디스크 같은 장치를 다룰 기본 기능을 제공하고, 디스크에서 운영체제를 읽어와 실행시키는 역할을 해요. 비유하자면 가게 문을 열기 전에 불을 켜고 금고를 확인하고 직원을 부르는 오픈 담당자 같은 존재죠.

이 BIOS라는 말은 사실 생각보다 늦게 등장했어요. 1970년대 게리 킬달이 만든 운영체제 CP/M에서 하드웨어에 의존하는 부분을 따로 떼어낸 층을 BIOS라고 불렀고, 이후 1981년 IBM PC가 롬에 펌웨어를 넣으면서 우리가 아는 PC BIOS가 자리 잡았어요. 요즘은 이마저도 UEFI라는 더 현대적인 규격으로 대부분 대체됐고요.

ENIAC은 어떤 기계였나

ENIAC은 1945년 미국 펜실베이니아 대학에서 존 모클리와 프레스퍼 에커트가 만든 초기 범용 전자 컴퓨터예요. 원래 목적은 포탄 궤적 계산이었고, 진공관이 약 1만 8천 개 가까이 들어간 방 하나 크기의 거대한 기계였어요.

중요한 건 ENIAC이 처음에는 프로그램을 메모리에 저장하는 방식이 아니었다는 점이에요. 프로그래밍은 케이블을 뽑았다 꽂고, 수많은 스위치를 돌려서 기계의 배선 자체를 바꾸는 방식이었어요. 새로운 계산을 하려면 며칠씩 걸려 재배선을 해야 했죠. 이 작업을 해낸 사람들이 바로 진 제닝스 바틱, 베티 홀버튼 같은 여성 프로그래머들이었는데, 오랫동안 역사에서 제대로 조명받지 못하다가 최근에야 재평가되고 있어요.

이후 1948년쯤 ENIAC은 원래 표 값을 저장하던 함수 테이블(function table)을 이용해 명령어 집합처럼 쓰는 방식으로 개조되면서, 일종의 읽기 전용 저장 프로그램 방식으로 운영되기 시작해요. 재배선 대신 스위치 값만 바꾸면 되니 훨씬 빨라졌죠.

그래서 BIOS가 있었냐고요?

여기서 질문의 함정이 드러나요. BIOS는 전원을 켜면, 저장된 프로그램이, 디스크에서 운영체제를 불러온다는 전제 위에 있는 개념이에요. 그런데 ENIAC에는 운영체제도, 디스크도, 부팅이라는 절차도 없었어요. 기계의 배선 상태 자체가 곧 프로그램이었으니까요. 굳이 비유하자면 ENIAC 전체가 하나의 거대한 하드웨어 설정이었던 셈이에요.

앨런 케이는 평소에도 오늘날 당연하게 여기는 개념들이 사실은 역사의 특정 시점에 누군가가 발명한 선택지라는 점을 자주 강조해 온 사람이에요. 그래서 이런 질문은 단순히 예, 아니오로 답할 문제가 아니라, 부팅이나 펌웨어 같은 개념이 언제 왜 필요해졌는지를 되짚어보는 계기가 되는 거죠. 원문 답변도 그런 역사적 맥락 속에서 읽어보면 훨씬 재미있어요.

업계 맥락: 개념에는 다 태어난 이유가 있어요

부팅(booting)이라는 말 자체도 자기 신발 끈을 당겨 스스로를 들어 올린다는 bootstrap에서 왔어요. 아무것도 없는 상태에서 작은 프로그램이 더 큰 프로그램을 불러오는 과정을 표현한 말이죠. 이게 필요해진 건 폰 노이만 구조, 즉 프로그램과 데이터를 같은 메모리에 두는 저장 프로그램 방식이 보편화된 뒤예요. 메모리가 전원을 끄면 지워지니, 처음 켤 때 뭔가를 불러오는 장치가 필요해진 거죠.

이 흐름은 지금도 이어지고 있어요. PC는 BIOS에서 UEFI로, 임베디드 기기는 U-Boot 같은 부트로더로, 클라우드 서버는 네트워크 부팅과 펌웨어 보안(Secure Boot)으로 진화했어요. 형태만 바뀌었지 처음 전원을 켰을 때 누가 무엇을 믿고 불러올 것인가라는 질문은 그대로예요.

한국 개발자에게 주는 시사점

당장 실무에 쓰는 기술 이야기는 아니지만, 이런 역사를 알아두면 추상화의 층을 이해하는 데 큰 도움이 돼요. 우리가 매일 쓰는 도커 컨테이너, 가상머신, 서버리스 함수도 결국 누군가 부팅하고, 누군가 하드웨어를 추상화해준 덕분에 돌아가거든요. 임베디드나 시스템 프로그래밍, 보안(특히 부트킷이나 펌웨어 공격) 쪽에 관심 있다면 부팅 과정은 반드시 알아야 할 기본기이기도 해요.

또 하나, 앨런 케이의 글들은 개발자로서 시야를 넓히는 데 정말 좋아요. 그의 강연이나 답변을 읽다 보면 우리가 당연하다고 여기는 도구와 관습이 사실 최선이 아닐 수도 있다는 생각을 하게 되거든요.

마무리

ENIAC에게 BIOS를 묻는 건, 말에게 연료 탱크 용량을 묻는 것과 비슷하다. 개념은 늘 그것이 필요해진 순간에 태어나요.

여러분이 매일 당연하게 쓰는 기술 중에, 사실은 역사적인 우연이나 선택의 결과라서 다르게 만들어질 수도 있었겠다고 느낀 게 있나요? 댓글로 이야기 나눠봐요.


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://www.quora.com/Did-the-ENIAC-have-a-BIOS/answer/Alan-...
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...