Chơi Tetris ngay trong file PDF trên trình duyệt
Máy Tính

PDF Không Chỉ Là Tài Liệu: Khám Phá Khả Năng Chạy Ứng Dụng, Game và Thậm Chí Linux Ngay Trong File

Bạn có bao giờ nghĩ rằng file PDF, định dạng tài liệu quen thuộc chúng ta dùng để đọc và ký kết, lại có thể làm được nhiều hơn thế? Hầu hết chúng ta chỉ xem PDF như một định dạng tĩnh, ít ai ngờ rằng chúng có khả năng chạy các ứng dụng, game và thậm chí là một hệ điều hành đầy đủ. Nếu bạn cũng bất ngờ như vậy, hãy cùng Cẩm Nang Công Nghệ tìm hiểu về những dự án đột phá, nơi các nhà phát triển đã thành công trong việc chạy ứng dụng trong PDF và khai thác tiềm năng ẩn giấu của định dạng này.

Tetris Trong PDF: Bước Khởi Đầu Của Một Xu Hướng Mới

Sự Khởi Đầu Đáng Ngạc Nhiên

Vào đầu năm 2025, một hiện tượng lạ đã xuất hiện trong cộng đồng công nghệ. Thomas Rinsma, một nhà phát triển tài năng, đã công bố dự án mà anh ấy thành công trong việc chạy game Tetris ngay trong một tài liệu PDF. Để chứng minh điều này, anh còn chia sẻ tài liệu PDF có thể chơi thử cho mọi người trải nghiệm.

Vậy làm thế nào mà Thomas có thể biến điều không tưởng này thành hiện thực? Bạn có thể tìm hiểu chi tiết trên blog cá nhân của Thomas, nơi anh ấy giải thích cặn kẽ về quá trình thực hiện. Một điểm đáng chú ý là:

“…thì ra cả PDFium (trình đọc PDF của Chromium) và PDF.js (của Firefox) đều triển khai một chút hỗ trợ kịch bản. Điều này đã khơi gợi sự tò mò của tôi, vì tôi thường xem chúng là những công cụ hiện đại/tĩnh/an toàn hơn.”

“Cả hai engine đều cung cấp một môi trường chạy JavaScript được “sandbox” (cô lập), chỉ có quyền truy cập vào một số API dành riêng cho PDF. Nhiều API từng được đặc tả (và thậm chí được một số trình đọc hỗ trợ) lại không được triển khai, có lẽ vì chúng không thực sự có ý nghĩa (bảo mật) từ góc độ của một trình duyệt web. Những gì được triển khai chủ yếu liên quan đến xác thực biểu mẫu.”

Điều này có nghĩa là, miễn là bạn mở tài liệu PDF bằng Chrome hoặc Firefox, phần mã bổ sung trong môi trường sẽ cho phép bạn thực hiện các tác vụ như điều khiển một trò game trong PDF và cập nhật hiển thị. Đây là một dự án xuất sắc, và như dự đoán, nhiều người trong cộng đồng mạng đã đặt câu hỏi liệu game Doom huyền thoại có thể chạy ứng dụng trong PDF được không. Dĩ nhiên, Doom là một trò chơi phức tạp hơn Tetris rất nhiều, với nhiều yếu tố chuyển động và điều khiển phức tạp hơn. Có vẻ như việc đưa Doom vào PDF là một thách thức khó nhằn.

Chơi Tetris ngay trong file PDF trên trình duyệtChơi Tetris ngay trong file PDF trên trình duyệt

Chơi Doom Ngay Trong File PDF: Từ Ý Tưởng Đến Hiện Thực

Điều Không Thể Tránh Khỏi

Thế nhưng, ý tưởng về Doom trong PDF không chỉ dừng lại ở câu hỏi. Một người dùng với tên gọi vk6_ đã xuất hiện và chấp nhận thử thách. Anh ấy đã dựa trên những gì dự án Tetris PDF đã đạt được để đưa Doom vào định dạng tài liệu này, mở ra những khả năng lớn hơn.

