Sau khi thoát khỏi sự kiện “tận thế” Y2K, thế giới công nghệ đang chuẩn bị phải đối mặt với một sự kiện mới mang tên Year 2038 anh em ạ. Không giống như lần khủng hoảng trước, với sự phát triển của công nghệ và Internet thì mọi người chúng ta có thể hiểu rõ và không cần lo lắng về những trò đùa về tận thế nữa. Tuy nhiên, nếu anh em chưa biết đây là sự kiện gì và nó có ảnh hưởng ra sao thì hãy cùng mình tìm hiểu thông qua bài viết này nhé.

Sự kiện Year 2038 là gì?

Sự kiện năm 2038 xuất hiện là bởi vì giới hạn của những những hệ thống máy tính và các con chip xử lý 32 bit gây ra. Về cơ bản thì vào 03:14:07 giờ UTC ngày 19/01/2038, toàn bộ hệ thống máy tính 32 bit sẽ không thể phân biệt được sự khác nhau giữa năm 1970 và 2038 và làm hàng loạt chương trình bị lỗi. Và cũng giống như sự cố Y2K, đây cũng là lỗi về vấn đề lưu trữ và hiển thị thời gian.

Nguyên nhân xảy ra sự kiện Year 2038

Hầu như tất cả các chương trình được viết bằng ngôn ngữ lập trình C đều không bị ảnh hưởng bởi sự cố Y2K, chỉ đến năm 2038 thì mới bắt đầu xảy ra chuyện các bạn ạ. Vấn đề này phát sinh bởi vì các chương trình được lập trình bằng ngôn ngữ C đều dùng một thư viện code có tên là standard time library. Thư viện này được thiết lập để lưu trữ thời gian bằng định dạng 4 byte (bằng 32bit) và cung cấp một số code để chuyển đổi, hiển thị và tính toán thời gian.

Thư viện thời gian dạng 4 byte được quy định bắt đầu từ 12:00:00 am ngày 1/1/1970 và được giá trị đầu tiên là số 0. Mỗi khi đồng hồ nhảy thêm một giây thì code đếm thời gian sẽ nhảy lên thêm một giá trị. Ví dụ nếu giá trị hiển thị là 653468421 thì thời gian đã trôi đến giây thứ 653.468.421 từ lúc 12:00:00 am ngày 1/1/1970 rồi. Sau đó, các dòng code trong thư viện standard library time sẽ lấy số này để tính toán xem lúc đó là là ngày, tháng, năm nào và đang là mấy giờ.

Tuy nhiên, vấn đề lớn nhất của bộ đếm thời gian dùng định dạng 4 byte là nó chỉ đếm được đến giá trị tối đa là 2.147.483.647 thôi các bạn ạ. Khi đó, đồng hồ sẽ “ngừng quay” vào lúc 03:14:07 ngày 19/1/2038 và bộ đếm thời gian sẽ quay ngược về giá trị – 2.147.483.647 (âm  2.147.483.647) rồi đếm ngược về số 0. Lý do nó quay ngược về giá trị âm rồi đếm ngược về số 0 thì khá là phức tạp nên anh em chỉ cần biết rằng hầu hết các chương trình đều không được lập trình để hiểu được số âm nên sẽ khả năng cao là sẽ xảy ra tình trạng lỗi hàng loạt trên các hệ thống máy tình 32bit.

Liệu có xảy thêm một vụ “tận thế” thứ hai?

May mắn là sự kiện năm 2038 dễ sửa hơn vụ Y2K rất nhiều anh em ạ. Không như hầu hết các chương trình và phần cứng từ thời Y2K không được được lập trình theo một tiêu chuẩn cụ thể, các phần mềm 32bit nếu được lập trình tốt có thể dễ dàng chuyển sang dùng một thư viện thời gian khác khác dùng định dạng 8 byte (64bit) để làm định dạng lưu trữ mới và tiếp tục hoạt động thêm vài trăm năm nữa.

Bên cạnh đó, đa số các loại PC ngày nay đều đã chạy trên các loại chip xử lý 64bit cùng với phần mềm cũng 64bit luôn. Đến cả Windows XP gần như đã tuyệt chủng cũng đã được Microsoft tạo ra phiên bản 64 bit từ năm 2005 rồi. Với tốc độ phát triển của công nghệ trong những năm gần đây, khả năng những dàn PC 32bit sẽ “tuyệt chủng” trước năm 2038 là khá cao anh em ạ.

Chỉ có một số hệ thống nhúng sử dụng trong các hệ thống giao thông vận tải, các thiết bị đã có tuổi đời cao, các loại thiết bị dùng trong xe hơi và một số hệ thống máy tính khác mới bị. Tuy nhiên, có rất nhiều loại hệ thống vẫn không bị ảnh hưởng vì không cần phải có giờ giấc chính xác mới hoạt động được. Tóm lại, sự kiện Year 2038 không quá khó sửa và cũng không ảnh hưởng đến toàn bộ máy tính trên toàn thế giới như hồi Y2K đâu.

Nguồn: How Stuff Work