Chuyện giờ mới kể về những lập trình viên của NASA và chuyến tàu đầu tiên đưa con người trở về Trái Đất an toàn từ Mặt Trăng
Hãy cũng tìm hiểu làm thế nào các kĩ sư phần mềm đã giúp NASA đưa các phi hành gia vào không gian, và đem họ trở lại an toàn – đẩy xa những giới hạn công nghệ với những gì họ đã làm. Homer Ahr ngủ được 15 phút đến khi ông nhận được cuộc gọi từ sếp ở Trung tâm Johnson Space. ...
Hãy cũng tìm hiểu làm thế nào các kĩ sư phần mềm đã giúp NASA đưa các phi hành gia vào không gian, và đem họ trở lại an toàn – đẩy xa những giới hạn công nghệ với những gì họ đã làm.
Homer Ahr ngủ được 15 phút đến khi ông nhận được cuộc gọi từ sếp ở Trung tâm Johnson Space.
Ông ấy nói “Tất cả những gì ông ấy nói là ‘Homer, đến khu điều khiển nhiệm vụ; càng nhanh càng tốt.’ Tôi chả hiểu tại sao lại phải đến đó nữa,”.
Ahr còn nói “Trong vòng 30 phút đó tôi biết được rằng họ đang thực sự trong tình huống sống còn,”.
Tối hôm đó, phi hành gia của Apollo 13 – Jack Swigert đã làm mọi hoạt động của NASA như dừng lại, với câu nói nổi tiếng: “Houston, chúng ta có một vấn đề.”
Tàu Apollo 13 đã đi được 300,000 km trong chuyến hành trình đi đến mặt trăng của mình cho đến khi nó gặp vấn đề.
Vào thời điểm tháng 4, 1970 NASA biết rằng mình có rất ít sự lựa chọn để có thể mang 3 phi hành gia Apollo trở về nhà an toàn từ con tàu bị mắc kẹt.
“Từ khi nhận ra điều đó, tất cả những gì chúng tôi phải làm là mang họ trở về an toàn,” Ahr nói.
“Nó giống như việc bạn phải đâm mũi kim vào ngực ai đó để làm tim họ đập trở lại, thì bạn phải làm nó thôi. Bạn không nghĩ về việc mình đang làm gì. Bạn cứ làm thôi.”
Một trong những vấn đề đó là làm thế nào để tiến hành cuộc giải cứu mà không làm nổ thiết bị ở phần đuôi tàu. Tại Trung tâm Johnson Space ở Houston, TX, tổ kiểm soát nhiệm vụ đã giới hạn các lựa chọn thành một buổi diễn tập chưa từng có. Sự sống còn của các phi hành gia giờ đây phụ thuộc vào các thiết bị máy móc cũ kĩ, để thực hiện nhiệm vụ đưa con tàu về với đúng quỹ đạo.
Tổ điều khiển còn rất ít thời gian để tiến hành buổi diễn tập. May mắn thay, chỉ vài tháng trước khi phi hành đoàn cất cánh từ Cape Canaveral, 2 lập trình viên đã viết phần mềm cho tổ kiểm soát đã dự tính được những điều đó.
Một trong những lập trình viên ấy chính là chàng trai 22 tuổi Ahr, mới tốt nghiệp đại học 1 năm và đang làm việc cho IBM với tư cách là một chuyên gia hoạch định diễn tập hỗ trợ cho các nhân viên phòng bay NASA trong tổ kiểm soát.
Ahr nói khi các thuật toán tính toán cho diễn tập mới được nhập vào: “Nếu như chuyện đã xảy ra với tàu Apollo 13 lại tiếp diễn với tàu Apollo 12, thì thật sự chúng ta có một vấn đề rất lớn,”.
“Căn bản thì ta có thể làm được, nhưng theo như tính toán và trong trung tâm điều khiển nhiệm vụ, điều này là cực kì khó để có thể tìm ra khi nào và bằng cách nào buổi diễn tập có thể diễn ra.”
Ban chỉ huy nhiệm vụ cần đảm bảo rằng việc sử dụng các máy móc cũ sẽ hiệu quả, và Ahr cùng với 1 đồng nghiệp đã dành trọn đêm để chạy thử một cái được gọi là phân tích độ lan tỏa (dispersion analysis), để kiểm tra mọi thông số có thể xảy ra để xem bước đi này có đem con tàu về đúng trạng thái hay không.
Ahr kể “Tôi thậm chí không thể đếm nổi số lần chúng tôi chạy phép toán đó”, “nhưng sau khi đã làm phân tích xong, thì kết luận rút ra được đó là :
- Tiến hành diễn tập.
Người hùng máy tính
Sự trở lại an toàn của các phi hành gia là nhờ vào rất nhiều yếu tố, nhưng tổng hợp lại, Ahr phác họa cho thấy được tầm quan trọng của các máy tính thời đó đối với nhiệm vụ lên mặt trăng này.
Với mục tiêu đưa con người lên mặt trăng, chương trình Apollo của NASA có lẽ là tham vọng vè kỹ thuật lớn nhất từng được thực hiện. Trong suốt 15 nhiệm vụ Apollo trong đó có 6 nhiệm vụ đáp lên mặt trăng, những thông số chính xác cần có – về mặt định vị và tốc độ – để đưa còn tàu vào đúng quỹ đạo của hành trình từ Trái Đất và trở về thật chính xác.
Mọi cuộc diễn tập được thực hiện bởi phi thuyền thì được tính toán ưu tiên bới các máy của IBM ở RTCC (Real-Time Computer Complex) tại trung tâm Johnson Space, là được kiểm tra so với các diễn tập thực của tàu trong suốt nhiệm vụ.
Một chương trình khác cũng quan trọng không kém sự trở lại Apollo 13, và là sự thành công của một chương trình lớn hơn, đó là các hệ thống máy làm cơ sở cho nhiều mô phỏng tại Trung tâm Jonhon Space và Cape Canaveral. Các mô phỏng bao gồm các bản sao hoạt động của phi thuyền và các mô hình mặt trăng, và cho phép phi hành gia NASA và các điều hành viên chuyến bay trên mặt đất có thể thực hành mọi mặt của chuyển hành trình: từ lúc phóng đến lúc đáp xuống mặt trăng, đến lúc quay về Trái Đất, làm việc song song như lúc họ làm trong suốt nhiệm vụ.
Các mô phỏng được sao chép không chỉ là các công việc trên hệ thống máy máy, mà còn truyền dữ liệu về hệ thống dưới, tái tạo những hình ảnh của nhiệm vụ thực càng giống càng tốt, và sắp xếp nhân viên xử lí những vấn đề tiềm tàng có thể xảy ra.
Jack Winters, người đã kiểm thử các mô phỏng thành công và bắt đầu viết phần mềm cho chúng trong quá trình nhiệm vụ Gemini trước đó, kể rằng việc đào tạo cho các nhân viên điều hành chuyến bay là cấp thiết và vô giá đối với Project Apollo. “ Ví dụ như, trên tàu Apollo 13 họ phải có khả năng phát hiện ra vấn đề và được huấn luyện để giải quyết vấn đề,”Anh ấy nói
Trong nhiệm vụ Apollo 13, những mô phỏng này sẽ giúp kĩ sư và phi hành gia trên mặt đất – làm việc sát cánh với phi hành gia Ken Mattingly, người được thay thế lên chuyến bay Apollo 13 vào những phút cuối – tìm cách mang hệ thống trên tàu của module điều hành với mức năng lượng giới hạn hiện có, một bước đi quan trọng để tiến gần bầu khí quyển của Trái Đất.
Merritt Jones bấy giờ đang làm việc tại Trung tâm Johnson Space ở vị trí lập trình viên máy tính và nhà nghiên cứu các hành tinh, tính toán cơ chế làm thế nào một tàu vũ trụ di chuyển trên quỹ đạo.
Làm việc theo đúng quy trình để khôi phục lại hệ thống của tàu đổ bộ là vô cùng quan trọng với sự trở lại an toàn của phi hành đoàn Apollo 13, ông nói.
“Họ đã phải giảm công suất cần thiết cho việc tự khởi động. Trình tự khởi động là rất quan trọng. Nếu bạn không bắt đầu chuỗi đúng, hệ thống sẽ không hoạt động tốt hoặc thậm chí sẽ không hoạt động.”
Đẩy xa ranh giới
Các máy tính được sử dụng trong các sứ mệnh Apollo là thô sơ không tưởng theo tiêu chuẩn hiện đại. Mỗi mainframe trong 5 IBM System / 360 mainframe mẫu J75 của RTCC có khoảng 1MB bộ nhớ chính, thậm chí không đủ để tải một trang web đơn giản trong năm 2017.
“Các phần mềm điều khiển di chuyển chuột trên PC – điều khiển con chuột cho Windows – mất nhiều bộ nhớ hơn tất cả các siêu máy tính của NASA đặt lại với nhau đã cho Apollo,” Jones nói.
Mặc dù lắp đầy một hội trường với thiết bị điện tử, các mainframe từng đứng ra khoảng một triệu lệnh trong một giây (MIPS), chậm hơn so với các bộ vi xử lý nhanh nhất được sử dụng trong máy tính cá nhân ngày nay khoảng 30.000-lần.
NASA đang cố gắng vươn ra khỏi các giới hạn của những gì công nghệ vào thời điểm đó có thể làm, đồng nghĩa với việc đôi khi phải chấp nhận mạo hiểm, khi sử dụng những phần cứng và phần mềm chưa được kiểm chứng. Và nơi công nghệ đơn giản là không tồn tại, các đối tác thương mại của NASA phải phát minh ra nó.
Một ví dụ điển hình là hướng dẫn máy tính Apollo (AGC). Trong khi các hệ thống dưới mặt đất có vẻ không đủ mạnh, các máy tính trên tàu đơn giản hơn là quá trình quan trọng. Các hướng dẫn máy tính cho tàu vũ trụ Apollo cần phải đủ nhỏ để vừa trong một không gian chật hẹp và đủ sáng cho tên lửa Saturn để có được nó vào không gian. Các mainframe cỡ tủ quần áo của IBM mà NASA sử dụng trên mặt đất thì không cần bàn đến nữa.
Phòng thí nghiệm Công nghệ Instrumentation của viện Massachusetts (MIT-IL), trong đó có hợp đồng để phát triển các AGC, đã chuyển sang một công nghệ mới, mạch tích hợp, có khả năng làm cho máy tính nhanh hơn và nhỏ hơn bằng cách chế mòn các linh kiện bán dẫn lên các chip nhỏ. Thời điểm đó vào năm 1961, mạch tích hợp mới chỉ được phát minh ra hai năm trước và là không có bất cứ gì đảm bảo về tính ổn định của nó, nhưng đến năm 1963 MIT-IL đã chiếm khoảng 60% IC có sẵn trên toàn thế giới.
“Rất nhiều thứ phải làm gì với năng lượng và trọng lượng,” Bob Zagrodnick, một kỹ sư làm việc trên AGC tại Raytheon cho hay, nơi đã tạo ra 43 máy tính trong suốt quá trình của sứ mệnh Apollo nói.
“Đây là những đơn vị nhỏ và chúng không mất rất nhiều năng lượng. Chúng tôi không ngừng phấn đấu để giảm thiểu trọng lượng và điện năng tiêu thụ.”
Bất thường hơn là cách mà các phần mềm chạy trên AGC được đan xen với nhau. Tại dây chuyền sản xuất Raytheon ở Waltham, MA, thợ dệt quấn vòng các dây thông qua nam châm hình tròn, tạo nên một tấm thảm bằng kim loại có hoa văn tương ứng với các kí tự số 0 và 1, từ đó mã hóa các chương trình chạy trên máy tính.
“Họ thực sự đã luồng các thông tin chương trình chuyến bay vào bộ nhớ lõi của cuộn dây,” Zagrodnick nói.
Quay trở lại Trung tâm Johnson Space, IBM thấy bản thân họ đang phải đối mặt với một thách thức hoàn toàn mới. Các máy tính trong RTCC cần có khả năng xử lý công việc mới và dữ liệu trong thời gian thực, để hoàn thành vai trò của mình giám sát quỹ đạo phi thuyền và lái xe mô phỏng phức tạp của nhiệm vụ. Vấn đề là tại thời điểm đó trong đầu những năm 1960 hệ điều hành thời gian thực không tồn tại.
Theo Ahr: “Chúng tôi phải có được một hệ điều hành đa năng, đa vụ trong những năm 1960 – trước khi IBM xây dựng được một hệ điều hành đa chức năng.”
Vì vậy, IBM đã phát minh ra một cái, sửa đổi hệ điều hành (OS) hiện có trên hệ thống của nó trên mainframe System/30 của nó, ngoài việc tạo ra một cơ sở dữ liệu thời gian thực được gọi là DataTables, “trước khi bạn có bất cứ gì được gọi là cơ sở dữ liệu quan hệ,” Ahr nói, với các quy tắc nghiêm ngặt xung quanh mà dữ liệu có thể được cập nhật và khi nào, để đảm bảo thông tin quan trọng liên quan đến tàu vũ trụ sẽ là chính xác và khả dụng khi cần thiết.
Làm việc với một hệ điều hành mới được bổ sung một khó khăn mới vào một nhiệm vụ đã đầy thách thức, với các tính toán đưa ra những kết quả bất ngờ do không chỉ là lỗi ứng dụng, mà còn là lỗi trong hệ điều hành tương đối chưa được kiểm tra.
Phóng lên mặt trăng
Áp lực trên các lập trình viên trẻ IBM là rất cao, với các cá nhân làm việc trên dưới 80 giờ trong một tuần, với nỗ lực tối đa vượt qua tất cả các deadline.
Winters nói: “NASA đã có một lịch trình. Họ sẽ bay vào những ngày nhất định. Họ tuyên bố như thế với công chúng và IBM chắc chắn không muốn trở thành một trong những nguyên nhân gây ra các chuyến bay bị trì hoãn.”
Cơ chế đó để làm việc suốt ngày đêm được một phần là do lịch trình trừng phạt, mà còn vì tham vọng để đưa con người lên mặt trăng trong công việc, và mong muốn đánh bại người Nga trong cuộc chạy đua không gian.
“Chúng tôi đã rất vui mừng,” Winters nói. “Chúng tôi còn trẻ. Tôi nhớ rằng tôi 21 tuổi khi tôi bắt đầu. Chúng tôi không biết những gì chúng ta không thể làm được. Chúng tôi chỉ nghĩ rằng chúng tôi có thể làm bất cứ điều gì. Ở đây tôi đã làm việc trên phần mềm mà sẽ đi vào không gian và cuối cùng đến mặt trăng. Yếu tố áp lực là khủng khiếp.”
“Bạn có thể giết chết một người nếu bạn thất bại. Bạn có thể giết người đấy.”
– Tom Steele, lập trình viên máy tính của NASA
Hulen nhớ lại lúc gặp khó khăn trong việc mô phỏng động cơ đẩy trên tên lửa không người lái Agena trong sứ mệnh Gemini, dự án máy bay có người lai của Mỹ trước Apollo, khi ông đi một chuyến xuống cửa hàng bách hóa Sakowitz ở.
Ông nói: “Trên kệ, cùng với các loại sách thông thường mà bạn thấy trong một cửa hàng, là một cuốn sách được gọi là “Rocket Propellant and Pressurization Systems,”
Ông Hulen có nói “Tôi đã mua nó, và nó trở thành cuốn sách mà tôi cần. Tôi chỉ hoàn toàn phớt lờ các yêu cầu mà NASA đã viết và được lập trình ra khác cuốn sách này mà tôi đã mua tại Sakowitz,”. “Nó rất hiệu quả. Không ai bắt tôi, và kết quả của nó chỉ làm việc tốt. Họ đã có thể để mô phỏng những thứ nhất định lên mức độ chính xác cao hơn mức độ cần thiết.”
“Điều quan trọng là tôi đã, có lẽ, 22 tuổi, và tôi không biết tôi đang làm rất sai trái. Tôi chỉ nói: ‘Đối với tôi điều này có vẻ giống như những gì tôi nên làm.’ Tôi chẳng mảy may nghi ngờ về nó lắm,”.
Thật không dễ để cân bằng giữa công việc và cuộc sống. Nhiều người trong số các lập trình viên trẻ đã bắt đầu có gia đình vào thời điểm đó, nhưng họ thường thấy mình phải làm việc muộn để kiểm tra phần mềm , do các máy cần dụng được vận hành liên tục trong ngày.
“Rất nhiều thời gian phát triển của chúng tôi là trong lúc nửa đêm,” Winters nói.
Ông nói “Tôi đã dành nhiều thời gian ngoài giờ làmtrong việc thử nghiệm phòng máy tính phần mềm và giám sát việc thử nghiệm của phần mềm. Trong thực tế, cuộc ly hôn đầu tiên của tôi có lẽ do tôi hay làm việc trong khoản thời gian đó,”.
Trong tâm trí của mỗi kỹ sư thành công không chỉ là sứ mệnh mà còn là cuộc sống của các phi hành gia phụ thuộc vào phần mềm làm tốt công việc của nó.
Từ thời điểm Tom Steele gia nhập IBM vào năm 1963, làm việc ngoài Huntsville, AL về phần mềm cho các hệ thống hướng dẫn về tên lửa sao Thủy sử dụng trong Apollo, ông nói nhóm của ông đã được có được nhận thức sâu sắc về những gì đang bị đe dọa.
“Mỗi nhà thầu đã có một chương trình nâng cao nhận thức máy bay người lái. Những chương trình này được thiết kế để vừa giúp bạn làm việc tốt hơn, mà còn làm cho bạn có thể xử lý được suy nghĩ mà bạn có thể giết chết 1 người nếu bạn phạm sai lầm,” ông nói.
Ahr cảm thấy đặc biệt sâu sắc về nghĩa vụ trong sứ mệnh tàu Apollo 11, sứ mệnh 1969 đã đưa người đầu tiên lên mặt trăng.
Công việc của ông tại thời điểm đó là để chạy phần mềm, kiểm soát tính cơ động của tên lửa và tàu vũ trụ ở từng giai đoạn của nhiệm vụ này, và kiểm tra vị trí theo thời gian thực của tàu vũ trụ so với các kết quả dự kiến, làm việc để hỗ trợ các cán bộ chuyến bay ở trung tâm điều khiển.
Vai trò không phải là đơn giản, đòi hỏi Ahr ngồi tại một khu điều khiển để nghe khoảng tám đường dây điện thoại khác nhau cùng một lúc, cũng như những âm thanh phản hồi từ các phi hành gia. Ông nhớ lại cảm giác sợ hãi của mình khi những đường dây này bắt đầu lặp đi lặp lại tiếng báo động khi tàu Apollo 11 tiến về phía bề mặt của mặt trăng.
“Khi những cảnh báo đã xảy ra trong cuộc đổ bộ đầu tiên, nó thật đáng sợ,” Ahr nói. “Thật hỗn loạn để nghe tất cả mọi thứ vào cùng một lúc và cố gắng giữ bình tĩnh, giữ cái đầu lạnh và không được hoảng sợ.”
Ông tả “Nó giống như bạn đang ngồi ở một sân bóng đá, có hàng ngàn người dân la hét, và la hét, và gào rú, ngoài ra đồng thời còn có hỏa hoạn. Bạn biết đấy, xe cứu hỏa xuất hiện, xe cứu thương xuất hiện, cảnh sát xuất hiện, và tất cả họ đều bật còi báo động lên,”.” Đó là những gì bạn đang nghe như bạn đang cố gắng để ngồi đó và bình tĩnh xem các dữ liệu thời gian thực hiện lên.”
May mắn là chuyến viến thăm mặt trăng là như gần hoàn hảo: “Đó là một cuộc hạ cánh thành công nhất chúng tôi có thể bay,” Ahr nói, nhờ vào nhiều hệ thống chống sự cố được lắp đặt vào trong hệ thống Apollo này. Ví dụ, radar hẹn trong các mô-đun đã được bật, quá tải với các hướng dẫn máy tính Apollo với công việc. Tuy nhiên, hệ thống này đã có thể ưu tiên các nhiệm vụ cần thiết cho sự đổ bộ này, và bỏ qua những gì liên quan đến radar.
Ahr ghi nhận vào khả năng giữ bình tĩnh và làm công việc của mình đến công tác đào tạo mở rộng trước nhiệm vụ, nơi mà tất cả các cách thức của vấn đề đã được mô phỏng, và một nhận thức về tầm quan trọng ông và nhân viên khác nắm giữ.
“Mỗi hành động mà bạn đã làm trên giao diện điều khiển ảnh hưởng đến thành công của sứ mệnh và có thể ảnh hưởng đến cuộc sống của các phi hành gia,” ông nói. “Bạn phải có được một phẩm chất để khi có nhiều áp lực và gánh nặng hơn nữa, thì ở đó bạn làm việc tốt hơn.”
Có một sự tôn trọng lẫn nhau giữa các kỹ sư của IBM và các đồng nghiệp của họ NASA, sinh ra từ mối quan hệ làm việc chặt chẽ của họ và khi tham gia trong việc đưa chuyến bay vũ trụ có người lái thành hiện thực.
“Chúng tôi đã thực sự là một nhóm anh em,” Ahr nói. “Chúng tôi chỉ có một mục tiêu: nhiệm vụ thành công.”
Tôi khá là ngạc nhiên chúng ta đã thực hiện nó
Bên cạnh những sức ép là những giới hạn sâu sắc về công nghệ ban sơ thời bấy giờ, cho dù nó rất dễ để các nhà vận hành điều khiển như Ahr có thể phạm sai lầm khi gõ dữ liệu vào một máy điện tín trong suốt nhiệm vụ hoặc phải viết chương trình cho mainframe của IBM trên thẻ.
“Nhìn lại tôi khá là ngạc nhiên rằng chúng tôi có thể thực hiện nó,” Winters nói.
Mỗi giai đoạn của quá trình lập trình này là vô cùng nặng nề. Chương trình dành cho các mainframe của IBM tại Houston được viết trên miếng mã hóa, sau đó sẽ được trao cho các nhà vận hành keypunch người sẽ gán nó lên các thẻ.
Với văn phòng chính của Bộ phận hệ thống liên bang của IBM nằm cách các bộ máy khoảng gần một dặm, một người chuyển phát nhanh thì cần phải giao các khay thẻ cho Trung tâm Tin học và đưa về kết quả, hạn chế số lượng các phần mềm lần có thể chạy xuống mức trung bình khoảng 1,2 lần một lập trình viên mỗi ngày.
“Lương hằng tháng của tôi tương đương với 1 tiếng sư dụng máy tính”
– MERRITT JONES, lập trình viên máy tính và nhà định vị hành tinh của NASA
Hulen nói: “Nếu bạn là người may mắn, bạn sẽ có lại vào ngày hôm sau. Những gì bạn nhận được lại là giấy, và khá thường xuyên, ,” một dấu hiệu cho thấy chương trình đã hỏng. Debug mã này, chủ yếu là ngôn ngữ kết hợp với một số Fortran, để xác định nguyên nhân của vấn đề chẳng có gì giống với ngày nay.
Các chồng giấy có chiều cao “có lẽ tám hay chín inch”, mà không có một từ ngữ nòa viết bằng ngôn ngữ người trên đó.
“Tất cả sẽ là ở dạng hệ mã máy, và bạn phải học cách đọc đó và tìm ra những điểm quan trọng trong đó. Những gì bạn cần có lẽ đã chỉ khoảng một trang, nhưng không có bất kỳ phương tiện thực sự biết những gì bạn cần, ,” Hulen nói.
Tài liệu cũng là giới hạn, đặc biệt là trong những nhiệm vụ trước. Hulen nhớ lại lúc làm việc trên phần mềm từ xa liên quan đến tên lửa Agena sử dụng trong dự án Gemini. Các lập trình viên đều có trên từng bit của mỗi phần căn bản của phần mềm, được biết như các từ, được viết lên một miếng bài cứng mà họ gọi là bảng bit.
“Các tài liệu duy nhất là bảng bit này mà chúng tôi đã đặt lại với nhau. Nó làm việc khá tốt cho đến một đêm đội dọn dẹp vứt nó đi,” Hulen nói. “Chúng tôi không có bản dự phòng cho nó. Chúng tôi đã có một cuộc khủng hoảng, nơi mà chúng tôi phải tìm ra từng mảng bit một và cố gắng tái tạo lại bảng bit, mà chưa bao giờ là hoàn toàn thành công.”
Theo thời gian, quy mô chưa từng có của các chương trình đang hoạt động yêu cầu IBM phải xây dựng kế hoạch quản lý dự án phức tạp, kỹ thuật mà sẽ được sử dụng trong nhiều thập kỷ tới.
“Đây là những chương trình phần mềm vô cùng lớn. Có hơn một triệu dòng mã của phần mềm ứng dụng,” Winters nói. “Có rất ít ví dụ thành công của việc phát triển lượng phần mềm như thế.”
Có khoảng 500 lập trình viên của IBM ở Trung tâm Johnson Space ở khu vực Clear Lake Houston, trải rộng trên khoảng 10 tòa nhà khác nhau. Để phối hợp có hiệu quả lực lượng lao động, IBM đã đưa ra một cách tiếp cận để đưa các phần mềm thành các module được quản lý bởi các nhóm khác nhau và thiết lập thời gian cho thiết kế, mã hóa, tích hợp và thử nghiệm các mã sẽ được hoàn thành.
Winters nói một trong những nhà quản lý trước đó, Dick Hanrahan, “tiên phong về kĩ thuật quản lí đó,” và nói thêm rằng phương pháp này sẽ tiếp tục được sử dụng cho các dự án lớn của cả Bộ Hệ thống liên bang của IBM.
Sức mạnh của bộ vi xử lý và dung lượng bộ nhớ có sẵn cũng có rất nhiều hạn chế mà các lập trình viên phải tiêu tốn rất nhiều thời gian cố gắng để đơn giản hóa mã, đặc biệt là nếu một lệnh được thực hiện lặp đi lặp lại.
Jones nói về công việc tính toán quỹ đạo tàu vũ trụ trên mainframe của IBM:
“Tôi sẽ mất hàng tháng để đưa các phương trình thành một dạng mà sẽ tốn ít bộ nhớ hơn và thực hiện nhanh hơn và vẫn nhận được một câu trả lời chính xác chấp nhận được. Và tôi thật lòng khi nói rằng – mất hàng tháng,”
“Tôi sẽ dành một tháng cố gắng để loại bỏ lệnh đó từ một vòng lặp,” Jones nói. “Nếu tôi có thể rút một lệnh ra ngoài, tôi có thể tiết kiệm, thật lòng mà nói, 10.000 dòng lệnh.”
“Nếu bạn nhìn vào code, nó sẽ trông khủng khiếp, nhưng nó sẽ nhanh,” ông nói.
Theo Jones, nếu không có những tối ưu hóa này, phần mềm thực hiện các phép tính theo thời gian thực, chẳng hạn như vị trí hiện tại của tàu vũ trụ, căn bản không thể chạy trên các máy tính có sẵn.
Do các mainframe IBM sử dụng trong trung tâm điều khiển có bộ nhớ ít xa so với một máy ngày nay, phần mềm phải được nạp trong các phần, mỗi phần trong số đó liên quan đến một giai đoạn khác nhau của cuộc hành trình đến mặt trăng. Mỗi phần sẽ mất vài giây để tải, làm phức tạp thêm quá trình theo dõi một tàu vũ trụ có thể di chuyển được nhanh khoảng bảy dặm mỗi giây.
Hệ thống trên tàu vũ trụ còn nhiều hạn chế hơn so với hệ thống trên mặt đất, với máy tính Instrument Unit trên tàu tên lửa Saturn V chỉ có khả năng 15.000 vận hành mỗi giây và không hỗ trợ dấu chấm động toán học. “Bạn thậm chí không thể bắt đầu so sánh với ngày hôm nay,” Jones nói.
Sự khan hiếm của sức mạnh máy tính có nghĩa là giá trị tương đối của thời gian của lập trình viên với thời gian của máy tính là ngược với những gì nó làm vào năm 2017, Jones nói.
“Ngày nay, bạn có thể mua máy tính mạnh bao nhiêu bạn muốn nếu bạn có tiền để mua, và thời gian của lập trình viên có giá trị hơn so với máy tính. Trong những ngày đó, một giờ trên một máy chủ IBM đáng giá một tháng của một người có bằng thạc sĩ toán học làm công việc này. Tiền lương hàng tháng của tôi giống như một giờ trên máy tính lớn.”
Đáng ngạc nhiên, Steele cho biết hầu hết các kỹ thuật lập trình sử dụng hiện nay đã có sẵn trong những năm 1960: “Bạn chỉ không có bất kỳ máy tính mà có thể tận dụng lợi thế của nó,” ông nói.
Những hạn chế của công nghệ này là rất nhiều và các tính toán phức tạp đến mức các kỹ sư có thể hy vọng nhiều nhất là biết được mức chính xác càng cao càng tốt.
Steel nói “Không có chuyện có hay không tuyệt đối.[Nhưng] bạn phải đưa ra quyết định như nó từng như vậy,”.
Càng rõ về mức độ chắc chắn càng đồng nghĩa phải kiểm tra cho mỗi kết quả có thể nhận được. Tuy nhiên, mọi thứ chắc chắn không thể được thử nghiệm trên mặt đất, giống như cách môi trường không trọng lượng của không gian sẽ làm phá các bong bóng khí trong các khớp hàn trên mạch điện tử. Vì vậy, một việc quan trọng không kém, đó là học từ tất cả những nhiệm vụ trước đó.
Steele nói “Có một thứ là sự thật: Chúng tôi chưa bao giờ thực hiện một sứ mệnh mà không có thất bại. Chưa bao giờ,”.
Mặc dù những thách thức dường như không thể vượt qua, chương trình Apollo không chỉ đạt được mục tiêu tham vọng Tổng thống John F. Kennedy là đưa một người Mỹ lên mặt trăng vào cuối những năm 1960, nhưng sau đó kéo theo nhiều chuyến đi trở lại trái đất của các vệ tinh đá.
Nhiều thập kỷ sau đó, các lập trình viên Apollo mô tả một cảm giác tự hào, nhưng thậm chí nhiều hơn là cảm giác vô cùng may mắn.
Ông Winters nói “Tôi cảm thấy rất may mắn đã có cơ hội được là một phần trong đó. Tôi cảm thấy đây có thể là một trong những điều may mắn nhất từng xảy ra trong cuộc đời của tôi,”.
Steele kết luận lại một cách ngắn gọn hơn:” Chưa bao giờ có một ngày, không bao giờ có một ngày duy nhất là không có vấn đề để giải quyết, và nó thật tuyệt vời. Đó là một chuyến đi tuyệt vời.”
Source: Tech Republic