Phân tích XboxNahida/ghostty-blackhole-main: Trình bảo vệ màn hình mô phỏng hố đen vũ trụ cho Windows

7 phút đọc

Trong chuyên mục GitHub Repo Nổi Bật tuần này, chúng ta sẽ cùng phân tích repository XboxNahida/ghostty-blackhole-main, một dự án mã nguồn mở độc đáo viết bằng ngôn ngữ C++. Với 524 stars, 48 forks và ghi nhận bản cập nhật vào ngày 15/09/2026, dự án này mang đến giải pháp trực quan hóa hiện tượng vật lý thiên văn ngay trên hệ điều hành Windows dưới dạng một trình bảo vệ màn hình (screensaver) động.

Cơ chế mô phỏng vật lý và khả năng tương tác hệ thống

Dự án mã nguồn mở này hoạt động bằng cách chụp lại giao diện desktop hiện tại của người dùng, sau đó tiến hành dựng hình thời gian thực (real-time rendering) các hiệu ứng quang học phức tạp xung quanh một hố đen giả lập. Các hiệu ứng cốt lõi bao gồm thấu kính hấp dẫn (gravitational lensing), đĩa bồi tụ (accretion disk) và vòng photon (photon ring). Trình mô phỏng dựa trên nền tảng Shader hố đen của tác giả Eric Bruneton (được phát hành dưới giấy phép BSD-3-Clause).

Ứng dụng cung cấp hai chế độ hoạt động linh hoạt: cho phép hiển thị thường trực trên màn hình máy tính hoặc tự động kích hoạt khi phát hiện hệ thống đang ở trạng thái rảnh (idle). Để tối ưu hóa trải nghiệm sử dụng thực tế, nhà phát triển đã tích hợp cơ chế phát hiện hoạt động thông minh để tránh tự động kích hoạt hố đen khi người dùng đang xem phim hoặc chơi game. Cơ chế này hoạt động thông qua việc phân tích Windows Media Sessions, trạng thái cửa sổ tiền cảnh (foreground window) và thông tin tiến trình hệ thống.

Chương trình được tích hợp sẵn khả năng nhận diện các trình duyệt phổ biến, trình phát video cục bộ cũng như các ứng dụng xem video trực tuyến lớn như Bilibili, Tencent Video, iQiyi và Youku. Nhằm giải quyết các trường hợp nhận diện sót do chính sách tự động phát hiện hoạt động ở mức bảo thủ, người dùng có thể chủ động bổ sung quy tắc thông qua danh sách loại trừ tùy chỉnh bằng cách chọn trực tiếp ứng dụng đang chạy, duyệt tìm tệp thực thi (.exe) hoặc nhập thủ công tên tiến trình.

Cấu trúc gói cài đặt và yêu cầu môi trường phát triển

Một lưu ý quan trọng dành cho người dùng khi tải bản phát hành từ dự án là không được phép chỉ sao chép riêng lẻ tệp thực thi blackhole.exe. Trình mô phỏng yêu cầu một cấu trúc thư mục hoàn chỉnh để khởi động. Các thành phần bắt buộc phải đi kèm bao gồm: các tệp thư viện liên kết động Qt (Qt DLL), các thư mục plugin hỗ trợ, thư mục chứa Shader, thư mục hình ảnh và tệp blackhole.exe Renderer. Nếu thiếu bất kỳ thành phần nào trong số này, giao diện người dùng, tính năng xem trước hoặc quá trình dựng hình hố đen sẽ không thể khởi chạy.

Đối với các nhà phát triển muốn tự xây dựng (build) ứng dụng từ mã nguồn của phiên bản hiện tại v1.2.4, dự án đưa ra các yêu cầu kỹ thuật cụ thể bao gồm:

  • Hệ thống biên dịch: CMake phiên bản 3.20 trở lên.
  • Trình biên dịch: MinGW-w64 UCRT64 có hỗ trợ tiêu chuẩn C++17.
  • Thư viện giao diện và đồ họa: Qt phiên bản 6.8 trở lên, GLFW3 và các thư viện phát triển OpenGL.
  • Bản phát hành chính thức (release package) hiện tại được xây dựng trên nền tảng Qt 6.11.1 x64.

Khi ứng dụng khởi động, một luồng chạy ngầm sẽ tự động kiểm tra các phiên bản mới trên mục Release của GitHub mà không làm tắc nghẽn hay chậm trễ quá trình khởi chạy phần mềm của người dùng.

