Как НАСА успява да изпрати хора на Луната. Част 1: Навигационният компютър

1
173
Добави коментар
redbul80
redbul80

Навигационният компютър на корабите „Аполо“. Photo credit : NASA

По случай 50-годишнината от първото стъпване на човек на Луната, която ще отбележим през юли, започвам да публикувам поредица от статии за проекта „Аполо“. Целта на поредицата е читателите на КОСМОС БГ да научат вълнуващи подробности относно най-великото постижение в историята на човешката цивилизация – покоряването на естествения ни спътник. 

12 юни 2019 г. 17:00 ч.

Светослав Александров. Много неща са се изписали за компютъра на корабите „Аполо“, с помощта на които човек за пръв път достига до Луната, но за съжаление повечето от написаното е в негативен контекст. Редовно четем в медиите, че изчислителната мощ на въпросния компютър е била сравнима с тази на обикновен калкулатор или че съвременните смартфони са хиляди пъти по-мощни от него. Освен че подобни сравнения не винаги са коректни (сравняваме строго специализирана компютърна система с такава за комерсиални цели), те не допринасят с нищо полезно – от една страна хората се подвеждат да си мислят, че само нашите компютри вършат качествена работа, а тези от 60-те години са били твърде слаби, за да са функционални. От друга страна сравненията водят до необосновани съмнения в способността на някогашната технология да закара човек на Луната. 

Реално погледнато, навигационният компютър на „Аполо“ е бил забележителна машина. Той е изпреварил времето си с поне десетилетие. Персонални компютри с неговите възможности се появили за пръв път за широко ползване едва в края на 70-те години. Нещо повече – в някои отношения дори съвременните компютри отстъпват на него. 

Преди да навляза в спецификите на материята, нека да направя една важна вметка. Обикновено за компютъра на „Аполо“ се говори в единствено число, но за реализацията на едно пилотирано кацане на Луната са били нужни цели четири компютъра. Първият е LVDC (Launch Vehicle Digital Computer) – той е бил компютърът, отговорен за автопилота на мощната ракета „Сатурн 5“ и е осигурявал правилното ѝ въвеждане в околоземна орбита. Имало е и компютър AGS (Apollo Guidance System) – той е бил резервен компютър в случай на провал на основната навигационна система на лунния модул. Общо два компютъра AGC (Apollo Guidance Computer) са били разположени на кораба – единият в командния модул, а другият в лунния модул. Като пиша за „компютър“ в тази статия, имам предвид именно AGC. 

Няма спор, че възможностите му в сравнение с тези на днешните компютри са били доста скромни: тактова честота от 1 MHz, 4k RAM и 32k ROM. Но за 1969 година това е бил доста напредничав компютър. Както обяснява известният технологичен влогър Curious Droid, първите персонални компютри за широко ползване с възможности като неговите и по-големи се появили едва през втората половина на 70-те години. Commodore PET (пуснат в продажба през януари 1977 година) и Apple II (пуснат в продажба през лятото на 1977 година) притежавали микропроцесори с тактова честота 1.023 MHz и 4k RAM. С това компютърът на „Аполо“ AGC се доказва като машина, изпреварила своето време. 

Софтуерът на AGC е бил написан на асемблер и по-голямата част от него е била записана в ROM паметта (т.е. паметта само за четене). При нужда определени софтуерни програми са били записвани и на т.нар. феритна памет (основен вид памет, който се е използвал масово в компютрите от 50-те, 60-те и 70-те години), а астронавтите са били в състояние да променят програмните инструкции чрез интерфейса на компютъра, наречен DSKY (такава процедура била изпълнена по време на мисията „Аполо 14“). Компютърът е работил с операционната система Exec, написана от Халком (Хал) Ленинг. Тя е позволявала многозадачност – AGC е бил в състояние да изпълнява до осем работни процеса едновременно. Това си струва да бъде отбелязано – днес ние възприемаме многозадачността за даденост и рядко на компютъра ни работи само една програма. И все пак технологията е съществувала още в края на 60-те години, в разгара на лунната програма! 

Въпросната многозадачност обаче се различава от тази на съвременните операционни системи. Модерните операционни системи използват т.нар. разпределена многозадачност. При нея операционната система може сама да поеме управлението на процесора, без това да става със съдействието на задачата. Сиреч, операционната система е изцяло в контрол на изпълнението на програмите и може да ги спре по всяко време. Компютърът на „Аполо“ обаче е разчитал на т.нар. неразпределена многозадачност – програмите периодично са трябвали сами да се откажат от управлението на процесора и да върнат контрола обратно към операционната система.

Това е давало неочаквано предимство, което прави компютъра на „Аполо“ по-добър в едно отношение от днешните компютри с модерни операционни системи. Макар че съвременният айфон бие AGC с хиляди пъти по изчислителна мощ, винаги има шанс операционната му система да забие. Това е валидно не само за iOS, но и за Android и Windows. Няма такъв шанс при компютъра на „Аполо“ – тук не операционната система, а самите програми са контролирали компютъра в стройна йерархична структура. Специфичната важност на дадена програма е определяла какво внимание ще получи. При спешни случаи това е позволявало на компютъра да се фокусира върху най-основните системи. 

Така компютърът на „Аполо“ е бил специално проектиран да е надежден и да не забива. И ако някой ден се ядосвате, че вашият телефон или лаптоп работи прекалено бавно и периодично „увисва“, спомнете си, че това не би могло да стане с щайгата на добрия стар „Аполо“. И до ден днешен AGC е рекордьор по надеждност. 

Това предимство на AGC, пише Curious Droid, е спасило мисията „Аполо 11“. Оказало се, че при кацането на модула „Ийгъл“ с Армстронг и Олдрин, имало бъг в програмата на радара. Радарът бил оставен в режим на стенд-бай по време на спускането в случай че се налагало спешно прекратяване на кацането. Въпросният бъг довел до претоварване на компютъра и до задействане на множество аларми броени мигове преди да бъде достигната лунната повърхност.

В такава ситуация вашият обикновен компютър или смартфон биха забили. Но AGC реагирал по съвсем друг начин – всички ненужни програми преустановили работа. Останали най-основните, след което компютърът се рестартирал. Това не е било неочакваното рестартиране, което понякога ни се случва, ако компютърът не работи правилно. Това е представлявало част от дизайна, наречен RESET Protection. Компютърът се изключил и пак се включил, започвайки работа от предходната си точка. Би било аналогично на ситуацията, в която вашият компютър излиза от спящ режим, само че AGC е правил процедурата много по-бързо. В крайна сметка Армстронг безпроблемно контролирал ориентацията на „Ийгъл“, а компютърът – работата на двигателите, докато се е стигнало до първото пилотирано кацане на Луната.

Всичко това показва, че компютърът на „Аполо“ не е бил просто древна машина, сравнима с модерен тостер или калкулатор. Той е бил върхова технология, каквато за комерсиално ползване не се е появила десетилетие по-късно. Счита се, че са произведени общо 75 бройки от този модел компютър и всеки от тях струвал на НАСА $200 000 долара (които, приравнени към днешни пари, са еквивалентни на $1.5 милиона долара). Вече през 1977 г. един комерсиален компютър Apple II със сходна изчислителна мощ бил достъпен за всеки човек за около $1 298 долара (еквивалентни на $5 367 долара днешни пари). Фактът, че днес всеки човек може да си поръча евтин компютър за десетки или стотици долари, показва колко много път са извървели компютърните науки. 

http://www.space-bg.org/

http://www.cosmos.1.bg/