Điểm thú vị khi port Doom vào tài liệu PDF chính là bản thân trò chơi được thiết kế không cần đến chuột. Mặc dù có thể bật điều khiển chuột trong cài đặt game, người chơi vẫn có thể trải nghiệm thoải mái chỉ với bàn phím. Nhờ đó, vk6_ đã sử dụng cùng công nghệ bắt đầu vào bàn phím như trong game Tetris để tạo ra một phiên bản Doom hoàn chỉnh có thể chơi được.

Nếu bạn muốn tự mình trải nghiệm, hãy truy cập trang GitHub của DoomPDF để xem mã nguồn hoặc truy cập tài liệu DoomPDF để bắt đầu chơi ngay. Đây thực sự là một minh chứng hùng hồn cho việc PDF chạy code không còn là điều viễn tưởng.

Nâng Tầm: Chạy Cả Hệ Điều Hành Linux Trong Một File PDF

Mức Độ “Điên Rồ” Mới

Để hoàn thiện chuỗi thử nghiệm đáng kinh ngạc này, vk6_ tiếp tục đẩy giới hạn khi port toàn bộ một bản phân phối Linux trong PDF và nó hoàn toàn có thể sử dụng được! Mặc dù không có giao diện người dùng bóng bẩy, nhưng khi bạn đang sử dụng một hệ điều hành chạy bên trong một định dạng thường chỉ dùng cho hợp đồng và thông cáo báo chí, bạn khó có thể phàn nàn.

Đây là cách vk6_ đã thực hiện:

Mã C có thể được biên dịch để chạy trong PDF bằng cách sử dụng phiên bản cũ của Emscripten nhắm mục tiêu asm.js thay vì WebAssembly. Với điều này, tôi có thể biên dịch một phiên bản đã sửa đổi của trình giả lập RISC-V TinyEMU thành asm.js, có thể chạy trong PDF. Đối với đầu vào và đầu ra, tôi đã sử dụng lại cùng mã hiển thị mà tôi đã dùng cho DoomPDF. Nó hoạt động bằng cách sử dụng một trường văn bản riêng cho mỗi hàng pixel trên màn hình, với nội dung được đặt thành các ký tự ASCII khác nhau. Đối với đầu vào, có một bàn phím ảo được triển khai với một loạt các nút, và một hộp văn bản bạn có thể gõ vào để gửi các phím bấm đến máy ảo.

Nếu bạn muốn khám phá kỳ tích này, hãy xem qua trang GitHub của LinuxPDF để tìm liên kết đến tài liệu. Đây là đỉnh cao của việc biến PDF chạy ứng dụng thành một nền tảng thực sự đa năng.

PDF: Hơn Cả Một Tài Liệu Thông Thường

Với việc khám phá ra rằng các file PDF có thể chạy code thông qua Chrome hoặc Firefox, cộng đồng công nghệ đã có rất nhiều niềm vui khi đưa các ứng dụng độc đáo vào chúng. Với công nghệ này vẫn còn tương đối mới, ai biết được những gì mọi người sẽ làm được với PDF trong tương lai? Đây là một cánh cửa mới mở ra cho sự sáng tạo và tương tác, biến tài liệu tĩnh trở nên sống động hơn bao giờ hết. Bạn nghĩ sao về tiềm năng này? Hãy thử trải nghiệm các bản demo và chia sẻ ý kiến của bạn nhé!

Related posts

Microsoft Font Maker: Ứng dụng tạo font chữ viết tay ‘bị lãng quên’ của Windows

Administrator

5 Tính Năng Quan Trọng Của Windows 11 Nên Được Kích Hoạt Mặc Định

Administrator

ReFS là gì? Hệ thống tệp “đàn hồi” có thể thay thế NTFS của Windows?

Administrator

Vì Sao Tôi Từ Bỏ Obsidian Và Quyết Định Chuyển Sang Notion Để Ghi Chú Và Quản Lý Công Việc

Administrator

Cập Nhật Microsoft Defender: Giải Pháp Tăng Cường Bảo Mật Cho ISO Windows Cũ

Administrator

5 Plugin Logseq Giúp Tăng Năng Suất Vượt Trội Cho Người Viết Công Nghệ

Administrator