Trình giả lập Tiny386 biến bộ vi điều khiển nhỏ thành một PC i386 hoàn chỉnh — máy ảo nhỏ có thể khởi động Windows 95 và Linux trên chip ESP32-S3

Bất cứ khi nào ai đó có một dự án phần mềm theo sở thích, thường thì một trong những nỗ lực của họ sẽ là chạy Doom trên một phần mềm kỳ lạ nào đó, chẳng hạn như vệ tinh ESA. Như một sự thay đổi đáng hoan nghênh, lập trình viên He Chunhui đã làm một điều hơi khác một chút: họ quyết định xây dựng một trình giả lập PC i386 chạy trên một bo mạch vi điều khiển ESP32-S3 nhỏ xíu. Nó có thể khởi động Windows 95, Linux và có thể cũng chạy được Doom.

Dự án này có tên là Tiny386, cung cấp khả năng giả lập cho CPU chính và bộ xử lý x87 tùy chọn. Bộ xử lý không tạo nên PC, vì vậy Chunhui đã chuyển một loạt các thiết bị ngoại vi cơ bản từ các dự án TinyEMU, QEMU và Seabios: BIOS và các thiết bị I/O của chúng, card VGA, bộ điều khiển đĩa IDE và thậm chí cả card âm thanh Sound Blaster 16. Do bo mạch ESP không có cổng sử dụng được cho các thiết bị ngoại vi này, nên đầu vào bàn phím và chuột được chuyển tiếp đến trình giả lập qua Wi-Fi.

Bo mạch vi điều khiển JC3248W535 dựa trên ESP32-S3 mà Chunhui sử dụng có thể được mua với giá từ 25 đến 30 đô la trên AliExpress, và mức giá đó đã bao gồm một màn hình 3,5 inch khá tốt. SoC bên trong có CPU lõi kép, DSP, WiFi và Bluetooth, cùng một loạt các đầu nối vi điều khiển I/O với nhiều hình dạng và kích cỡ khác nhau. Nhưng quan trọng hơn, ESP32-S3 là một thiết bị đơn giản hơn và có công suất thấp hơn nhiều so với một chiếc Raspberry Pi.

Chunhui nói rằng trình giả lập của họ “đơn giản và ngớ ngẩn” và thiếu một số tính năng, nhưng nó “có thể chạy hầu hết các phần mềm 16/32 bit”. Do Linux đã ngừng hỗ trợ bộ xử lý i386 từ lâu, Chunhui thấy cần phải thêm một số lệnh 486 và Pentium vào trình giả lập của mình để máy ảo có thể khởi động Linux hiện đại (thậm chí không cần BIOS) và Windows NT.

Cốt lõi của trình giả lập có khoảng 6.000 dòng mã và được viết hoàn toàn bằng C, cụ thể hơn là chuẩn C99. Điều này sẽ giúp việc chuyển đổi dễ dàng, một điều mà tác giả đã nhấn mạnh trên kho lưu trữ GitHub. Những người yêu thích có thể xem trình giả lập chạy trong bản demo Webassembly tại đây, hoặc xem video YouTube về cách nó hoạt động tại liên kết này. Việc xem Windows 3.2 và Windows 95 khởi động trên một SoC nhỏ gọn chỉ bằng ngón tay cái giá 25 đô la sẽ không bao giờ nhàm chán.