
Anh em có nhớ cái thời chơi game trên Linux nó khổ dâm như thế nào không? Mở cái game lên mà lỗi tùm lum, FPS thì tụt như tụt huyết áp. Thế quái nào mà dạo này, game thủ Linux lại gáy to thế, thậm chí có những con game chạy trên Linux còn mượt hơn cả Windows "chính chủ". Phép thuật ảo ma gì đang diễn ra ở đây?
Ngày xửa ngày xưa, để chơi game Windows trên Linux, anh em phải xài Wine hay Proton. Mấy cái tool này về cơ bản là dịch các API của Windows (kiểu DirectX) sang ngôn ngữ mà Linux hiểu được (Vulkan). Nghe thì xịn xò, nhưng việc chạy giả lập ở tầng user-space nó cắn RAM và CPU thôi rồi, delay là chuyện đ*o thể tránh khỏi.
Nhưng dạo gần đây, các pháp sư Linux đã chơi một nước cờ cực kỳ ma giáo: Bế mẹ luôn mấy cái cơ chế cốt lõi của Windows nhúng thẳng vào nhân (kernel) Linux.
Cụ thể là các cơ chế đồng bộ hóa của Windows NT (được biết đến với cái tên ntsync). Thay vì bắt Proton phải làm thằng phiên dịch viên chạy loanh quanh bên ngoài vừa chậm vừa lag, giờ đây Linux kernel có khả năng hiểu và xử lý trực tiếp các lệnh đồng bộ hóa của Windows. Kết quả? Game chạy mượt như lụa, overhead (độ trễ) giảm gần như bằng không. Dùng API của chính đối thủ để vả lại đối thủ, bá đạo thật sự!
Bài post này trên HN kéo theo gần 700 điểm upvote, cho thấy anh em dev hóng hớt cỡ nào. Lướt qua một vòng combat, tôi tóm lại cho các ông vài luồng ý kiến chính:
ntsync của Windows vào Linux kernel là một thứ chắc chắn là dị giáo đối với các purist (người theo chủ nghĩa thuần túy). Cấu trúc nó khác bọt, maintain cái đống này về lâu dài là cả một cơn ác mộng. Nhưng vì anh em game thủ, các pháp sư sẵn sàng nhắm mắt đưa chân.Qua cái vụ này, vãn bối xin mạn phép rút ra một bài học sinh tồn cho anh em dev nhà mình. Ngày xưa, mấy lão sừng sỏ trên Linux ghét đồ Microsoft như hất nước đổ đi, thà code từ đầu chứ đ*o thèm xài chung.
Nhưng rồi Valve nhảy vào, cầm cục tiền đập vào mặt: "Làm sao cho game chạy ngon trên Steam Deck là được, code bẩn tí cũng chả sao". Thế là nguyên tắc, đạo lý gì bay sạch. Miễn là giải quyết được bài toán performance, thì nhét API của "kẻ thù" vào core cũng thành tính năng xịn.
Làm dev cũng vậy thôi các đồng đạo ạ. Khách hàng họ chỉ cần app chạy mượt, game không giật, máy chủ không sập. Đừng có quá ám ảnh với việc code phải "thuần khiết" hay kiến trúc phải hoàn hảo. Một đoạn code chắp vá mà đẻ ra tiền, chạy ngon lành, giải quyết được pain-point của user thì nó còn xịn gấp vạn lần một hệ thống microservices hoàn hảo nhưng đ*o có ai xài. Chốt hạ thế nhé!
Nguồn hóng hớt: XDA-Developers / Hacker News
Tại sao game thủ Linux dạo này lại gáy to đến vậy? Hóa ra các pháp sư đã nhúng thẳng API của Windows vào Linux Kernel để chơi game mượt hơn cả hàng chính chủ.