TECH 으로 돌아가기
TECH HACKER NEWS 오늘 7분 읽기 26 READS

OS 없이 UEFI에서 바로 부팅하는 GW-BASIC 호환 인터프리터의 의미

OS 없이 UEFI에서 바로 부팅하는 GW-BASIC 호환 인터프리터의 의미
SOURCE IMAGE · HACKER NEWS

1980년대에 컴퓨터를 처음 만진 세대에게 BASIC은 전원을 켜면 곧바로 마주하던 언어였다. 별도의 운영체제나 개발 환경을 거치지 않고, 부팅이 끝나면 화면에 프롬프트가 뜨고 곧장 코드를 입력할 수 있었다. 최근 'Show HN'에 소개된 ThoreauBASIC(Thoreau BASIC)은 바로 그 경험을 현대 하드웨어에서 되살리려는 프로젝트다. 마이크로소프트의 GW-BASIC과 호환되는 인터프리터를 UEFI 펌웨어 위에서 직접 구동하는 방식으로, 리눅스나 윈도우 같은 운영체제를 전혀 거치지 않는다. 개발자는 별도의 윈도우용 버전도 함께 제공한다고 밝혔다.

운영체제 없이 펌웨어 위에서 도는 구조

이 프로젝트에서 가장 눈에 띄는 대목은 실행 환경이다. 일반적으로 옛 BASIC 환경을 재현하려면 도스박스 같은 에뮬레이터를 쓰거나, 최소한의 리눅스 이미지를 빌드루트(buildroot) 등으로 잘라내어 그 위에 인터프리터를 얹는다. ThoreauBASIC은 그 중간 계층을 모두 걷어내고 UEFI 애플리케이션으로 직접 부팅한다. 실제로 한 댓글 작성자는 자신도 빌드루트로 가장 작고 빠르게 부팅되는 BASIC을 만들어 봤고 동작은 했지만, 이 방식이 훨씬 깔끔하고 어떤 OS에도 의존하지 않는다는 점을 높이 평가했다.

운영체제를 거치지 않는다는 것은 곧 스케줄러, 드라이버 스택, 파일 시스템 계층 같은 중간 소프트웨어가 사이에 끼지 않는다는 뜻이다. 프로그램은 펌웨어가 제공하는 서비스에 바로 접근하며, 그만큼 실행 경로가 짧고 부팅에서 프롬프트까지의 지연도 줄어든다. 다만 이는 동시에 하드웨어 추상화를 스스로 감당해야 한다는 의미이기도 해서, 지원되는 장치나 입출력 범위는 펌웨어가 노출하는 기능에 좌우된다.

고전 BASIC의 한계를 넘어선 메모리와 저장

원래 GW-BASIC은 8비트·16비트 시절의 제약 속에서 동작했고, 이른바 컨벤셔널 메모리(conventional memory)의 좁은 한도 안에서 변수와 프로그램을 다뤄야 했다. ThoreauBASIC은 데이터 세그먼트 크기를 펌웨어(또는 윈도우)가 보고하는 가장 큰 컨벤셔널 메모리 블록에 맞춰 잡는다. 현대 기기에서는 이 값이 기가바이트 단위로 잡히며, 프로젝트 소개에서 언급한 '27GB'라는 숫자가 그 상징이다. 예전이라면 상상하기 어려웠던 규모의 작업 공간을 옛 문법 그대로 쓸 수 있게 되는 셈이다.

디스크 입출력은 UEFI의 Simple File System 위에서 직접 이뤄진다. SAVE, LOAD, MERGE, FILES, KILL 같은 익숙한 명령이 별도의 OS 파일 시스템 없이 펌웨어가 노출하는 파일 시스템을 통해 동작한다. 즉 프로그램을 저장하고 불러오고 병합하며 목록을 확인하거나 삭제하는 기본적인 파일 관리가 맨몸의 하드웨어 상태에서 그대로 가능하다.

편집·시간 측정 기능의 현대화

작성 환경도 고전 BASIC의 관습을 충실히 따른다. 전체 화면 EDIT, 줄 번호를 자동으로 매겨 주는 AUTO, 그리고 RENUM이 제공된다. 특히 RENUM은 줄 번호를 다시 매기는 데 그치지 않고 GOTO·GOSUB·THEN·ELSE·ON… 계열 분기·RESTORE·RESUME·ERL 등 줄 번호를 참조하는 모든 구문을 함께 고쳐 쓴다. 줄 번호 기반 흐름 제어가 코드 전반에 흩어져 있던 시절, 번호를 재정렬하면서 참조를 일일이 손보는 일은 번거로운 작업이었는데 이를 자동화한 것이다.

시간 측정에는 CPU의 인바리언트 TSC(invariant TSC)를 활용한다. TIMER 변수가 이 고정밀 클록을 읽어들이는 방식이어서, 과거의 저해상도 타이머와 달리 정밀한 시간 측정이 가능하다. 벤치마크나 게임 루프처럼 세밀한 타이밍이 필요한 경우 옛 문법으로도 현대 하드웨어의 시계를 그대로 활용할 수 있다는 점이 눈에 띈다.

실무적 의미와 한계

한국의 IT 실무자 입장에서 이 프로젝트는 당장 업무에 투입할 도구라기보다, 부팅과 실행 계층을 얼마나 얇게 만들 수 있는지를 보여 주는 참고 사례에 가깝다. 운영체제를 배제하고 펌웨어 위에서 곧장 실행되는 구조는 부팅 지연 최소화, 단일 목적 어플라이언스, 교육·실험용 환경 같은 맥락에서 시사점을 준다. 특히 레거시 언어의 문법을 유지하면서도 메모리 한도나 타이머 해상도 같은 시대적 제약만 걷어내는 접근은, 오래된 코드 자산을 현대 하드웨어에서 되살리려는 시도에 하나의 방향을 제시한다.

동시에 분명한 한계도 있다. OS가 없다는 것은 네트워킹, 다양한 주변장치 드라이버, 멀티태스킹, 보안 격리 같은 현대적 기능이 기본적으로 존재하지 않는다는 뜻이다. 접근할 수 있는 기능의 범위는 UEFI 펌웨어가 제공하는 서비스에 묶이며, 기기별 펌웨어 구현 차이에 따라 동작이 달라질 수 있다. 결국 이 프로젝트의 가치는 생산성 도구보다는, 익숙했던 언어를 최소한의 계층 위에서 다시 만나 보는 실험이자 그 경험이 여전히 유효함을 확인하는 데 있다. 향후 어떤 기능이 더해질지는 개발자의 추가 개발에 달려 있다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://tarjan.itch.io/thoreaubasic
SHARE
NEXT · CHOOSE

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

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

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