Mã nguồn từ thập niên 1970 đang "sống sót" giữa không gian sâu

Khám phá cách những dòng mã cổ điển với dung lượng bộ nhớ còn ít hơn một chiếc chìa khóa thông minh hiện đại vẫn đang điều hành các tàu thăm dò Voyager của NASA xuyên qua không gian liên sao.

·6 phút đọc

black and white labeled box

Một “viên nang thời gian” giữa các vì sao

Điều mà hầu hết mọi người bỏ lỡ khi ngước nhìn bầu trời đêm là một khung cảnh rất cụ thể từ năm 1977: một kỹ sư NASA đang mệt mỏi gõ những dòng mã cơ bản vào một cỗ máy với bộ nhớแทบ không đủ để chứa một bức ảnh kỹ thuật số duy nhất. Chính xác là đoạn mã đó vẫn đang chạy cho đến ngày nay. Nó đang điều khiển tàu vũ trụ Voyager bay cách Trái Đất hàng tỷ dặm.

Các tàu thăm dò này hoạt động chỉ với 69,63 kilobytes bộ nhớ máy tính. Để bạn dễ hình dung, một tệp văn bản trống trên máy tính xách tay của bạn còn chiếm nhiều dung lượng hơn thế. Vậy mà hệ thống sơ khai này vẫn đang tích cực điều hướng xuyên qua không gian liên sao ngay lúc này.

Thật lòng mà nói, tôi đã phải đọc lại các thông số kỹ thuật đến ba lần mới dám tin. Làm thế nào mà phần mềm được viết từ thời đại nhạc disco lại có thể sống sót qua bức xạ khắc nghiệt của vũ trụ trong gần năm mươi năm?

Nghệ thuật của sự sinh tồn đơn giản

Bạn có thể nghĩ rằng tàu vũ trụ cần sức mạnh tính toán khổng lồ để tồn tại. Chúng ta đã quá quen với các siêu máy tính và thuật toán phức tạp điều hành các thiết bị phần cứng hiện đại. Nhưng không gian sâu thẳm lại đòi hỏi một thứ hoàn toàn khác.

Các tàu thăm dò Voyager sử dụng các máy tính tùy chỉnh dựa trên các ngôn ngữ lập trình cổ xưa như Fortran và Assembly. Những ngôn ngữ này cực kỳ cơ bản so với tiêu chuẩn ngày nay, nhưng chúng cũng cực kỳ ổn định.

Không có hệ điều hành nào bị treo ở chế độ nền. Không có các bản cập nhật phần mềm ép hệ thống phải khởi động lại vào những thời điểm tồi tệ nhất. Mã nguồn chỉ thực hiện chính xác những gì nó được bảo, không hơn không kém.

Sự đơn giản này là một lợi thế khổng lồ. Chúng ta đã thấy điều gì xảy ra khi các hệ thống hiện đại phức tạp thất bại trong không gian, chẳng hạn như Sai lầm toán học trị giá 125 triệu đô làm hỏng cả một sứ mệnh do một lỗi chuyển đổi đơn vị đo lường đơn giản. Đội ngũ Voyager không thể để xảy ra những sai sót như vậy.

Họ đã xây dựng một hệ thống với nhiều lớp logic dự phòng. Nếu một tia bức xạ làm đảo ngược một bit trong bộ nhớ máy tính, phần mềm có thể phát hiện lỗi và chuyển sang hệ thống dự phòng. Thiết kế “tự chữa lành” này đã đi trước thời đại hàng ánh sáng.

★★★★★

một cuốn sách tuyệt vời về chủ đề này

🛒 Kiểm tra giá trên Tiki →

* Link tiếp thị liên kết - giá không đổi đối với bạn

Trái tim cơ khí của con tàu

Bên cạnh mã nguồn, khả năng lưu trữ vật lý cũng là một điều khó tin. Voyager không sử dụng ổ cứng SSD hay bộ nhớ flash hiện đại. Nó dựa vào một máy ghi băng kỹ thuật số tám rãnh.

Mỗi khi tàu vũ trụ cần ghi lại dữ liệu khoa học, một cuộn băng vật lý thực sự sẽ quay trong môi trường chân không băng giá của không gian. Phần mềm phải tính toán thời gian quay của cuộn băng này một cách hoàn hảo để ghi dữ liệu, sau đó phát lại thật chậm để truyền về Trái Đất.

Nếu mã nguồn tính toán sai thời gian dù chỉ một phần phân số của giây, cuộn băng có thể bị đứt. Một cuộn băng đứt đồng nghĩa với việc kết thúc sứ mệnh. Thế nhưng, màn khiêu vũ giữa cơ khí và kỹ thuật số này đã diễn ra không một lỗi lầm trong suốt nhiều thập kỷ.

”Hack” tàu Voyager từ Trái Đất

Việc bảo trì mã nguồn cổ xưa này là một thách thức kỳ lạ đối với các kỹ sư NASA hiện đại. Về cơ bản, họ đang giao tiếp với một “con tàu ma” bằng công nghệ đáng lẽ phải nằm trong bảo tàng.

Những lập trình viên ban đầu từ lâu đã nghỉ hưu. Tài liệu cho mã nguồn này bị chôn vùi trong các kho lưu trữ giấy hoặc đã mất hoàn toàn vào lịch sử. Khi có sự cố xảy ra ngày nay, các kỹ sư phải phân tích ngược lại logic từ thập niên 1970 chỉ để tìm hiểu xem điều gì đã sai.

Vào năm 2023, Voyager 1 bắt đầu gửi về những ký tự vô nghĩa. Đội ngũ nhận ra một phần nhỏ của bộ nhớ đã bị hỏng. Vì máy tính quá sơ khai, họ không thể chỉ đơn giản là khởi động lại nó bằng một bản vá.

Thay vào đó, họ phải cẩn thận chia nhỏ bản sửa lỗi thành từng mảnh tí hon. Họ gửi những mảnh mã này qua hàng tỷ dặm không gian, lưu trữ chúng vào những khoảng trống trong bộ nhớ cổ xưa của con tàu. Đó là một ca phẫu thuật kỹ thuật số với rủi ro cực cao được thực hiện xuyên qua hệ mặt trời.

Điều này khiến bạn phải suy ngẫm về phần cứng chúng ta chế tạo ngày nay. Chúng ta thường nghe về Lỗi 75 xu mà NASA đã phớt lờ gây ra những thất bại thảm khốc ở các máy móc đời mới. Vậy mà hai “chiếc đĩa vàng” này vẫn tiếp tục hành trình qua bóng tối, được vận hành bởi những logic được viết từ trước khi Internet tồn tại.

Bạn phải dành sự tôn trọng cho sự bền bỉ tuyệt đối của kỹ thuật cổ điển đó. Các tàu Voyager đang dần cạn kiệt năng lượng, và chẳng bao lâu nữa các thiết bị của chúng sẽ vĩnh viễn chìm vào bóng tối.

Khi tín hiệu cuối cùng mờ dần, đoạn mã từ thập niên 1970 đó vẫn sẽ ở ngoài kia, đóng băng trong thời gian khi nó trôi dạt về phía các vì sao khác. Liệu sẽ có ai đó ngoài kia tìm thấy nó không?

Bài viết liên quan

← Quay lại Blog