Cách đây hơn 20 năm, cả thế giới đồn thổi về “ngày tận thế năm 2000” và “sự cố Y2K” có thể khiến toàn bộ hệ thống máy tính sụp đổ, kéo theo nhiều hệ lụy như hệ thống giao thông đình trệ, các doanh nghiệp, ngân hàng, tổ chức chính phủ phải đóng cửa.
Nguyên nhân của Y2K đến từ cách lưu thời gian của máy tính. Cách đây hàng chục năm khi bộ nhớ còn đắt đỏ, các máy tính, vi mạch đồng hồ điện tử chỉ dùng 2 số cuối của năm thay vì 4 số để tiết kiệm dung lượng lưu trữ. Chẳng hạn như thay vì lưu 1998, máy tính ở thời điểm đó chỉ lưu đơn giản là 98.
Thế giới chạy đua với thời gian để nâng cấp hệ thống, lập trình lại phần mềm trước thời khắc bước sang năm 2000. Ảnh: Bloomberg. |
Mọi thứ diễn ra bình thường trong thập kỷ 1960, 1970 nhưng đến cuối những năm 1990, các lập trình viên nhận ra máy tính không thể phân biệt năm 1900 với 2000 vì chúng đều có 2 số cuối là 00. Khi chuyển giao sang thế kỷ mới, mọi hoạt động sử dụng máy tính và vi mạch đồng hồ điện tử sẽ bị đảo lộn.
Hàng triệu người đã tham gia vào chiến dịch chạy đua để sửa lỗi hệ thống máy tính. Các lập trình viên có 2 lựa chọn để tránh sự cố Y2K: viết lại toàn bộ phần mềm, hoặc sử dụng phương pháp nhanh chóng hơn có tên windowing.
Theo NewScientist, cách này sử dụng phần mềm xử lý để máy tính hiểu giá trị từ 00 đến 19 là năm 2000 đến 2019, còn lại là của thế kỷ trước. Vào năm 1999, có đến 80% máy tính sử dụng phương pháp này vì nhanh chóng, chi phí thấp. Các lập trình viên cho rằng chúng sẽ hỏng hoặc được nâng cấp trong 20 năm tới.
Bước sang năm 2020, những hệ thống khắc phục sự cố Y2K bằng phương pháp “chữa cháy” sẽ gặp lỗi. Ảnh: Getty Images. |
Để lấy số 19, các lập trình viên chọn điểm chính giữa trong một thế kỷ tính từ năm 1970. Nhiều ngôn ngữ lập trình và máy tính chọn mốc thời gian đầu tiên để tính ngày giờ là 1/1/1970, còn gọi là “giờ Unix”.
“Khắc phục lỗi trên những hệ thống cũ là cơn ác mộng bởi không phải ai viết ra mã vẫn còn sống. Các lập trình viên không nghĩ rằng hệ thống của họ vẫn được sử dụng đến năm 2020”, Paul Lomax – kỹ sư từng khắc phục sự cố Y2K cho Vodafone, chia sẻ.
Đến thời khắc bước sang 2020, các máy tính sử dụng windowing để khắc phục Y2K đã bị lỗi vì không thể phân biệt số 20 là năm 1920 hay 2020.
Theo ghi nhận, một số hóa đơn tiền điện ghi ngày xuất là 1/1/1920, trong khi hàng chục nghìn máy bán vé đỗ xe tại Mỹ đã từ chối thanh toán bằng thẻ tín dụng vì sai ngày.
Một hóa đơn tiền điện ghi ngày xuất là 1/1/1920. Ảnh: @lippard/Twitter. |
Tại Ba Lan, hàng nghìn máy tính tiền của công ty Novitus không thể in hóa đơn do sự cố tương tự. WWE 2K20, tựa game đấu vật cũng ngừng hoạt động trong ngày đầu năm mới, rất may khi nhà phát hành 2K Sports đã tung ra bản sửa lỗi sau đó.
Nhà phát triển phần mềm thu thập lỗi máy tính Splunk đã nhận biết điều này từ tháng 11/2019 và khắc phục sau đó một tuần nên người dùng không bị ảnh hưởng.
Tựa game WWE 2K20 không thể chơi được do sự cố “hậu” Y2K. Ảnh: wLEGACYinc/YouTube. |
Nhiều phần mềm và hệ thống máy tính tại các cơ sở y tế cũng bị ảnh hưởng bởi sự cố “hậu” Y2K. Trả lời phỏng vấn, hãng phát triển phần mềm y tế McKesson khẳng định không nhận được thông tin gì.
Có nhiều cách để khắc phục sự cố này: viết lại mã phần mềm, nâng cấp hệ thống mới hoặc… sử dụng windowing để “chữa cháy” thêm vài chục năm.
Sau đây 18 năm, một sự cố tương tự sẽ xảy ra khi các hệ thống sử dụng hệ số nhị phân 32-bit để lưu thông tin sẽ ngừng hoạt động, lý do vì “giờ Unix” vượt giá trị giới hạn vào 3 giờ 14 phút 8 giây ngày 19/1/2038. Sự cố này còn hơn 18 năm mới xảy ra, trong khi nhiều máy tính hiện đã chuyển sang hệ thống 64-bit cho phép lưu trữ thời gian đến 292 tỷ năm.
Devmaster Academy via Zing