Image default
Máy Tính

Từ Tetris Đến Linux: Hé Lộ Khả Năng Chạy Ứng Dụng Đáng Kinh Ngạc Của PDF

Bạn có bao giờ nghĩ rằng một tài liệu PDF đơn thuần chỉ dùng để đọc, ký tên hay chia sẻ thông tin lại có thể làm được nhiều hơn thế? Rất có thể bạn, giống như nhiều người khác, đang bỏ lỡ một khả năng đáng kinh ngạc của định dạng file phổ biến này. Hóa ra, PDF có thể được dùng để chạy các ứng dụng phức tạp, thậm chí là cả game hay một hệ điều hành hoàn chỉnh. Nếu bạn đang ngạc nhiên tột độ, hãy cùng khám phá những dự án đột phá đã biến điều tưởng chừng không thể này thành hiện thực, mở ra một cái nhìn hoàn toàn mới về công nghệ PDF.

Bất Ngờ Với Tetris Chạy Ngay Trong Tài Liệu PDF

Khởi đầu của một kỷ nguyên mới?

Mọi chuyện bắt đầu trở nên kỳ lạ vào khoảng đầu năm 2025, khi Thomas Rinsma công bố một dự án thú vị trên nền tảng X (trước đây là Twitter). Anh đã thành công trong việc đưa tựa game Tetris huyền thoại chạy ngay bên trong một tài liệu PDF. Để chứng minh điều này, Thomas còn cung cấp tài liệu pdftris.pdf để mọi người có thể tự mình trải nghiệm.

Vậy làm thế nào mà một điều phi thường như vậy có thể thực hiện được? Thomas đã chia sẻ chi tiết về cách anh ấy đạt được thành tựu này trên blog cá nhân của mình. Một trong những điểm mấu chốt được Thomas tiết lộ là:

“…hóa 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ợ scripting. Điều này đã khơi dậy sự tò mò của tôi, vì tôi thường xem chúng là các trình đọc hiện đại/tĩnh/an toàn hơn.”

“Cả hai engine này đều cung cấp một môi trường chạy JavaScript (sandboxed JavaScript runtime) với quyền truy cập giới hạn vào một số API dành riêng cho PDF. Nhiều API đã được quy định tại một thời điểm nào đó (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ự hợp lý (về mặt 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 trình duyệt Chrome hoặc Firefox, một đoạn mã bổ sung được nhúng trong tài liệu có thể hoạt động, cho phép bạn điều khiển một trò chơi và cập nhật màn hình hiển thị. Đây thực sự là một dự án xuất sắc. Không ngoài dự đoán, cộng đồng mạng đã nhanh chóng đặt câu hỏi liệu Doom có thể được chạy trên PDF hay không. Tuy nhiên, Doom là một trò chơi phức tạp hơn nhiều so với Tetris, với nhiều thành phần di chuyển và yêu cầu hệ thống điều khiển tinh vi hơn. Liệu có ai đó có thể thực hiện được điều này?

Màn hình game Tetris đang chạy trực tiếp bên trong tài liệu PDF thông qua trình duyệt Chrome hoặc Firefox.Màn hình game Tetris đang chạy trực tiếp bên trong tài liệu PDF thông qua trình duyệt Chrome hoặc Firefox.

Doom: Khi Một Game Huyền Thoại Tái Sinh Trong PDF

Điều không thể đã thành hiện thực

Chính tại thời điểm đó, vk6_ đã xuất hiện. Anh nhận thấy những gì Tetris PDF đã đạt được và chấp nhận thử thách đưa Doom lên định dạng tài liệu này. vk6_ đã tận dụng rất nhiều cơ chế tương tự đã giúp Tetris PDF hoạt động để đạt được những thành tựu lớn hơn.

Điểm thú vị khi đưa Doom vào tài liệu PDF nằm ở chỗ trò chơi này được thiết kế ban đầu mà không cần đến chuột. Mặc dù có thể kích hoạt điều khiển chuột trong cài đặt game, bạn hoàn toàn có thể chơi Doom một cách thoải mái chỉ với bàn phím. Do đó, vk6_ đã sử dụng công nghệ thu nhận đầu vào bàn phím tương tự 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 thử 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 để chơi trực tiếp.

Đỉnh Cao Của Sự Sáng Tạo: Chạy Cả Hệ Điều Hành Linux Trên PDF

Từ game đến hệ điều hành: Mọi thứ đang trở nên “điên rồ” hơn

Để kết thúc chuỗi dự án ấn tượng, vk6_ đã tiếp tục port một bản phân phối Linux hoàn chỉnh vào một tài liệu PDF, và điều kinh ngạc là nó hoàn toàn có thể sử dụng được. Mặc dù giao diện người dùng (UI) không được đẹp mắt, nhưng khi bạn đang sử dụng một hệ điều hành chạy bên trong thứ mà thông thường chỉ dùng cho hợp đồng và thông cáo báo chí, thì bạn không thể phàn nàn nhiều được.

Dưới đây là cách vk6_ đã thực hiện dự án này:

Mã C có thể được biên dịch để chạy trong PDF bằng cách sử dụng một 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 TinyEMU RISC-V emulator sang asm.js, sau đó có thể chạy trong PDF. Đối với đầu vào và đầu ra, tôi đã tái sử dụng mã hiển thị tương tự 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õ để gửi các phím bấm đến máy ảo.

Nếu bạn muốn tự mình khám phá, hãy truy cập trang GitHub của LinuxPDF để tìm liên kết đến tài liệu.

PDF giờ đây không chỉ là một tài liệu tĩnh

Với phát hiện đột phá rằng các tài liệu PDF có thể chạy mã thông qua các trình duyệt như Chrome hoặc Firefox, cộng đồng công nghệ đã có rất nhiều niềm vui trong việc đưa các ứng dụng khác nhau hoạt động bên trong chúng. Khi công nghệ này vẫn còn tương đối mới mẻ, chúng ta khó có thể biết được những khả năng nào khác mà mọi người sẽ khám phá và phát triển với PDF trong tương lai. Có lẽ, những ứng dụng văn phòng, công cụ tương tác, hay thậm chí là các nền tảng học tập sẽ sớm tìm được “ngôi nhà” của mình ngay trong định dạng tài liệu quen thuộc này.

Bạn nghĩ sao về khả năng “chạy ứng dụng trên PDF” này? Liệu nó có mở ra một kỷ nguyên mới cho tài liệu kỹ thuật số hay tiềm ẩn những rủi ro bảo mật? Hãy chia sẻ ý kiến và suy nghĩ của bạn ở phần bình luận bên dưới nhé!

Related posts

Cách Chuẩn Bị Khôi Phục Thảm Họa & Bảo Vệ Dữ Liệu Trên Windows 11 Hiệu Quả Nhất

Administrator

Gokapi: Giải Pháp Chia Sẻ File Tự Host Đơn Giản, Bảo Mật và Hiệu Quả

Administrator

Tối ưu luồng khí: 5 thói quen quản lý cáp PC giúp giảm nhiệt độ vượt trội hơn cả việc lắp thêm quạt

Administrator