Jaký software SpaceX používá a jak se vypořádává s kosmickým zářením?Svět Elona Muska

Thumbnail play icon
Přidat do sledovaných sérií 26
91 %
Tvoje hodnocení
Počet hodnocení:99
Počet zobrazení:7 524

Ve videu z kanálu Simply Explained se dozvíte, jaké programovací jazyky a operační systémy používají vývojáři ve SpaceX, jak se raketa Falcon 9 a kosmická loď Dragon vypořádávají s kosmickým zářením a zda SpaceX používá speciální komponenty odolné vůči radiaci.

Přepis titulků

WEBVTT Ahoj. Jmenuji se Xavier a jak už možná víte, jsem vývojář. Také jsem obrovským fanouškem SpaceX, a tak mi vrtalo hlavou: jaký software a hardware mají na palubě Falcon 9, Falcon Heavy a Dragon? Nejprve se podívejme na výzvy, kterým čelí hardware a software vesmírného plavidla od chvíle, kdy opustí startovní rampu.

Za prvé, dostat plavidlo na orbitu Země je velmi náročné. Start na špičce rakety způsobuje silné vibrace a to znamená, že jak plavidlo, tak i elektronika to musí být schopny celé ustát. A až se na orbitu dostanete, čekají na vás ještě náročnější podmínky. Například Dragon se musí vypořádat s vysokými teplotami, když je vystaven Slunci, ale i se silným mrazem, když sluneční paprsky blokuje Země.

Tyto teploty se pohybují v rozmezí od -150 °C do 120 °C. Ale největším problémem pro elektroniku je radiace. Tuto radiaci tvoří vysoce energetické částice vystřelovány ze Slunce, částice uvězněné v magnetickém poli Země a také kosmické záření neboli částice z prostoru mimo sluneční soustavu.

Tyto částice mohou mít velmi neblahý vliv na systémy uvnitř plavidla. Jedním z největších problémů je tzv. změna bitu. K tomu dochází, když vysoce energetická částice zasáhne paměť nebo procesor v plavidle. Pokud zasáhne paměť, může změnit hodnotu bitu z 0 na 1 a znehodnotit tak část dat v paměti.

Naštěstí hardware na plavidlech SpaceX dokáže tyto změny bitů detekovat a opravit poškozenou paměť pomocí kontrolních bitů. Žádný problém. Ale pokud radiace zasáhne procesor, může to způsobit, že výsledek výpočtu bude zcela nesprávný. Abychom si to předvedli, požádáme procesor, aby vypočítal 10 + 10. V binárním kódu by to vypadalo takto a výsledek je samozřejmě 20.

Všechno je, jak má být. Nyní se ale podívejme, co se stane, když dojde ke změně bitu během výpočtu. Procesor znovu požádáme o výpočet 10 + 10, ale kvůli změně bitu procesor ve skutečnosti počítá něco úplně jiného. Ve výsledku zjistíme, že 10 + 10 se rovná 24, protože změna bitu nastala během výpočtu.

Nesprávné výpočty mohou mít na plavidlo velmi vážný dopad. Stalo se to během prvního letu rakety Ariane 5 v roce 1996. Důvodem nebyla změna bitu, ale 40 sekund po startu se palubní počítač pokusil vložit 64bitové číslo na 16bitovou adresu, což způsobilo oříznutí čísla a výsledek tak byl zcela odlišný. Avionika rakety následně pokračovala ve výpočtech založených na nesprávném čísle a provedla náhlou změnu kurzu, protože se domnívala, že letí špatným směrem.

Plavidlo se nakonec vlivem příliš vysokého aerodynamického namáhání rozpadlo. Nyní zpět ke SpaceX: Jak vyřešili problém s radiací? Předpokládali, že není možné elektroniku před radiací zcela ochránit, a podle toho přistupovali i k návrhu jejich systémů. Namísto použití drahých součástek odolných vůči radiaci SpaceX používá běžné komponenty.

Nejprve se podívejme na Dragon. Podle Johna Muratoreho, bývalého ředitele pro certifikaci plavidel SpaceX, je každý Dragon vybaven třemi letovými počítači. Každý letový počítač je osazen dvoujádrovým procesorem x86. Počítače však nevyužívají vícevláknové funkce. Místo toho se každý výpočet počítá na každém jádru zvlášť a výsledky se porovnávají. Takže tři počítače, každý se dvěma jádry, můžeme brát jako 6 nezávislých počítačů, které si neustále navzájem kontrolují své výpočty.

Pokud je jeden z letových počítačů zasažen radiací a vyprodukuje chybný výpočet, ostatní si toho všimnou. Když k tomu dojde, zasažený počítač je automaticky restartován, aby se předešlo dalším chybám. Po restartu musí počítač provést takzvanou resynchronizaci. Musí dohnat aktuální stav plavidla, takže si zkopíruje paměť ostatních dvou počítačů a spustí stejné programy.

tak trochu jako restart počítače s možností obnovit vaše okna, až se opět přihlásíte. Dragon zvládá dokonce i situaci, kde jsou radiací zasaženy všechny tři počítače současně, i když to je velice nepravděpodobná situace. Kromě 3 letových počítačů má Dragon na palubě 18 dalších systémů, které rovněž využívají trojnásobnou redundanci počítačů.

To je dohromady 54 procesorů. A to je jen jediná loď Dragon. Dragon ale není výjimka. Falcon 9 také má redundantní systémy. Má 3 počítače pro každý z 9 motorů a trojitě redundantní letový počítač, což dohromady představuje 30 procesorů.