Các rào cản tương thích phần cứng và cảnh báo an toàn thông tin

Nhà phát triển dự án lưu ý rằng thông số hoặc thế hệ card đồ họa không phải là yếu tố duy nhất bảo chứng cho khả năng hoạt động ổn định của ứng dụng. Do cơ chế chụp màn hình desktop đòi hỏi sự can thiệp sâu vào phần cứng đồ họa, hoạt động của phần mềm có thể bị ảnh hưởng trực tiếp bởi các yếu tố cấu hình đặc thù như hệ thống chạy song song hai card đồ họa (dual GPU), môi trường máy ảo, kết nối điều khiển máy tính từ xa (Remote Desktop), trình điều khiển đồ họa đặc biệt hoặc các ứng dụng ghi hình/điều khiển màn hình đang hoạt động cùng lúc. Dự án hiện chưa thể kiểm thử trên mọi tổ hợp phần cứng và không cam kết tương thích tuyệt đối cho bất kỳ dòng card đồ họa cụ thể nào.

Nếu gặp lỗi không thể khởi tạo quá trình chụp màn hình (thường xảy ra do sự cố liên quan đến môi trường D3D11/DXGI Desktop Duplication, dù cửa sổ và OpenGL vẫn khởi tạo thành công), người dùng có thể mở công cụ PowerShell ngay tại thư mục giải nén ứng dụng để trích xuất chi tiết mã lỗi DXGI và phục vụ công tác chẩn đoán lỗi.

Bên cạnh đó, do chương trình hiện chưa được trang bị chứng thư ký số thương mại (commercial code signature) nhưng lại thực hiện một loạt hành vi hệ thống nhạy cảm như chụp màn hình desktop, hiển thị đè toàn màn hình, phát hiện tiến trình chạy ngầm, thiết lập tự khởi động cùng Windows và kiểm tra cập nhật mạng, các cơ chế bảo mật của Windows SmartScreen hoặc phần mềm diệt virus có thể đưa ra cảnh báo bảo mật dạng nhận diện hành vi (heuristic detection). Nhà phát triển cũng khuyến cáo người dùng cần kiểm tra kỹ thông tin riêng tư trong các tệp nhật ký (log) trước khi chia sẻ công khai lên mạng, do các tệp này có thể lưu lại đường dẫn thư mục nội bộ hoặc tên của các phần mềm đang hoạt động trên máy tính của bạn.

Những điểm hạn chế và vấn đề chưa hoàn thiện của dự án

Mặc dù là một công cụ mô phỏng hình ảnh ấn tượng, dự án vẫn đang trong quá trình phát triển và tồn tại một số điểm hạn chế kỹ thuật rõ rệt:

  • Hiệu ứng ánh sáng và bóng tối của đĩa bồi tụ (accretion disk) vẫn đang dừng lại ở mức tính năng thử nghiệm (experimental). Khi kích hoạt, người dùng có thể gặp phải các hiện tượng bất thường như màn hình bị bạc màu, thay đổi độ tương phản đột ngột hoặc các lỗi hiển thị đồ họa khác.
  • Chưa có giải pháp tương thích toàn diện cho các hệ thống sử dụng môi trường đồ họa phức tạp hoặc các ứng dụng can thiệp sâu vào bộ đệm khung hình.
  • Người dùng mới được khuyến nghị phải chọn tùy chọn “Luôn hiển thị” (Always display) ở lần chạy đầu tiên để kiểm tra độ ổn định của bộ dựng hình trước khi cấu hình các tính năng phát hiện trạng thái rảnh phức tạp hơn.

Nguồn tham khảo: Xem bài gốc

📆
Âm Lịch: 17/8
Giáp Thìn

📆 Lịch Âm Dương NsN

×
Hôm Nay - Chủ Nhật
Âm Lịch: 17 Tháng 8
Năm Bính Ngọ
📌 Ngày Can Chi: Giáp Thìn
✨ Giờ Hoàng Đạo: Dần (3-5), Thìn (7-9), Tỵ (9-11), Thân (15-17), Dậu (17-19), Hợi (21-23)
Vĩnh Phúc (Liên Bảo - Vĩnh Yên)
27°C
Nắng Đẹp
💧 89% | 💨 15 km/h
Hôm nay 32°
28/09 33°
29/09 34°
30/09 33°
01/10 31°