Lỗi Y2K "tái xuất" trong bản dựng BSD cũ khi lập trình viên Hà Lan phát hiện lỗi thời gian

Phần mềm15 tháng 6, 2026·3 phút đọc

Một lập trình viên người Hà Lan đã phát hiện lỗi Y2K chưa được vá trong trình nền NTP của BSD 2.11 khi phát triển trình giả lập hệ thống PDP-11/70. Tuy nhiên, lỗi này không gây nguy hiểm thực tế vì nó chỉ ảnh hưởng đến phần cứng lỗi thời và các thiết bị thu sóng ngắn hiếm gặp.

Lỗi Y2K "tái xuất" trong bản dựng BSD cũ khi lập trình viên Hà Lan phát hiện lỗi thời gian

Lỗi Y2K "tái xuất" trong bản dựng BSD cũ khi lập trình viên Hà Lan phát hiện lỗi thời gian

Đã hơn một phần tư thế kỷ trôi qua kể từ khi lỗi Y2K đe dọa gây hỗn loạn cho thế giới công nghệ thời bấy giờ. Mặc dù các nỗ lực vá lỗi của các chuyên gia IT toàn cầu đã ngăn chặn được một thảm họa vào thiên niên kỷ mới, vấn đề này vẫn tồn tại dưới một hình hài khác khi một nhà phát triển người Hà Lan vừa tìm ra một "cơn ác mộng" số học mới.

Khám phá bất ngờ trong trình giả lập

Trong quá trình phát triển trình giả lập (emulator) cho dòng máy tính "siêu máy tính" PDP (Programmed Data Processor) được sản xuất từ những năm 1950 đến 1990, Folkert van Heusden đã phát hiện một lỗi Y2K chưa được vá trong trình nền Network Time Protocol (NTP) của BSD 2.11.

Tuy nhiên, công chúng không cần quá lo lắng về việc này. Đây không phải là một lỗ hổng nguy hiểm đang chờ thời để gây hỗn loạn. Lỗi này chỉ đặc thù đối với hệ thống PDP-11/70 ra mắt năm 1975 và yêu cầu một bộ thu Precision Standard Time (PSTI) do công ty Traconex (đã ngừng hoạt động) sản xuất để bắt tín hiệu thời gian từ các đài phát thanh sóng ngắn do Viện Tiêu chuẩn và Công nghệ Quốc gia Mỹ (NIST) quản lý.

Lỗi thời gian "khủng khiếp"

Van Heusden chia sẻ với The Register qua email: "Tôi đang viết một trình giả lập PDP và cũng rất quan tâm đến việc đồng bộ hóa thời gian trên máy tính. Kết hợp hai yếu tố đó, tôi đã đi sâu vào việc triển khai NTP trên PDP. Khi thêm giả lập cho thiết bị PSTI, tôi đột nhiên thấy năm hiển thị là 19126."

Khi bộ thu PSTI tạo ra đầu ra chính xác, hệ thống lại báo lỗi rằng độ lệch thời gian giữa trình giả lập PDP và thiết bị PSTI là quá lớn. Cụ thể, sự chênh lệch này lên tới khoảng 17.000 năm, cộng thêm vài thế kỷ.

May mắn thay, van Heusden đã viết một bản vá để đồng bộ hóa lại thời gian, xóa bỏ một trong số ít lỗi Y2K còn sót lại trong tự nhiên. Rốt cuộc, đã bao lâu rồi bạn chưa nghe thấy một lỗi Y2K bị lãng quên (hoặc trong trường hợp này là bị bỏ qua do lỗi thời về công nghệ) được khắc phục?

Chạy hệ thống cổ trên Raspberry Pi

Nếu bạn muốn thử nghiệm với một hệ thống giả lập 50 năm tuổi chạy hệ điều hành 35 năm tuổi, tin vui là PDP với CPU 16-bit chạy ở tốc độ 5MHz và chỉ cần 4MB bộ nhớ chính. Trình giả lập PDP-11/70 của van Heusden có thể chạy dễ dàng trên phần cứng khiêm tốn như Raspberry Pi Pico, và mã nguồn đã có sẵn trên GitHub.

Chỉ cần nhớ rằng hãy vá lỗi Y2K này nếu bạn định mày mò với tính năng đồng bộ hóa thời gian trên hệ thống cổ kính này.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