Taková byla situace v roce 2012. Dnes má Falcon 9 procesorů možná ještě víc, aby zvládl přistávání. Teď si možná říkáte: "Počkat... To jako NASA opravdu dovoluje SpaceX používat běžný hardware? Takový, jaký si můžeme koupit na Amazonu? Vlastně ano. NASA nevyžaduje použití komponent odolných vůči radiaci.

Místo toho vyžadují od SpaceX rozsáhlý výzkum vlivů, které může mít radiace na jejich plavidla. Pokud vědí, jak jí budou ovlivněny, dokážou se s tím vypořádat. Říká se tomu design tolerantní vůči radiaci a ten se liší od designu odolného vůči radiaci. Dokonce ani NASA nepoužívá součástky odolné vůči radiaci úplně všude. Například Mezinárodní vesmírná stanice používá kombinaci součástek odolných vůči radiaci a běžných notebooků pro některé řídící prvky.

Dokonce i některé části raketoplánů byly vůči radiaci jen tolerantní, nikoli odolné. Ale zpět ke SpaceX: Podle čeho si vybírají součástky? Mají dvě podmínky: Za prvé, součástky musí být dostatečně výkonné pro svůj účel. To je jasné.

A za druhé se bere v úvahu, jaké vývojové prostředí daná součástka využívá. Vývojové prostředí definuje množinu lidí, z kterých si SpaceX může vybírat. Běžný hardware je dost standardní a vyžaduje software a nástroje, které už spousta vývojářů zná. SpaceX tak snáze najde zkušené lidi. Avšak součástky odolné vůči radiaci pracují pouze se speciálními programovacími jazyky, které ovládá málo lidí, což snižuje schopnost najímat nové lidi.

Standardní hardware je také levnější, což SpaceX umožňuje tyto systémy důkladně testovat. John Muratore uvedl, že v jeden moment čekalo na pracovních stolech na testování a vývoj více než 40 letových počítačů. To s drahým a těžko dostupným hardwarem zkrátka nejde. Ale dost bylo řečí o hardwaru. Co software, který všechno řídí? SpaceX si pro své systémy vybralo operační systém Linux.

Běží na pracovních stanicích i na plavidlech. Celoplošné použití Linuxu umožňuje zjednodušení vývojového procesu a poskytuje robustní nástroje. Jako programovací jazyk si zvolili C++, a to ze dvou hlavních důvodů. Za prvé, umožňuje to SpaceX najímat spoustu šikovných lidí, protože tento jazyk je stále relativně populární. Za druhé, můžou těžit z rozsáhlého ekosystému C++.

Netřeba psát vlastní software, když stačí prostě použít nástroje, které vývojáři už znají, jako například gcc a gdb. Linux ale není jedinou platformou, kterou používají. Používají i LabView, grafický programovací jazyk běžící ve Windows. Slouží k vizualizaci telemetrie získané z Falconu 9 či Dragonu během letu. Pozemní týmy pomocí něho zase sledují důležitá měření.

Další zajímavý fakt je, že SpaceX se snaží mezi svými plavidly sdílet tolik kódu, kolik je jen možné. Největší výhodou je, že opravy chyb pro jedno plavidlo se automaticky dostanou i do ostatních plavidel. A další zajímavost je, že SpaceX se často hodí vývojáři her, protože jsou zvyklí psát kód pro prostředí s omezeným výkonem a paměťovou kapacitou.

Na závěr se podíváme na to, jak SpaceX monitoruje svůj software a plavidla. Inženýři jsou vedeni k tomu, aby monitorovali úplně všechno. Když je plavidlo používáno, všechny záznamy jsou shromažďovány a analyzovány programy, které je upozorní, pokud je něco mimo bezpečné hranice. Všechna měření se zálohují spolu s kódem, který v dané době běžel.

Pokud by došlo k nějakým problémům, SpaceX dokáže vytvořit identické podmínky, problém zreprodukovat a najít řešení. Také používají nepřetržitou integraci, aby automaticky testovali veškerý kód napsaný programátory. Dokonce mají testovací stavy s připojenými všemi komponentami rakety Falcon 9 tak, aby mohli simulovat celý let a odhalit možné problémy.

Bližší detaily o použitém hardwaru a softwaru však nejsou dostupné, protože vláda USA je považuje za tajné. Raketa jako Falcon 9 je v podstatě řízená střela směřující do vesmíru, takže ve špatných rukách by mohlo dojít ke zneužití této technologie a způsobení škod. Ale i s omezenými informacemi máme docela dobrý přehled o softwaru a hardwaru používaném v SpaceX a jakým výzvám jejich týmy čelí.

To je prozatím vše. Pokud se vám video líbilo, lajkujte ho a zvažte odběr. Pro více novinek mě můžete sledovat na Twitteru a jako obvykle děkuji za sledování. Překlad: Martin Dravecký Korekce: Tomáš Matuška, Petr Melechin www.elonx.cz

Komentáře (7)

Zrušit a napsat nový komentář

Odpovědět

Tyvole ať žije optimalizace pro tablety, vůbec vám to nefunguje. Ještě že umím anglicky.

24

Odpovědět

přijde na to co je pro tebe tablet, jestli nějaký vergl s windows 10 tak se vůbec nedivím, že řešíš tyhle problémy.

10

Odpovědět

1:31 - hardware, ne software
1:37 - paritní bit je podmnožina kontrolních bitů, proč nepřeložit parity jako paritní? (a klidně pod video přidat vysvětlující poznámku...)

30

Odpovědět

Ahoj, díky za pozorné sledování, chybka opravena :-)

20