Ảnh: Medium
Năm 2000, chúng ta từng trải qua một sự kiện liên quan đến vấn đề công nghệ mà cụ thể là sự cố lập trình rất hy hữu có tên "Sự cố máy tính năm 2000" hay còn gọi là "Lỗi thiên niên kỷ", "Sự cố Y2K" khiến các máy tính đời cũ bị "tê liệt".
Sự cố máy tính năm 2000
Sự cố máy tính năm 2000 từng khiến thế giới 'đứng ngồi không yên'. Ảnh: Popular Mechanics
Các thuật ngữ này được dùng để chỉ về một sự cố máy tính khi các máy tính thế hệ cũ không thể nhận biết được sự khác biệt giữa các năm 2000 và 1900 mà nguyên nhân chính là do chúng chỉ được lập trình với 2 chữ số cuối cùng của năm nhằm tiết kiệm dung lượng lưu trữ.
Nói chung, vấn đề phát sinh đáng lo ngại nhất và tác động mạnh mẽ đến con người nhất do sự cố máy tính năm 2000 gây ra chính là việc thời gian không còn được tính chính xác sau năm 2000.
Tất nhiên, phần lớn các máy tính cũ đã được thay thế bởi hệ thống máy tính mới để giải quyết vấn đề phát sinh này nhưng điều đó không có nghĩa là sự cố này sẽ không tái diễn một lần nữa, người ta ước tính sự cố này sẽ lại lặp lại vào năm ngày 19/3/2038.
Sự cố này sẽ có tên Y2k38 hay Bug năm 2038!
Tương tự sự cố năm 2000, sự cố năm 2038 cũng liên quan đến những hạn chế của bộ vi xử lý UNIX 32-bit và các hệ thống chạy trên bộ vi xử lý này khiến cho vấn đề nhận diện ngày, giờ sẽ lặp lại một lần nữa.
Cụ thể các máy tính 32-bit bắt đầu tính thời gian từ ngày 1/1/1970 nhưng hệ thống này chỉ cho phép đếm đến con số 2,147,483,647 nên vào thời điểm 03:14:07 UTC ngày 19/3/2038 thì các máy tính sẽ không còn đủ dung lượng để đếm tiếp.
Sự cố năm 2038 sắp đến liệu có như một vụ va chạm thiên thạch vào Trái Đất? Ảnh: Theness
Chính vì thế tất cả các hệ thống máy tính 32 bit sẽ khởi động trở lại mốc 1/1/1970 và hệ quả tất yếu là các máy tính sẽ không còn xác định đúng thời gian, tác động đến mọi hoạt động của con người như giao dịch, giao thông, thương mại...
Để giải quyết bài toán này, nhiều hệ thống máy tính đã được nâng cấp từ 32 bit lên 64 bit (khả năng đếm lên đến 9,223,372,036,854,775,808 giây) và tất nhiên điều đó sẽ giúp kéo dài thời điểm xảy ra lỗi lập trình thêm gần 3 thập kỷ nữa.
Hệ thống 32 bit nghĩa là gì?
Bit là một thuật ngữ nói đến độ rộng thanh ghi (Register) của bộ vi xử lý (CPU) mà máy tính dùng để lưu trữ dữ liệu nào đó, cụ thể với hệ thống 32 bit, chúng sẽ có khả năng lưu trữ 232 giá trị khác nhau tương đương với 4.294.967.295 số.
Trong đó (ngoại trừ số 0 ra) thì chúng ta sẽ có 4.294.967.295/2= 2,147,483,647 số âm và cũng chừng đó số dương. Để lưu trữ thời gian thì máy tính chỉ sử dụng các số dương nên chúng ra mới có con số 2,147,483,647 là giới hạn ghi nhớ của hệ thống 32 bit.
Các bạn có thể tự tính tiếp một cách tương tự với các hệ thống bit khác như 8 bit, 16 bit, 64 bit...
Bài viết được dịch từ các nguồn: Indiatimes, Theguardian, Technojobs