Huyền thoại FFmpeg ra mắt Micro QuickJS 10kB RAM là chạy được JavaScript

VNZ-TECHS
Fabrice Bellard cha đẻ của QEMU và FFmpeg vừa giới thiệu một dự án mã nguồn mở hoàn toàn mới mang tên Micro QuickJS.

Khác với người tiền nhiệm nổi tiếng QuickJS, Micro QuickJS không phải là bản mở rộng hay nhánh phát triển từ QuickJS mà là một cơ sở mã độc lập hoàn toàn, được thiết kế chuyên biệt cho vi điều khiển và các nền tảng nhúng có tài nguyên cực kỳ hạn chế. Mục tiêu của dự án là giải quyết bài toán lâu nay: phần cứng giá rẻ, công suất thấp gần như không thể chạy các ngôn ngữ kịch bản cấp cao như JavaScript.

mquickjs1.jpg


Theo tài liệu dự án, yêu cầu phần cứng của Micro QuickJS được đẩy xuống mức tối thiểu đến cực hạn. Engine này chỉ cần khoảng 10kB RAM là đã có thể biên dịch và chạy chương trình JavaScript.

Con số này thấp hơn rất nhiều so với ngưỡng bộ nhớ của các JavaScript engine truyền thống, cho phép Micro QuickJS dễ dàng triển khai trên nhiều thiết bị chi phí thấp, tiêu thụ điện năng thấp, mở ra những khả năng lập trình mới cho lĩnh vực Internet vạn vật (IoT) và điện toán biên.

Để đạt được mức độ nhẹ hiếm có này, Bellard đã đưa ra những lựa chọn thiết kế rất quyết liệt. Micro QuickJS không hướng tới việc hỗ trợ đầy đủ toàn bộ cú pháp JavaScript, mà tập trung vào một tập con chặt chẽ của chuẩn ES5.

Nhóm phát triển chủ động loại bỏ các tính năng phức tạp thường xuất hiện trong các runtime lớn, đồng thời tránh tối đa những hành vi động có thể làm gia tăng áp lực bộ nhớ. Triết lý thiết kế này giúp engine đạt được tính dự đoán cao khi chạy, mức sử dụng RAM cực thấp và kiến trúc tối giản.

Phù hợp với đặc thù phần cứng của hệ thống nhúng, Micro QuickJS áp dụng chiến lược lưu trữ khác biệt. Thư viện tiêu chuẩn của engine được biên dịch trực tiếp vào ROM (Flash) thay vì chiếm dụng RAM quý giá.

Cách tiếp cận này không chỉ giảm mạnh nhu cầu cấp phát bộ nhớ khi chạy, mà còn tăng đáng kể tốc độ khởi động. Ngoài ra, engine còn đơn giản hóa API và mô hình thực thi, giúp việc nhúng Micro QuickJS vào các firmware viết bằng ngôn ngữ C trở nên dễ dàng hơn rất nhiều, qua đó giảm gánh nặng cho các lập trình viên hệ thống.

Hiện tại, Micro QuickJS đã được phát hành công khai trên GitHub theo giấy phép mã nguồn mở. Dù không nhằm mục tiêu thay thế các JavaScript engine đầy đủ tính năng, dự án này đã lấp đầy một khoảng trống quan trọng: mang JavaScript đến với những nền tảng phần cứng mà trước đây bị giới hạn bởi tài nguyên quá thấp.
Các bạn có thể tham khảo thêm thông tin tại đây
Fabrice Bellard là một thiên tài lập trình người Pháp, nổi tiếng với những đóng góp mang tính nền tảng cho cộng đồng mã nguồn mở. Ông là người đặt những viên gạch đầu tiên cho QEMU (công cụ ảo hóa và giả lập toàn diện) và FFmpeg (khung xử lý âm thanh – video hàng đầu thế giới). Từ khi còn nhỏ, Bellard đã bộc lộ năng lực lập trình xuất chúng, đặc biệt trong Assembly, C, Java, và thường được giới công nghệ ca ngợi là “một người làm việc bằng cả trăm lập trình viên”.