UEFI에서 JavaScript 실행? 가능성의 문을 열다!

by DD
3개월 전
조회수 32

UEFI 환경에서 JavaScript를 실행하는 프로젝트(Project)가 등장하여 개발자 커뮤니티의 주목을 받음

Duktape를 사용하여 UEFI 서비스에 접근, 부팅 로더(Bootloader)를 JavaScript로 구현

성능 및 안정성(Stability)에 대한 우려와 함께, 다양한 활용 가능성에 대한 기대가 공존

JavaScript의 확장성(Extensibility)에 대한 긍정적/부정적 시각이 엇갈리며 논쟁 발생

UEFI 바인딩(Bindings) 구현 방식

본 프로젝트는 Duktape를 사용하여 UEFI 서비스에 접근한다. EFI 프로토콜(EFI Protocols)(GraphicsOutput, SimpleFileSystem 등)을 JavaScript에 직접 노출하여 하드웨어를 추상화하는 대신, UEFI 애플리케이션을 빠르게 프로토타입화할 수 있도록 설계되었다. C 언어(C Language)를 사용하여 성능이 중요한 부분을 구현할 수 있도록 유연성을 제공한다.

성능 및 부팅 환경의 제약

댓글에서는 부팅 환경의 제약으로 인해 부동 소수점 연산(Floating-point Arithmetic) 지원의 어려움을 지적한다. 또한, 가비지 컬렉션(Garbage Collection)의 문제로 인해 JavaScript 커널 구현에 대한 난관을 예상한다. 이러한 제약은 UEFI 환경에서 JavaScript의 성능과 안정성에 영향을 미칠 수 있다.

JavaScript 생태계 확장성에 대한 논쟁

일부 개발자는 JavaScript가 브라우저 내에서만 사용되어야 한다는 입장을 보이며, 다른 개발자는 파일 시스템 접근(File System Access)과 같은 기능을 JavaScript에서 사용할 수 있기를 원한다. 이러한 상반된 의견은 JavaScript의 일반 목적 프로그래밍 언어(General Purpose Programming Language)로서의 역할에 대한 논쟁으로 이어진다.

Duktape 선택의 기술적 의미

프로젝트에서 Duktape를 선택한 것은, 최소한의 libc 스텁(libc stubs)으로 독립적으로 실행될 수 있는 JavaScript 엔진이기 때문이다. 이는 V8 또는 SpiderMonkey와 같은 다른 엔진이 부팅 전에 실행하기 어렵다는 점을 고려한 결정이다. Duktape는 제약된 환경에서 임베딩(Embedding)되도록 설계되었기 때문에 UEFI 환경에 적합하다는 평가를 받는다.

UEFI Bindings for JavaScript