Zpět na seznamSvět Elona Muska4.7 (22 hodnocení)
scr00chyPublikováno: 7 let
Načítám přehrávač...
Jaký software SpaceX používá a jak se vypořádává s kosmickým zářením?
9:52
8.8K zhlédnutí
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.
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
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
Související videa
Komentáře
Žádné komentářeBuďte první, kdo napíše komentář





