1 00:00:06,320 --> 00:00:11,499 [Music] 2 00:00:15,830 --> 00:00:28,020 [Music] 3 00:00:28,320 --> 00:00:32,719 hello everyone and welcome back from 4 00:00:30,640 --> 00:00:35,120 your afternoon tea i hope you had a 5 00:00:32,719 --> 00:00:37,920 great time uh we're in the kia ora 6 00:00:35,120 --> 00:00:41,120 theater at uh linuxconf australia in 7 00:00:37,920 --> 00:00:42,800 2022 and next up we have sambish sam 8 00:00:41,120 --> 00:00:45,120 bishop is a professional software 9 00:00:42,800 --> 00:00:48,000 developer amateur rocket scientist and 10 00:00:45,120 --> 00:00:49,280 astronomer who loves python django cats 11 00:00:48,000 --> 00:00:51,840 working on their personal software and 12 00:00:49,280 --> 00:00:53,360 hardware projects everything space 13 00:00:51,840 --> 00:00:54,800 playing games of all kind and tinkering 14 00:00:53,360 --> 00:00:56,000 with 3d printers 15 00:00:54,800 --> 00:00:58,000 sam's going to be talking about the 16 00:00:56,000 --> 00:01:00,239 users challenges and opportunities 17 00:00:58,000 --> 00:01:02,160 involved in open source software 18 00:01:00,239 --> 00:01:04,320 running in space he does have time for 19 00:01:02,160 --> 00:01:06,159 questions at the end 20 00:01:04,320 --> 00:01:07,119 so we will 21 00:01:06,159 --> 00:01:09,600 make sure that you're writing your 22 00:01:07,119 --> 00:01:10,840 questions in the venulis tab while we go 23 00:01:09,600 --> 00:01:13,920 take it 24 00:01:10,840 --> 00:01:16,960 away hi 25 00:01:13,920 --> 00:01:19,280 so yeah boldly going linux in space i'm 26 00:01:16,960 --> 00:01:21,360 sam bishop uh freelance software as you 27 00:01:19,280 --> 00:01:22,799 heard my contact info is there on the 28 00:01:21,360 --> 00:01:23,840 slide there 29 00:01:22,799 --> 00:01:25,520 and 30 00:01:23,840 --> 00:01:28,000 just for perspective 31 00:01:25,520 --> 00:01:29,920 let's get a timeline going as i said 32 00:01:28,000 --> 00:01:31,200 questions at the end it's a very broad 33 00:01:29,920 --> 00:01:32,880 talk so 34 00:01:31,200 --> 00:01:35,360 plenty of time for questions at the end 35 00:01:32,880 --> 00:01:36,479 so you can ask whatever sort of peaks 36 00:01:35,360 --> 00:01:38,000 your interest 37 00:01:36,479 --> 00:01:39,920 now 38 00:01:38,000 --> 00:01:40,880 going through the timeline here we've 39 00:01:39,920 --> 00:01:43,759 got 40 00:01:40,880 --> 00:01:47,200 a few useful tidbits here linux started 41 00:01:43,759 --> 00:01:48,720 in 1991 we got slackware two years later 42 00:01:47,200 --> 00:01:49,920 a few more years down the line we got a 43 00:01:48,720 --> 00:01:51,600 mascot 44 00:01:49,920 --> 00:01:53,680 and then we start to see the more 45 00:01:51,600 --> 00:01:54,799 business side more enterprise 46 00:01:53,680 --> 00:01:56,079 stable 47 00:01:54,799 --> 00:01:58,640 reliable 48 00:01:56,079 --> 00:01:59,360 we can trust this to you know not die on 49 00:01:58,640 --> 00:02:01,200 us 50 00:01:59,360 --> 00:02:03,600 type things happening just after two 51 00:02:01,200 --> 00:02:05,439 year 2000 we've got red hat in 2002 and 52 00:02:03,600 --> 00:02:07,119 then four years later ubuntu coming out 53 00:02:05,439 --> 00:02:09,520 in 2004 54 00:02:07,119 --> 00:02:11,200 and why this is relevant is that when 55 00:02:09,520 --> 00:02:12,800 you start to look at the history of 56 00:02:11,200 --> 00:02:15,040 linux in space 57 00:02:12,800 --> 00:02:16,560 what you see is that it didn't take long 58 00:02:15,040 --> 00:02:18,000 for linux to 59 00:02:16,560 --> 00:02:19,680 start turning up in space as soon as 60 00:02:18,000 --> 00:02:22,400 people started to trust it 61 00:02:19,680 --> 00:02:23,920 you've got in 1999 62 00:02:22,400 --> 00:02:26,000 the start of a project 63 00:02:23,920 --> 00:02:27,120 nasa evaluating whether linux could fit 64 00:02:26,000 --> 00:02:28,879 into a 65 00:02:27,120 --> 00:02:31,200 software stack designed for running a 66 00:02:28,879 --> 00:02:33,280 space mission um that didn't really 67 00:02:31,200 --> 00:02:35,440 result in any actual missions but it was 68 00:02:33,280 --> 00:02:37,440 a thorough evaluation of how this kind 69 00:02:35,440 --> 00:02:38,400 of software fits into their overall 70 00:02:37,440 --> 00:02:41,920 planning 71 00:02:38,400 --> 00:02:44,080 you've got 2003 quake sat which was an 72 00:02:41,920 --> 00:02:46,840 earthquake investigation it was powered 73 00:02:44,080 --> 00:02:50,239 with a diamond systems prometheus 74 00:02:46,840 --> 00:02:53,280 pc104 module with the regular old x86 75 00:02:50,239 --> 00:02:55,360 cpu and despite it being only one year 76 00:02:53,280 --> 00:02:56,400 old at the time it was running red hat 77 00:02:55,360 --> 00:02:58,080 linux 78 00:02:56,400 --> 00:03:00,239 now 79 00:02:58,080 --> 00:03:02,080 in a few years later we have 80 00:03:00,239 --> 00:03:05,519 another mission interestingly enough 81 00:03:02,080 --> 00:03:07,120 using the micro linux which is a version 82 00:03:05,519 --> 00:03:09,519 of linux designed for computers without 83 00:03:07,120 --> 00:03:11,120 a memory management system because the 84 00:03:09,519 --> 00:03:14,239 sort of hardware you can put in space 85 00:03:11,120 --> 00:03:16,159 tends to be very power constrained 86 00:03:14,239 --> 00:03:18,159 one of the things people tend to say is 87 00:03:16,159 --> 00:03:21,280 that when you put it in space you put it 88 00:03:18,159 --> 00:03:22,720 back in time 10 years because you end up 89 00:03:21,280 --> 00:03:24,319 picking software and hardware that's 90 00:03:22,720 --> 00:03:27,280 been around so long it's considered 91 00:03:24,319 --> 00:03:30,239 reliable and solid 92 00:03:27,280 --> 00:03:33,040 in 2007 we got another mission here 93 00:03:30,239 --> 00:03:34,480 we've got arm running linux on a payload 94 00:03:33,040 --> 00:03:36,720 controller now the difference between a 95 00:03:34,480 --> 00:03:38,640 payload controller and a full flight 96 00:03:36,720 --> 00:03:41,440 computer is that it's only responsible 97 00:03:38,640 --> 00:03:43,120 for part of the mission so linux wasn't 98 00:03:41,440 --> 00:03:44,720 responsible fundamentally for that 99 00:03:43,120 --> 00:03:46,480 entire mission there 100 00:03:44,720 --> 00:03:47,920 uh we've got a follow-up to that first 101 00:03:46,480 --> 00:03:49,440 micro linux 102 00:03:47,920 --> 00:03:50,959 mission there where they were running it 103 00:03:49,440 --> 00:03:53,280 on their second follow-up mission in 104 00:03:50,959 --> 00:03:56,799 2009 and then 105 00:03:53,280 --> 00:03:59,840 out the gate strong linux in 2010 is 106 00:03:56,799 --> 00:04:02,159 what's powering the falcon 9 rocket so 107 00:03:59,840 --> 00:04:03,760 they put that rocket into space flow it 108 00:04:02,159 --> 00:04:06,400 all the way there with linux flying all 109 00:04:03,760 --> 00:04:08,239 the avionics and then once the second 110 00:04:06,400 --> 00:04:10,000 stage reached orbit it was responsible 111 00:04:08,239 --> 00:04:11,439 for the operation of that entire second 112 00:04:10,000 --> 00:04:13,120 stage in space 113 00:04:11,439 --> 00:04:14,879 um 114 00:04:13,120 --> 00:04:16,560 and then following on through that they 115 00:04:14,879 --> 00:04:18,239 also had their crew 116 00:04:16,560 --> 00:04:20,400 the cargo capsule 117 00:04:18,239 --> 00:04:22,320 again all of its avionics and flight 118 00:04:20,400 --> 00:04:23,360 management running with a set of linux 119 00:04:22,320 --> 00:04:25,120 computers 120 00:04:23,360 --> 00:04:27,600 so 121 00:04:25,120 --> 00:04:28,960 we have another mission in 2011 122 00:04:27,600 --> 00:04:30,800 it was just running the payload 123 00:04:28,960 --> 00:04:32,720 controller again so not super 124 00:04:30,800 --> 00:04:34,479 interesting 125 00:04:32,720 --> 00:04:36,880 but you'll start to see a trend here so 126 00:04:34,479 --> 00:04:38,960 2012 we've got 127 00:04:36,880 --> 00:04:40,800 another set of rocket launchers 128 00:04:38,960 --> 00:04:42,080 we've got 129 00:04:40,800 --> 00:04:43,680 lots of those happening that year we've 130 00:04:42,080 --> 00:04:45,199 got three launches 131 00:04:43,680 --> 00:04:46,720 so 132 00:04:45,199 --> 00:04:49,280 we keep moving on 133 00:04:46,720 --> 00:04:50,800 we've got 2013 we have another set of 134 00:04:49,280 --> 00:04:53,120 missions happening with actual linux 135 00:04:50,800 --> 00:04:54,160 flying satellites instead of rockets 136 00:04:53,120 --> 00:04:56,960 we've got 137 00:04:54,160 --> 00:04:59,680 an arm9 cpu running some fairly stock 138 00:04:56,960 --> 00:05:02,560 linux there on the ipex science mission 139 00:04:59,680 --> 00:05:04,960 we have the strand mission which is 140 00:05:02,560 --> 00:05:06,800 running a micro linux on a very small 141 00:05:04,960 --> 00:05:08,400 board but the reason it's such a small 142 00:05:06,800 --> 00:05:10,639 board is because the other half of that 143 00:05:08,400 --> 00:05:12,560 mission was actually a stock google 144 00:05:10,639 --> 00:05:13,919 nexus one 145 00:05:12,560 --> 00:05:16,560 i say stock there was some hardware 146 00:05:13,919 --> 00:05:17,520 modifications it was stock software 147 00:05:16,560 --> 00:05:19,280 running 148 00:05:17,520 --> 00:05:21,600 android linux 149 00:05:19,280 --> 00:05:23,520 in the same year we also had planet labs 150 00:05:21,600 --> 00:05:26,479 putting their first dove satellites into 151 00:05:23,520 --> 00:05:28,080 orbit so they put four highly modified 152 00:05:26,479 --> 00:05:31,360 well actually not even modified highly 153 00:05:28,080 --> 00:05:33,759 customized x86 linux powered machines 154 00:05:31,360 --> 00:05:35,440 running regular ubuntu linux and half a 155 00:05:33,759 --> 00:05:37,520 terabyte of solid state storage on each 156 00:05:35,440 --> 00:05:40,160 of them into space 157 00:05:37,520 --> 00:05:42,400 and those were taking uh satellite 158 00:05:40,160 --> 00:05:44,720 photography now 159 00:05:42,400 --> 00:05:47,600 spacex put up three more launches that 160 00:05:44,720 --> 00:05:50,639 year the iss also switched to debian 161 00:05:47,600 --> 00:05:52,000 linux that year because they were trying 162 00:05:50,639 --> 00:05:54,560 to make the environment more secure and 163 00:05:52,000 --> 00:05:57,120 reliable and didn't want any repeat 164 00:05:54,560 --> 00:05:59,680 incidences like the time the worm 165 00:05:57,120 --> 00:06:01,280 managed to get you know infect to the 166 00:05:59,680 --> 00:06:03,039 windows laptops on the international 167 00:06:01,280 --> 00:06:05,360 space station because someone had 168 00:06:03,039 --> 00:06:07,039 brought it up on a floppy disk uh they 169 00:06:05,360 --> 00:06:08,560 kind of didn't want any more of that so 170 00:06:07,039 --> 00:06:09,680 they switched to linux 171 00:06:08,560 --> 00:06:11,919 um 172 00:06:09,680 --> 00:06:15,280 2014 kicks things off even more 173 00:06:11,919 --> 00:06:18,800 aggressively while we had just six linux 174 00:06:15,280 --> 00:06:22,560 satellites in 2013 planet labs launched 175 00:06:18,800 --> 00:06:23,440 33 of them in 2014 so we've gone from 176 00:06:22,560 --> 00:06:25,520 six 177 00:06:23,440 --> 00:06:28,160 and and one here and there 178 00:06:25,520 --> 00:06:29,520 to 33 linux powered satellites in one 179 00:06:28,160 --> 00:06:31,919 year 180 00:06:29,520 --> 00:06:34,080 now spacex also flew back their first 181 00:06:31,919 --> 00:06:36,319 successful landing with their linux part 182 00:06:34,080 --> 00:06:38,080 avionics driving that all the way 183 00:06:36,319 --> 00:06:39,199 through to successful landing 184 00:06:38,080 --> 00:06:40,240 uh 185 00:06:39,199 --> 00:06:42,800 we have 186 00:06:40,240 --> 00:06:44,639 another landing success there once again 187 00:06:42,800 --> 00:06:47,199 successfully touching down and being 188 00:06:44,639 --> 00:06:50,560 fully reusable powered by linux and then 189 00:06:47,199 --> 00:06:52,720 we have linux on the second ever solar 190 00:06:50,560 --> 00:06:54,560 sail mission so the planetary society 191 00:06:52,720 --> 00:06:58,160 launched the light cell one mission 192 00:06:54,560 --> 00:07:00,160 which is a in tyvac intrepid board 193 00:06:58,160 --> 00:07:02,639 and that was controlling all of their 194 00:07:00,160 --> 00:07:04,800 deployment and mission software and that 195 00:07:02,639 --> 00:07:06,479 was just running linux there planet labs 196 00:07:04,800 --> 00:07:08,319 also dropped out another 40 dove 197 00:07:06,479 --> 00:07:10,560 satellites 198 00:07:08,319 --> 00:07:12,639 we keep moving forward we've got yet 199 00:07:10,560 --> 00:07:15,039 more doves 32 more doves from planet 200 00:07:12,639 --> 00:07:17,360 labs we have eight more launches five 201 00:07:15,039 --> 00:07:18,960 landings and two 202 00:07:17,360 --> 00:07:20,639 space drones if you think of it 203 00:07:18,960 --> 00:07:22,880 autonomously flown all the way to the 204 00:07:20,639 --> 00:07:25,680 space station on linux 205 00:07:22,880 --> 00:07:28,960 we have a really big year in 2017 206 00:07:25,680 --> 00:07:31,680 because planet labs dropped out 207 00:07:28,960 --> 00:07:34,240 a whole heap of satellites as something 208 00:07:31,680 --> 00:07:38,080 in the 140 and then 209 00:07:34,240 --> 00:07:39,440 and spacex dropped out 18 launches three 210 00:07:38,080 --> 00:07:41,680 more flights to the space station 211 00:07:39,440 --> 00:07:44,639 entirely autonomously flying themselves 212 00:07:41,680 --> 00:07:46,000 they're powered by linux and hp 213 00:07:44,639 --> 00:07:49,039 shipped a 214 00:07:46,000 --> 00:07:51,520 supercomputer past the one teraflop mark 215 00:07:49,039 --> 00:07:54,000 into space it was a 216 00:07:51,520 --> 00:07:55,440 um it was based on one of their stock 217 00:07:54,000 --> 00:07:58,400 machines but it had to be modified and 218 00:07:55,440 --> 00:08:00,479 put into a specific chassis in order to 219 00:07:58,400 --> 00:08:02,240 make it fit into the equipment racks of 220 00:08:00,479 --> 00:08:04,160 the iss 221 00:08:02,240 --> 00:08:07,840 but it also ran there for a whole year 222 00:08:04,160 --> 00:08:10,160 so in 2018 the hp machine was considered 223 00:08:07,840 --> 00:08:12,000 operational after a year of testing and 224 00:08:10,160 --> 00:08:14,639 it was made available for people who 225 00:08:12,000 --> 00:08:15,599 were doing science on the iss to have 226 00:08:14,639 --> 00:08:18,319 their 227 00:08:15,599 --> 00:08:20,319 payloads run the software that they 228 00:08:18,319 --> 00:08:22,800 needed to process their data running 229 00:08:20,319 --> 00:08:24,879 that in space on the space station so 230 00:08:22,800 --> 00:08:26,240 they didn't have to download the data so 231 00:08:24,879 --> 00:08:27,680 if they sent up an instrument that did a 232 00:08:26,240 --> 00:08:29,919 lot of data production and they wanted 233 00:08:27,680 --> 00:08:31,199 to process it before it came down so 234 00:08:29,919 --> 00:08:32,880 that they didn't have to send back so 235 00:08:31,199 --> 00:08:35,599 much there was now a computer on the 236 00:08:32,880 --> 00:08:37,599 space station that they could use to run 237 00:08:35,599 --> 00:08:39,680 regular operational software like they 238 00:08:37,599 --> 00:08:40,959 would in a lab back at home 239 00:08:39,680 --> 00:08:44,080 powered by linux 240 00:08:40,959 --> 00:08:46,959 uh the marco cubesats in 2018 also 241 00:08:44,080 --> 00:08:48,959 carried linux into deep space with the 242 00:08:46,959 --> 00:08:50,880 cafeteria linux board running one of 243 00:08:48,959 --> 00:08:53,360 their cameras you can't barely read the 244 00:08:50,880 --> 00:08:55,120 font there but yes it was a module once 245 00:08:53,360 --> 00:08:57,519 again this kind of payload controller 246 00:08:55,120 --> 00:09:00,399 scenario but that board was running 247 00:08:57,519 --> 00:09:02,480 linux taking photos of mars 248 00:09:00,399 --> 00:09:04,080 as it flew past with the insight lander 249 00:09:02,480 --> 00:09:06,080 mission 250 00:09:04,080 --> 00:09:07,040 uh planet labs launched a whole heap 251 00:09:06,080 --> 00:09:08,800 more 252 00:09:07,040 --> 00:09:10,240 we've got spacex doing a whole bunch 253 00:09:08,800 --> 00:09:13,279 more landings 254 00:09:10,240 --> 00:09:16,480 uh they also put out the first starlink 255 00:09:13,279 --> 00:09:17,920 satellites this in 2018 and those 256 00:09:16,480 --> 00:09:20,160 styling satellites are really going to 257 00:09:17,920 --> 00:09:22,399 set a trend for linux so 258 00:09:20,160 --> 00:09:24,560 the other highlight being the 259 00:09:22,399 --> 00:09:26,399 cherry red tesla roadster those videos 260 00:09:24,560 --> 00:09:29,440 coming back to earth streamed from 261 00:09:26,399 --> 00:09:30,480 starman orbiting were powered by linux 262 00:09:29,440 --> 00:09:31,920 so 263 00:09:30,480 --> 00:09:33,920 linux had a fairly big year in space 264 00:09:31,920 --> 00:09:37,680 that year 265 00:09:33,920 --> 00:09:39,440 2019 we get 32 more doves we get spacex 266 00:09:37,680 --> 00:09:41,440 actually landing more times than they 267 00:09:39,440 --> 00:09:43,040 launched because they had two falcon 268 00:09:41,440 --> 00:09:44,800 heavy launches which meant that they 269 00:09:43,040 --> 00:09:47,040 actually landed more times than they 270 00:09:44,800 --> 00:09:49,600 launched uh we get more autonomous 271 00:09:47,040 --> 00:09:52,480 flights to the space station and we have 272 00:09:49,600 --> 00:09:54,880 spacex actually just blowing away 273 00:09:52,480 --> 00:09:57,360 all of the stuff that even from back in 274 00:09:54,880 --> 00:10:00,800 2017 when planet labs 275 00:09:57,360 --> 00:10:02,480 was putting out 140 of their doves 276 00:10:00,800 --> 00:10:04,240 spacex just 277 00:10:02,480 --> 00:10:07,200 almost eclipsed them in two single 278 00:10:04,240 --> 00:10:09,519 launches they put out 60 of their first 279 00:10:07,200 --> 00:10:12,480 prototype set and then another 60 of 280 00:10:09,519 --> 00:10:14,880 their final production set for 120 281 00:10:12,480 --> 00:10:16,560 towards the end of the year and that's 282 00:10:14,880 --> 00:10:18,959 just the start so at this point we've 283 00:10:16,560 --> 00:10:20,640 got 120 plus 284 00:10:18,959 --> 00:10:22,079 several hundred more doves all running 285 00:10:20,640 --> 00:10:23,440 linux so several hundred linux 286 00:10:22,079 --> 00:10:25,120 satellites in space at this point in 287 00:10:23,440 --> 00:10:26,399 2019 288 00:10:25,120 --> 00:10:27,920 and it starts to increase fairly 289 00:10:26,399 --> 00:10:29,920 aggressively 290 00:10:27,920 --> 00:10:32,480 so in 2020 291 00:10:29,920 --> 00:10:33,440 we've got a few just a few more doves 292 00:10:32,480 --> 00:10:35,600 we've got 293 00:10:33,440 --> 00:10:38,160 crude missions so linux is now being 294 00:10:35,600 --> 00:10:40,079 trusted with the lives of astronauts in 295 00:10:38,160 --> 00:10:42,399 2020 so 296 00:10:40,079 --> 00:10:46,160 the crew dragon flies all the way to the 297 00:10:42,399 --> 00:10:48,320 space station powered by linux and 298 00:10:46,160 --> 00:10:50,399 nasa has trusted it to run 299 00:10:48,320 --> 00:10:51,920 that software stack on top of linux 300 00:10:50,399 --> 00:10:53,600 there's a whole bunch as to how they get 301 00:10:51,920 --> 00:10:55,120 to that level of trust but it's being 302 00:10:53,600 --> 00:10:56,079 powered by linux and that's freaking 303 00:10:55,120 --> 00:10:56,959 awesome 304 00:10:56,079 --> 00:11:00,600 so 305 00:10:56,959 --> 00:11:00,600 we get 890 306 00:11:00,720 --> 00:11:05,760 starlink satellites which means that we 307 00:11:03,279 --> 00:11:08,480 go from having only a few 308 00:11:05,760 --> 00:11:10,880 to starlink being one of the dominant 309 00:11:08,480 --> 00:11:13,680 sets of satellites in the entire 310 00:11:10,880 --> 00:11:15,120 low earth orbit area to the point where 311 00:11:13,680 --> 00:11:17,519 based on the stats i was able to 312 00:11:15,120 --> 00:11:17,519 estimate 313 00:11:17,600 --> 00:11:23,760 31 and a half percent of all active 314 00:11:20,800 --> 00:11:27,560 satellites were now powered by linux 315 00:11:23,760 --> 00:11:30,160 almost entirely based on starlink 316 00:11:27,560 --> 00:11:32,560 2021 was a pretty big year with even 317 00:11:30,160 --> 00:11:36,399 more satellites going up we get another 318 00:11:32,560 --> 00:11:39,440 nearly 900 coming from starlink we get 319 00:11:36,399 --> 00:11:41,440 the ingenuity drone on mars 320 00:11:39,440 --> 00:11:43,600 that's entirely powered by linux and 321 00:11:41,440 --> 00:11:46,079 more about that coming up planet labs 322 00:11:43,600 --> 00:11:47,600 drop out another just short of 50 of 323 00:11:46,079 --> 00:11:49,120 their dove satellites we get a whole 324 00:11:47,600 --> 00:11:51,440 bunch more landings we get more 325 00:11:49,120 --> 00:11:55,519 autonomous flights to the space station 326 00:11:51,440 --> 00:11:58,240 and at the end of 2021 we had 40.5 327 00:11:55,519 --> 00:12:00,880 percent of active satellites 328 00:11:58,240 --> 00:12:03,440 running linux so we've literally gone up 329 00:12:00,880 --> 00:12:05,360 by nine percent in the span of one year 330 00:12:03,440 --> 00:12:08,160 off the back of spacex launching their 331 00:12:05,360 --> 00:12:12,480 styling satellites so linux is becoming 332 00:12:08,160 --> 00:12:12,480 extremely well established in space 333 00:12:12,639 --> 00:12:17,279 now 334 00:12:14,560 --> 00:12:19,519 in 2022 so far that's continued to grow 335 00:12:17,279 --> 00:12:22,240 already we've had 336 00:12:19,519 --> 00:12:23,519 flock 4x another 44 dove satellites 337 00:12:22,240 --> 00:12:25,600 going into space from planet labs 338 00:12:23,519 --> 00:12:27,600 they're continuing to run their linux 339 00:12:25,600 --> 00:12:29,839 stack in space returning fantastic 340 00:12:27,600 --> 00:12:32,000 imagery from that we have already had a 341 00:12:29,839 --> 00:12:32,800 bunch more starlinks going up and we 342 00:12:32,000 --> 00:12:35,360 still 343 00:12:32,800 --> 00:12:37,200 have 40.5 percent coming through we 344 00:12:35,360 --> 00:12:39,120 haven't had any disaster that's chipped 345 00:12:37,200 --> 00:12:40,399 them away 346 00:12:39,120 --> 00:12:42,079 so let's get to some pictures of what 347 00:12:40,399 --> 00:12:44,240 these satellites actually look like and 348 00:12:42,079 --> 00:12:45,839 what sort of things that are running 349 00:12:44,240 --> 00:12:47,279 this linux stack in space what do they 350 00:12:45,839 --> 00:12:48,800 actually look like it's one thing 351 00:12:47,279 --> 00:12:50,079 everyone thinks a satellite is a certain 352 00:12:48,800 --> 00:12:51,040 kind of thing well 353 00:12:50,079 --> 00:12:53,360 let's have a look at what they actually 354 00:12:51,040 --> 00:12:54,480 look like so we've got quake sat i 355 00:12:53,360 --> 00:12:57,680 mentioned earlier that was just a 356 00:12:54,480 --> 00:12:59,839 diamond prometheus pc104 so it's just 357 00:12:57,680 --> 00:13:01,760 this little 10 centimeter board 358 00:12:59,839 --> 00:13:03,360 it it's tiny 359 00:13:01,760 --> 00:13:04,959 you can see that you know you can't 360 00:13:03,360 --> 00:13:07,519 really see it without having a cad 361 00:13:04,959 --> 00:13:10,160 diagram to sort of cut it apart but the 362 00:13:07,519 --> 00:13:12,079 inside of that is mostly 363 00:13:10,160 --> 00:13:13,839 being done to keep springs and batteries 364 00:13:12,079 --> 00:13:15,200 and folding to keep the weight down 365 00:13:13,839 --> 00:13:16,399 because there's a weight limit on these 366 00:13:15,200 --> 00:13:19,120 things they're only allowed to weigh 367 00:13:16,399 --> 00:13:22,800 three kilos so there's a kilo for every 368 00:13:19,120 --> 00:13:24,720 10 centimeter cube of volume and so 369 00:13:22,800 --> 00:13:26,240 they're quite mass constrained and don't 370 00:13:24,720 --> 00:13:27,680 have a lot of room for things inside so 371 00:13:26,240 --> 00:13:29,120 they end up using these fairly small 372 00:13:27,680 --> 00:13:30,800 boards 373 00:13:29,120 --> 00:13:32,079 a large part of the inside was taken up 374 00:13:30,800 --> 00:13:33,440 by the 375 00:13:32,079 --> 00:13:34,720 room they needed for that telescoping 376 00:13:33,440 --> 00:13:36,720 boom you see at the top which was part 377 00:13:34,720 --> 00:13:38,320 of their experiment to look for 378 00:13:36,720 --> 00:13:39,839 electromagnetic disturbances about 379 00:13:38,320 --> 00:13:42,000 earthquakes 380 00:13:39,839 --> 00:13:44,320 we've got the dove satellites so 381 00:13:42,000 --> 00:13:46,320 planet labs put their dove it's actually 382 00:13:44,320 --> 00:13:47,680 now called planet uh put their dove 383 00:13:46,320 --> 00:13:50,399 satellites up there they're a low 384 00:13:47,680 --> 00:13:52,240 powered x86 processor 385 00:13:50,399 --> 00:13:54,720 nothing crazy it's just running ubuntu 386 00:13:52,240 --> 00:13:57,680 server but in order to make it fit into 387 00:13:54,720 --> 00:13:59,519 their package which is actually mostly 388 00:13:57,680 --> 00:14:01,279 just a telescope you can't see it from 389 00:13:59,519 --> 00:14:03,839 the front there because this is the rear 390 00:14:01,279 --> 00:14:06,160 view but the a lot of the electronics 391 00:14:03,839 --> 00:14:08,320 are down in that end there because 392 00:14:06,160 --> 00:14:11,040 almost the whole body of that satellite 393 00:14:08,320 --> 00:14:12,720 is taken up with a huge camera lens it's 394 00:14:11,040 --> 00:14:15,920 not even a camera lens it's actually a 395 00:14:12,720 --> 00:14:17,199 catadioptric telescope uh it's if i 396 00:14:15,920 --> 00:14:20,720 remember off the top my head the focal 397 00:14:17,199 --> 00:14:23,040 length is about uh a meter so they've 398 00:14:20,720 --> 00:14:25,839 folded it up a meter long 399 00:14:23,040 --> 00:14:26,959 lens arrangement into a 30 centimeter or 400 00:14:25,839 --> 00:14:30,480 30. 401 00:14:26,959 --> 00:14:31,600 35 centimeter long little box and it 402 00:14:30,480 --> 00:14:33,040 didn't leave a lot of room around the 403 00:14:31,600 --> 00:14:34,959 edges so they actually designed their 404 00:14:33,040 --> 00:14:36,720 own motherboards and electronics wrapped 405 00:14:34,959 --> 00:14:38,880 them around that lens 406 00:14:36,720 --> 00:14:40,399 and then put all of the sensors down at 407 00:14:38,880 --> 00:14:41,920 the end there in that little protrusion 408 00:14:40,399 --> 00:14:43,199 it's it's a very impressive feat of 409 00:14:41,920 --> 00:14:44,880 achievement that they've managed to 410 00:14:43,199 --> 00:14:46,800 engineer all of that into such a tight 411 00:14:44,880 --> 00:14:47,760 package 412 00:14:46,800 --> 00:14:50,000 we've got 413 00:14:47,760 --> 00:14:52,240 the dragon spacecraft which people might 414 00:14:50,000 --> 00:14:54,720 be a bit more familiar with now that 415 00:14:52,240 --> 00:14:57,120 there is a first generation dragon one 416 00:14:54,720 --> 00:14:59,440 on one of the cargo resupply missions 417 00:14:57,120 --> 00:15:01,600 it was flying in formation there in that 418 00:14:59,440 --> 00:15:03,680 video you saw powered by linux linux 419 00:15:01,600 --> 00:15:05,120 powered flight computers using sensors 420 00:15:03,680 --> 00:15:07,440 to determine the position of the space 421 00:15:05,120 --> 00:15:09,440 station the real-time position of the 422 00:15:07,440 --> 00:15:10,959 dragon capsule in space 423 00:15:09,440 --> 00:15:12,959 and making a whole bunch of flight 424 00:15:10,959 --> 00:15:14,720 corrections firing thrusters and keeping 425 00:15:12,959 --> 00:15:15,680 itself in position there waiting to be 426 00:15:14,720 --> 00:15:17,920 grabbed 427 00:15:15,680 --> 00:15:19,040 the whole time all being done with linux 428 00:15:17,920 --> 00:15:19,920 now 429 00:15:19,040 --> 00:15:21,680 from 430 00:15:19,920 --> 00:15:23,440 spacex haven't published this stuff 431 00:15:21,680 --> 00:15:25,040 publicly but the 432 00:15:23,440 --> 00:15:27,360 questions they have answered in public 433 00:15:25,040 --> 00:15:29,279 things like reddit ask me anythings and 434 00:15:27,360 --> 00:15:31,839 a few interviews people have done 435 00:15:29,279 --> 00:15:33,040 have covered in depth some of the things 436 00:15:31,839 --> 00:15:35,120 that they do to make these more 437 00:15:33,040 --> 00:15:38,639 resilient so they're running with a 438 00:15:35,120 --> 00:15:40,480 three sets of dual core x86 processors 439 00:15:38,639 --> 00:15:42,959 apparently the dragon capsule's running 440 00:15:40,480 --> 00:15:44,959 a 3.2 kernel with the real-time patches 441 00:15:42,959 --> 00:15:47,440 and they are actually using one instance 442 00:15:44,959 --> 00:15:48,399 of linux on each processor core so 443 00:15:47,440 --> 00:15:50,160 they've probably got some kind of 444 00:15:48,399 --> 00:15:51,920 hypervisor thing going on there that 445 00:15:50,160 --> 00:15:52,959 sort of divides the two cores into two 446 00:15:51,920 --> 00:15:56,399 systems 447 00:15:52,959 --> 00:15:58,560 um unless they're dual sockets again not 448 00:15:56,399 --> 00:16:00,959 something they've really made public so 449 00:15:58,560 --> 00:16:02,480 what we've got here though is we've got 450 00:16:00,959 --> 00:16:04,079 dual pairs that are working in 451 00:16:02,480 --> 00:16:06,000 triplicate so they're having each pair 452 00:16:04,079 --> 00:16:08,560 vote against each other and then the 453 00:16:06,000 --> 00:16:10,000 group of three are looking for consensus 454 00:16:08,560 --> 00:16:12,160 on those votes 455 00:16:10,000 --> 00:16:15,519 and it's quite a sophisticated system of 456 00:16:12,160 --> 00:16:16,720 redundancy and uh checking against other 457 00:16:15,519 --> 00:16:19,519 systems in order to give them the 458 00:16:16,720 --> 00:16:21,680 reliability they need to 459 00:16:19,519 --> 00:16:23,920 have people on board and for you know 460 00:16:21,680 --> 00:16:25,680 nasa to trust that because they carried 461 00:16:23,920 --> 00:16:27,839 forward that same flight architecture 462 00:16:25,680 --> 00:16:29,920 and that same software and computer 463 00:16:27,839 --> 00:16:31,759 stack into the second generation of the 464 00:16:29,920 --> 00:16:35,120 dragon capsule 465 00:16:31,759 --> 00:16:37,040 they also are using linux on starlink 466 00:16:35,120 --> 00:16:39,600 which has even less info about what's 467 00:16:37,040 --> 00:16:41,440 going on board because other than the 468 00:16:39,600 --> 00:16:42,240 fact that it runs linux 469 00:16:41,440 --> 00:16:44,000 i 470 00:16:42,240 --> 00:16:46,000 actually can't find anything about the 471 00:16:44,000 --> 00:16:47,839 processors on board but 472 00:16:46,000 --> 00:16:48,839 it is definitely running linux that much 473 00:16:47,839 --> 00:16:50,720 i can 474 00:16:48,839 --> 00:16:52,720 confirm uh 475 00:16:50,720 --> 00:16:54,399 we've got the more famous example of 476 00:16:52,720 --> 00:16:55,839 late which is uh 477 00:16:54,399 --> 00:16:57,440 i mean everyone should be able to see it 478 00:16:55,839 --> 00:17:00,480 there i'm sure everyone's familiar with 479 00:16:57,440 --> 00:17:02,240 that all right how about i zoom in a bit 480 00:17:00,480 --> 00:17:06,079 uh we have the ingenuity space 481 00:17:02,240 --> 00:17:08,160 helicopter which is a snapdragon 801 482 00:17:06,079 --> 00:17:10,079 uh it has a 3.4 kernel with the 483 00:17:08,160 --> 00:17:12,720 real-time pre-empt patches on it it's a 484 00:17:10,079 --> 00:17:14,959 lenara based operating system and it has 485 00:17:12,720 --> 00:17:16,959 a radiation hardened fpga for critical 486 00:17:14,959 --> 00:17:18,959 power management timer stuff so that it 487 00:17:16,959 --> 00:17:20,319 can keep its batteries alive in the cold 488 00:17:18,959 --> 00:17:21,360 martian night 489 00:17:20,319 --> 00:17:23,280 um 490 00:17:21,360 --> 00:17:24,880 the interesting thing that goes with it 491 00:17:23,280 --> 00:17:27,360 is it's actually not the only linux 492 00:17:24,880 --> 00:17:29,280 computer on mars so 493 00:17:27,360 --> 00:17:33,200 there's actually a matching snapdragon 494 00:17:29,280 --> 00:17:36,240 801 in with zigbee radio and 495 00:17:33,200 --> 00:17:38,480 it's in the belly of the mars 496 00:17:36,240 --> 00:17:41,039 perseverance rover and that actually 497 00:17:38,480 --> 00:17:43,200 communicates with the helicopter by 498 00:17:41,039 --> 00:17:44,840 having the rover which is the primary 499 00:17:43,200 --> 00:17:48,559 computer for the whole mission that 500 00:17:44,840 --> 00:17:49,919 rover passes a set of data to the 501 00:17:48,559 --> 00:17:52,160 computer on 502 00:17:49,919 --> 00:17:56,240 the rover the snapdragon 801 on the 503 00:17:52,160 --> 00:17:58,720 rover via a uart um i think it's just an 504 00:17:56,240 --> 00:18:00,240 1115 board you know regular old uart 505 00:17:58,720 --> 00:18:02,080 like you'd use to talk to you know a 506 00:18:00,240 --> 00:18:05,280 little embedded computer on your desk 507 00:18:02,080 --> 00:18:07,360 and then that processes it sends it over 508 00:18:05,280 --> 00:18:09,120 to the to the helicopter with the zigbee 509 00:18:07,360 --> 00:18:11,440 radios on board them both 510 00:18:09,120 --> 00:18:12,240 and then that's how they talk together 511 00:18:11,440 --> 00:18:14,799 now 512 00:18:12,240 --> 00:18:16,480 there's also a third so that third 513 00:18:14,799 --> 00:18:18,240 computer was actually the one that 514 00:18:16,480 --> 00:18:20,640 recorded all the pictures and video that 515 00:18:18,240 --> 00:18:22,480 we saw during the perseverance landing 516 00:18:20,640 --> 00:18:23,679 so if you remember the seven minutes of 517 00:18:22,480 --> 00:18:25,840 terror and a lot of the footage that 518 00:18:23,679 --> 00:18:28,400 came back during that was actually being 519 00:18:25,840 --> 00:18:30,880 sent back from a linux computer running 520 00:18:28,400 --> 00:18:33,280 off usb cameras in a ruggedized compact 521 00:18:30,880 --> 00:18:34,720 pci system 522 00:18:33,280 --> 00:18:36,799 so 523 00:18:34,720 --> 00:18:38,640 let's get into what's difficult in space 524 00:18:36,799 --> 00:18:39,679 i'm going to stick to the stuff in space 525 00:18:38,640 --> 00:18:41,360 because 526 00:18:39,679 --> 00:18:43,600 making things sturdy for launching into 527 00:18:41,360 --> 00:18:45,679 space is that's that's just regular 528 00:18:43,600 --> 00:18:48,720 engineering you can make it more sturdy 529 00:18:45,679 --> 00:18:51,360 you can seal it up put packaging foams 530 00:18:48,720 --> 00:18:53,600 and and other stuff to keep things in 531 00:18:51,360 --> 00:18:55,440 place it's not as much of a it's not a 532 00:18:53,600 --> 00:18:56,799 challenge we're going to focus on here 533 00:18:55,440 --> 00:18:58,640 um 534 00:18:56,799 --> 00:19:00,559 you know so 535 00:18:58,640 --> 00:19:02,240 space radiation 536 00:19:00,559 --> 00:19:03,840 is probably the most obvious one that 537 00:19:02,240 --> 00:19:05,520 people tend to get because the super 538 00:19:03,840 --> 00:19:07,440 dense ram is already vulnerable to 539 00:19:05,520 --> 00:19:10,160 cosmic rays we get bit flips and these 540 00:19:07,440 --> 00:19:12,080 sort of things that's why we have ecc so 541 00:19:10,160 --> 00:19:14,160 the electrical transients we get from 542 00:19:12,080 --> 00:19:17,200 radiation is a pretty well understood 543 00:19:14,160 --> 00:19:19,360 thing but it can even degrade silicon so 544 00:19:17,200 --> 00:19:22,160 if you get a high-energy cosmic ray that 545 00:19:19,360 --> 00:19:24,320 slams into the silicon chip it can 546 00:19:22,160 --> 00:19:26,320 actually damage the chemical nature of 547 00:19:24,320 --> 00:19:28,799 that silicon and and physically degrade 548 00:19:26,320 --> 00:19:30,960 that chip which over time can lead to 549 00:19:28,799 --> 00:19:31,919 failures um 550 00:19:30,960 --> 00:19:33,760 air 551 00:19:31,919 --> 00:19:35,520 there's no air in space it is a vacuum 552 00:19:33,760 --> 00:19:37,919 and air takes away heat from everything 553 00:19:35,520 --> 00:19:39,600 down here on earth so space doesn't let 554 00:19:37,919 --> 00:19:41,600 us get away with having too much heat we 555 00:19:39,600 --> 00:19:44,240 have to be really careful about that 556 00:19:41,600 --> 00:19:46,640 uh volatile substances also outgas in a 557 00:19:44,240 --> 00:19:48,640 vacuum all the little oils and things 558 00:19:46,640 --> 00:19:50,160 that sort of make most of the world move 559 00:19:48,640 --> 00:19:52,240 around here on earth you have to be very 560 00:19:50,160 --> 00:19:55,760 careful about them in space because they 561 00:19:52,240 --> 00:19:58,320 will slowly evaporate in space and 562 00:19:55,760 --> 00:20:00,960 coat instruments and equipment that you 563 00:19:58,320 --> 00:20:02,559 don't want coated in these things and so 564 00:20:00,960 --> 00:20:04,480 if you put a camera up there and you're 565 00:20:02,559 --> 00:20:06,559 not careful about what you assemble this 566 00:20:04,480 --> 00:20:08,960 with you might end up with this oily 567 00:20:06,559 --> 00:20:10,559 film over your camera that ruins 568 00:20:08,960 --> 00:20:12,480 everything 569 00:20:10,559 --> 00:20:13,919 the vacuum being a very good insulator 570 00:20:12,480 --> 00:20:17,360 means that you can get these massive 571 00:20:13,919 --> 00:20:19,520 electrostatic charges of over 10 000 572 00:20:17,360 --> 00:20:20,960 volts just building up on the surface of 573 00:20:19,520 --> 00:20:22,559 a satellite which is why you have to be 574 00:20:20,960 --> 00:20:24,080 very careful about your grounding and 575 00:20:22,559 --> 00:20:27,760 your installation and the electrical 576 00:20:24,080 --> 00:20:30,000 connections um and a silent killer from 577 00:20:27,760 --> 00:20:32,320 many many years back that's still a 578 00:20:30,000 --> 00:20:34,480 persistent problem is tin whiskers which 579 00:20:32,320 --> 00:20:37,440 are these really fascinating little 580 00:20:34,480 --> 00:20:38,400 sort of icicles that grow out of 581 00:20:37,440 --> 00:20:40,720 tin 582 00:20:38,400 --> 00:20:43,760 parts and if you get them growing in the 583 00:20:40,720 --> 00:20:45,280 wrong places they can create shorts so 584 00:20:43,760 --> 00:20:47,360 you can get electrical shorts in your 585 00:20:45,280 --> 00:20:50,000 equipment just growing out of the 586 00:20:47,360 --> 00:20:52,559 physical equipment just over time if you 587 00:20:50,000 --> 00:20:54,720 don't you know take the effort to not 588 00:20:52,559 --> 00:20:56,000 use tin solder 589 00:20:54,720 --> 00:20:59,840 and and to try and make sure that you 590 00:20:56,000 --> 00:21:01,280 don't have any tin leads in areas 591 00:20:59,840 --> 00:21:03,520 that comes back to again the electrical 592 00:21:01,280 --> 00:21:04,720 grounding because you get these kinds of 593 00:21:03,520 --> 00:21:06,799 discharges with those kind of 594 00:21:04,720 --> 00:21:07,520 electrostatics as well 595 00:21:06,799 --> 00:21:08,559 and 596 00:21:07,520 --> 00:21:10,080 you have to use things like the 597 00:21:08,559 --> 00:21:12,799 outgassing because 598 00:21:10,080 --> 00:21:14,880 um yeah so your thermal management is is 599 00:21:12,799 --> 00:21:17,679 the key mainly the rest of it is just 600 00:21:14,880 --> 00:21:19,520 careful engineering 601 00:21:17,679 --> 00:21:21,120 for what you have to do with those 602 00:21:19,520 --> 00:21:22,480 hardware failures 603 00:21:21,120 --> 00:21:25,600 you end up using a lot of consensus 604 00:21:22,480 --> 00:21:27,200 algorithms uh hardware redundancy and 605 00:21:25,600 --> 00:21:28,840 you can if you're lucky have radiation 606 00:21:27,200 --> 00:21:32,640 shielding 607 00:21:28,840 --> 00:21:34,480 um power is another fun one because 608 00:21:32,640 --> 00:21:36,000 uh on the earth power is easy to get we 609 00:21:34,480 --> 00:21:37,919 you know usually you're not going to be 610 00:21:36,000 --> 00:21:38,880 too far from where you need to be or if 611 00:21:37,919 --> 00:21:40,559 you're putting something somewhere you 612 00:21:38,880 --> 00:21:42,159 can plan for it and easily stick a 613 00:21:40,559 --> 00:21:43,520 little windmill or a solar panel or 614 00:21:42,159 --> 00:21:45,039 something and it doesn't matter because 615 00:21:43,520 --> 00:21:46,640 you can just put it on the ground or on 616 00:21:45,039 --> 00:21:49,039 a pole or whatever 617 00:21:46,640 --> 00:21:51,200 in space you're not so lucky 618 00:21:49,039 --> 00:21:53,919 because every kilo you have to send up 619 00:21:51,200 --> 00:21:55,840 costs a lot of money and so you want to 620 00:21:53,919 --> 00:21:58,159 use as little as you can and solar 621 00:21:55,840 --> 00:22:00,559 panels aren't terribly light at least 622 00:21:58,159 --> 00:22:02,480 good ones so you've got to carefully 623 00:22:00,559 --> 00:22:04,240 balance the amount of mass you're 624 00:22:02,480 --> 00:22:06,080 willing to give to having a solar panel 625 00:22:04,240 --> 00:22:07,440 with the amount of mass 626 00:22:06,080 --> 00:22:09,280 you're willing to get 627 00:22:07,440 --> 00:22:10,480 you know power from 628 00:22:09,280 --> 00:22:12,080 so 629 00:22:10,480 --> 00:22:13,440 very careful trade there and the same 630 00:22:12,080 --> 00:22:16,159 thing goes for batteries because 631 00:22:13,440 --> 00:22:17,520 batteries are fairly heavy as well um 632 00:22:16,159 --> 00:22:18,960 you do have to be careful about which 633 00:22:17,520 --> 00:22:20,240 kinds of batteries some won't work in 634 00:22:18,960 --> 00:22:22,240 space you can't just have a regular old 635 00:22:20,240 --> 00:22:24,320 lead-acid car battery the water would 636 00:22:22,240 --> 00:22:25,919 evaporate and it would be dead so you 637 00:22:24,320 --> 00:22:27,840 tend to see most things using things 638 00:22:25,919 --> 00:22:29,600 like lithium-ion batteries now yeah 639 00:22:27,840 --> 00:22:30,960 there were more fancy complicated ones 640 00:22:29,600 --> 00:22:33,280 back in the day but that's mostly 641 00:22:30,960 --> 00:22:36,080 started to phase out now and and 642 00:22:33,280 --> 00:22:38,559 lithium-ion batteries uh just like the 643 00:22:36,080 --> 00:22:42,159 18650s you see in sort of like the the 644 00:22:38,559 --> 00:22:43,840 vape pens the drones the remote control 645 00:22:42,159 --> 00:22:46,640 cars and all the other things that they 646 00:22:43,840 --> 00:22:48,480 go into these days um 647 00:22:46,640 --> 00:22:51,520 communication is the other big one 648 00:22:48,480 --> 00:22:53,360 now on earth it's pretty easy to set 24 649 00:22:51,520 --> 00:22:54,960 7 communication in most places you'd 650 00:22:53,360 --> 00:22:57,200 want to put a computer 651 00:22:54,960 --> 00:23:00,159 even if it's just via a radio link it's 652 00:22:57,200 --> 00:23:03,039 not too hard and on earth radio links 653 00:23:00,159 --> 00:23:05,679 are quite easy to get because you can 654 00:23:03,039 --> 00:23:07,679 you can use wi-fi or you can use laura 655 00:23:05,679 --> 00:23:09,039 or any of these other unlicensed bands 656 00:23:07,679 --> 00:23:09,919 that let you do whatever you like with 657 00:23:09,039 --> 00:23:12,240 them 658 00:23:09,919 --> 00:23:14,159 in space everything needs a license you 659 00:23:12,240 --> 00:23:15,679 can't actually have any kind of a radio 660 00:23:14,159 --> 00:23:19,200 in space without getting appropriate 661 00:23:15,679 --> 00:23:21,280 permits it's it's pretty paperwork heavy 662 00:23:19,200 --> 00:23:23,679 so you tend to see fairly narrow band 663 00:23:21,280 --> 00:23:25,360 very specific radios that you only use 664 00:23:23,679 --> 00:23:26,559 when you're over a ground station that 665 00:23:25,360 --> 00:23:27,919 you control 666 00:23:26,559 --> 00:23:29,200 tends to make all that paperwork a lot 667 00:23:27,919 --> 00:23:30,559 more easy so you end up with the 668 00:23:29,200 --> 00:23:31,520 situation where your communication 669 00:23:30,559 --> 00:23:33,919 window 670 00:23:31,520 --> 00:23:35,760 might be quite short so maybe just one 671 00:23:33,919 --> 00:23:38,720 hour as it's quickly or less than an 672 00:23:35,760 --> 00:23:40,480 hour even as it zips overhead and then 673 00:23:38,720 --> 00:23:42,240 it might not be overhead again for a 674 00:23:40,480 --> 00:23:44,400 whole week so you might only be able to 675 00:23:42,240 --> 00:23:46,400 talk to your satellite once a week for 676 00:23:44,400 --> 00:23:47,679 30 minutes and in that 30 minutes you've 677 00:23:46,400 --> 00:23:49,679 got to tell it everything it needs to do 678 00:23:47,679 --> 00:23:51,760 for the next week so you tend to send 679 00:23:49,679 --> 00:23:54,480 your instructions in batches use data 680 00:23:51,760 --> 00:23:55,840 compression as much as possible um some 681 00:23:54,480 --> 00:23:56,960 people are now experimenting 682 00:23:55,840 --> 00:23:58,799 experimenting with satellite to 683 00:23:56,960 --> 00:24:02,799 satellite communications so the kind of 684 00:23:58,799 --> 00:24:04,799 companies like um inmarsat and 685 00:24:02,799 --> 00:24:06,000 iridium are now providing 686 00:24:04,799 --> 00:24:08,159 through various companies in the 687 00:24:06,000 --> 00:24:09,679 aerospace industry uh modules you can 688 00:24:08,159 --> 00:24:12,000 use on a satellite that will give you a 689 00:24:09,679 --> 00:24:14,080 tcp ip connection just like your home 690 00:24:12,000 --> 00:24:15,840 internet but to the satellite because 691 00:24:14,080 --> 00:24:17,520 they've put a tiny radio on the 692 00:24:15,840 --> 00:24:18,880 satellite that talks to the satellites 693 00:24:17,520 --> 00:24:19,919 further up 694 00:24:18,880 --> 00:24:22,000 and then 695 00:24:19,919 --> 00:24:25,039 just like if you're an airplane with a 696 00:24:22,000 --> 00:24:26,720 satellite phone it can talk up to this 697 00:24:25,039 --> 00:24:28,880 satellites above it and you get a 698 00:24:26,720 --> 00:24:31,360 consistent regular old 699 00:24:28,880 --> 00:24:32,640 network connection to the satellite but 700 00:24:31,360 --> 00:24:34,640 these things are all trade-offs in terms 701 00:24:32,640 --> 00:24:36,320 of cost and power and a lot of people 702 00:24:34,640 --> 00:24:37,760 get those so 703 00:24:36,320 --> 00:24:39,200 same thing goes for the other thing that 704 00:24:37,760 --> 00:24:40,640 people are experimenting with now to get 705 00:24:39,200 --> 00:24:43,039 more data even if it doesn't get them 706 00:24:40,640 --> 00:24:44,640 more time which is optical communication 707 00:24:43,039 --> 00:24:46,320 so you're starting to see more 708 00:24:44,640 --> 00:24:49,120 experimenting around laser 709 00:24:46,320 --> 00:24:51,679 communications so using high speed laser 710 00:24:49,120 --> 00:24:53,520 links just like if you effectively it 711 00:24:51,679 --> 00:24:54,799 even uses the same frequency of light 712 00:24:53,520 --> 00:24:56,480 actually 713 00:24:54,799 --> 00:24:58,000 the same kind of lasers just more 714 00:24:56,480 --> 00:24:59,600 powerful as you would see in a fiber 715 00:24:58,000 --> 00:25:02,480 optic connection between two networks 716 00:24:59,600 --> 00:25:05,039 which is in iraq so you know uh 717 00:25:02,480 --> 00:25:05,840 1500 nanometer sort of territory laser 718 00:25:05,039 --> 00:25:08,159 light 719 00:25:05,840 --> 00:25:10,720 just through the air not through a 720 00:25:08,159 --> 00:25:12,400 optical fiber so 721 00:25:10,720 --> 00:25:13,760 that's the sort of challenges and 722 00:25:12,400 --> 00:25:15,440 responses we have to some of the 723 00:25:13,760 --> 00:25:17,200 problems in that and and 724 00:25:15,440 --> 00:25:18,880 you know that's just a very high level 725 00:25:17,200 --> 00:25:19,760 stuff um 726 00:25:18,880 --> 00:25:21,679 but 727 00:25:19,760 --> 00:25:23,200 similarly high level we have the kind of 728 00:25:21,679 --> 00:25:25,919 ways you approach 729 00:25:23,200 --> 00:25:27,760 you know uh keeping the reliability so 730 00:25:25,919 --> 00:25:29,039 you tend to with all those challenges 731 00:25:27,760 --> 00:25:31,039 want to break down and isolate your 732 00:25:29,039 --> 00:25:33,840 failure domains so you get control 733 00:25:31,039 --> 00:25:35,679 domains where you put as little uh 734 00:25:33,840 --> 00:25:37,840 responsibility on a piece as possible so 735 00:25:35,679 --> 00:25:39,760 if you have an instrument uh it will 736 00:25:37,840 --> 00:25:42,159 only be responsible for its own tasks 737 00:25:39,760 --> 00:25:43,919 you'll have effectively a button a 738 00:25:42,159 --> 00:25:45,840 software button so to speak that says 739 00:25:43,919 --> 00:25:48,000 take picture and a software button that 740 00:25:45,840 --> 00:25:50,080 says give me the data and and you won't 741 00:25:48,000 --> 00:25:51,520 expect it to be managed by the same 742 00:25:50,080 --> 00:25:53,360 computer you'll have small computers 743 00:25:51,520 --> 00:25:56,640 spread around in order to delegate the 744 00:25:53,360 --> 00:25:57,919 tasks and and separate that risk out uh 745 00:25:56,640 --> 00:25:59,919 the same thing goes for super 746 00:25:57,919 --> 00:26:01,679 supervisory hierarchies what you get is 747 00:25:59,919 --> 00:26:02,400 you get a chain of these things so you 748 00:26:01,679 --> 00:26:04,400 get 749 00:26:02,400 --> 00:26:06,240 top down control you get a most 750 00:26:04,400 --> 00:26:08,320 important thing and then less important 751 00:26:06,240 --> 00:26:09,840 things and and you can make those less 752 00:26:08,320 --> 00:26:11,840 important things less robust to save 753 00:26:09,840 --> 00:26:13,760 money you get watchdogs good 754 00:26:11,840 --> 00:26:15,200 old-fashioned watch dog timers to let 755 00:26:13,760 --> 00:26:16,960 you know if something's dead and give it 756 00:26:15,200 --> 00:26:19,039 a kick to try and make it come back and 757 00:26:16,960 --> 00:26:21,039 you get good old-fashioned redundancy 758 00:26:19,039 --> 00:26:23,600 i don't really think i need to go too 759 00:26:21,039 --> 00:26:25,840 deeply into redundancy 760 00:26:23,600 --> 00:26:27,200 most people who get into computing and 761 00:26:25,840 --> 00:26:28,720 you know listen to linux conferences and 762 00:26:27,200 --> 00:26:31,120 stuff have probably come across the idea 763 00:26:28,720 --> 00:26:32,880 of a redundant system before you know 764 00:26:31,120 --> 00:26:34,480 either through a load balancer or 765 00:26:32,880 --> 00:26:36,159 redundant power supply or some other 766 00:26:34,480 --> 00:26:38,880 redundant hardware it's a pretty common 767 00:26:36,159 --> 00:26:40,720 concept kind of self-explanatory 768 00:26:38,880 --> 00:26:42,240 you see it a lot in spacecraft you get 769 00:26:40,720 --> 00:26:43,679 redundant hardware 770 00:26:42,240 --> 00:26:45,840 you just do 771 00:26:43,679 --> 00:26:48,320 control domains are there for isolating 772 00:26:45,840 --> 00:26:50,799 failures like i said so you minimize the 773 00:26:48,320 --> 00:26:52,640 complexity of each subsystem and you 774 00:26:50,799 --> 00:26:54,159 increase the robustness only where 775 00:26:52,640 --> 00:26:56,880 necessary so if you're willing to 776 00:26:54,159 --> 00:26:59,039 sacrifice a science instrument there 777 00:26:56,880 --> 00:27:00,640 you can make that one holding the beaker 778 00:26:59,039 --> 00:27:02,240 you know die at the drop of a hat 779 00:27:00,640 --> 00:27:03,760 because it's the least important thing 780 00:27:02,240 --> 00:27:06,640 and you can trade the kind of 781 00:27:03,760 --> 00:27:08,000 protections whether they be cost or 782 00:27:06,640 --> 00:27:09,760 power or 783 00:27:08,000 --> 00:27:12,240 mass because you're always trying to 784 00:27:09,760 --> 00:27:13,760 trade those so you can trade those to 785 00:27:12,240 --> 00:27:16,159 put the robustness where it is most 786 00:27:13,760 --> 00:27:18,559 critical so you can have your power and 787 00:27:16,159 --> 00:27:20,720 communications and data be 788 00:27:18,559 --> 00:27:22,080 more robust than the instruments on 789 00:27:20,720 --> 00:27:23,520 board so that you've always got those 790 00:27:22,080 --> 00:27:25,600 working and then you know you can have 791 00:27:23,520 --> 00:27:27,840 your your management one be the most 792 00:27:25,600 --> 00:27:29,919 robust system you might have that spacex 793 00:27:27,840 --> 00:27:32,159 style triplicate redundancy on your on 794 00:27:29,919 --> 00:27:34,320 your mission management computer or it 795 00:27:32,159 --> 00:27:35,840 might be the only radiation hardened 796 00:27:34,320 --> 00:27:37,600 piece of equipment on the whole 797 00:27:35,840 --> 00:27:39,919 satellite just just to guarantee that 798 00:27:37,600 --> 00:27:42,080 level of reliability you need to get 799 00:27:39,919 --> 00:27:43,840 that working 800 00:27:42,080 --> 00:27:45,600 we've got watchdog timers 801 00:27:43,840 --> 00:27:47,760 they are very widely used software and 802 00:27:45,600 --> 00:27:49,039 hardware versions of them exist 803 00:27:47,760 --> 00:27:50,880 if you haven't come across a watchdog 804 00:27:49,039 --> 00:27:53,200 timer it is essentially something going 805 00:27:50,880 --> 00:27:54,240 are you awake are you awake are you 806 00:27:53,200 --> 00:27:56,799 awake 807 00:27:54,240 --> 00:27:57,919 you have a reset loop and it resets 808 00:27:56,799 --> 00:27:59,679 every time you get that positive 809 00:27:57,919 --> 00:28:02,240 response saying it's awake if it isn't 810 00:27:59,679 --> 00:28:02,960 awake and you expire the timer you kick 811 00:28:02,240 --> 00:28:05,600 it 812 00:28:02,960 --> 00:28:07,120 they get fancier you've got ones that 813 00:28:05,600 --> 00:28:08,960 have self resets 814 00:28:07,120 --> 00:28:11,200 precision timing ones that you know send 815 00:28:08,960 --> 00:28:13,440 the message before the timeout and much 816 00:28:11,200 --> 00:28:16,080 more fancy versions for specific use 817 00:28:13,440 --> 00:28:18,480 cases but in general principle you see 818 00:28:16,080 --> 00:28:20,080 them used in a whole variety of ways in 819 00:28:18,480 --> 00:28:22,480 this in domain because it's one of the 820 00:28:20,080 --> 00:28:24,399 staple systems for increasing the 821 00:28:22,480 --> 00:28:26,640 reliability of a system you you keep an 822 00:28:24,399 --> 00:28:28,399 eye on it and if it dies you reset it 823 00:28:26,640 --> 00:28:31,120 and if it doesn't come back then you 824 00:28:28,399 --> 00:28:32,640 start investigating your failure 825 00:28:31,120 --> 00:28:35,039 you get the supervisory hierarchies 826 00:28:32,640 --> 00:28:37,120 which is part of that whole if it dies 827 00:28:35,039 --> 00:28:39,039 kick it make it come back so 828 00:28:37,120 --> 00:28:40,799 you might have a watchdog in software so 829 00:28:39,039 --> 00:28:42,720 your operating system running the flight 830 00:28:40,799 --> 00:28:45,039 control software might be looking at the 831 00:28:42,720 --> 00:28:47,120 flight control software and going hmm i 832 00:28:45,039 --> 00:28:48,240 didn't get my answer back fast enough 833 00:28:47,120 --> 00:28:50,399 reboot 834 00:28:48,240 --> 00:28:51,919 but that's a very high level version 835 00:28:50,399 --> 00:28:53,440 what you see when you actually break it 836 00:28:51,919 --> 00:28:55,200 down and start to look at these kinds of 837 00:28:53,440 --> 00:28:56,320 watch dogs is it starts to look more 838 00:28:55,200 --> 00:28:58,880 like this 839 00:28:56,320 --> 00:29:00,559 so you'll see a sort of division between 840 00:28:58,880 --> 00:29:02,640 systems there you'll have that lower 841 00:29:00,559 --> 00:29:03,679 half which is your you know payload 842 00:29:02,640 --> 00:29:05,600 control 843 00:29:03,679 --> 00:29:07,279 and then you've got your 844 00:29:05,600 --> 00:29:09,039 flight control on the top half so you've 845 00:29:07,279 --> 00:29:11,360 got software watchdogs coming from your 846 00:29:09,039 --> 00:29:13,120 flight control software watching all the 847 00:29:11,360 --> 00:29:15,039 parts of your payload control software 848 00:29:13,120 --> 00:29:16,559 so that your flight control knows 849 00:29:15,039 --> 00:29:18,799 everything that's going on in all of the 850 00:29:16,559 --> 00:29:20,720 subsidiary systems and you've got 851 00:29:18,799 --> 00:29:23,039 varying hierarchies of these things so 852 00:29:20,720 --> 00:29:25,039 that you've got most critical stuff at 853 00:29:23,039 --> 00:29:26,960 the top like i said back on that 854 00:29:25,039 --> 00:29:28,960 ingenuity helicopter one they had an 855 00:29:26,960 --> 00:29:30,559 fpga that was radiation hardened for 856 00:29:28,960 --> 00:29:32,240 power management that's the kind of 857 00:29:30,559 --> 00:29:34,240 thing that you might put at the top of 858 00:29:32,240 --> 00:29:35,919 this kind of a supervisory hierarchy 859 00:29:34,240 --> 00:29:38,159 because it's the piece you know is most 860 00:29:35,919 --> 00:29:40,880 reliable you you have it this sort of a 861 00:29:38,159 --> 00:29:43,120 chain of trust in these control systems 862 00:29:40,880 --> 00:29:44,720 and management processes to kick things 863 00:29:43,120 --> 00:29:46,640 back to life in order to avoid losing 864 00:29:44,720 --> 00:29:48,640 your mission 865 00:29:46,640 --> 00:29:49,840 and and even that is an abstracted 866 00:29:48,640 --> 00:29:51,760 version because when you actually get 867 00:29:49,840 --> 00:29:53,520 into the sort of examples that people 868 00:29:51,760 --> 00:29:55,600 put up in textbook versions of this it 869 00:29:53,520 --> 00:29:57,120 starts to look way more complicated it's 870 00:29:55,600 --> 00:29:58,080 a lot more like that in the real world 871 00:29:57,120 --> 00:29:59,600 but 872 00:29:58,080 --> 00:30:01,760 we don't have time to sit here and talk 873 00:29:59,600 --> 00:30:05,039 through a process flow like that that's 874 00:30:01,760 --> 00:30:07,200 no that's no one's idea of fun 875 00:30:05,039 --> 00:30:09,520 so let's talk more about making an 876 00:30:07,200 --> 00:30:11,360 actual space worthy linux so 877 00:30:09,520 --> 00:30:12,799 if you have your linux kernel what do 878 00:30:11,360 --> 00:30:15,200 you have to do with it in order to 879 00:30:12,799 --> 00:30:16,000 actually make it safe for space 880 00:30:15,200 --> 00:30:16,960 well 881 00:30:16,000 --> 00:30:17,919 you're obviously going to need to have 882 00:30:16,960 --> 00:30:19,520 the drivers and software for the 883 00:30:17,919 --> 00:30:21,440 hardware you want that's your first 884 00:30:19,520 --> 00:30:23,200 problem but linux has a lot of those 885 00:30:21,440 --> 00:30:24,799 built in but a lot of space hardware is 886 00:30:23,200 --> 00:30:26,399 pretty custom so it might not have them 887 00:30:24,799 --> 00:30:27,120 you might need to build those and test 888 00:30:26,399 --> 00:30:28,720 them 889 00:30:27,120 --> 00:30:32,080 in both software and hardware because 890 00:30:28,720 --> 00:30:35,120 sometimes you're driving hardware like 891 00:30:32,080 --> 00:30:37,039 case in point recently the unlatching on 892 00:30:35,120 --> 00:30:39,200 something like the mirror in the james 893 00:30:37,039 --> 00:30:40,720 or space telescope they had software 894 00:30:39,200 --> 00:30:43,120 driving that and that software had to be 895 00:30:40,720 --> 00:30:44,559 tested that it matched the hardware that 896 00:30:43,120 --> 00:30:45,679 when the software tells the hardware to 897 00:30:44,559 --> 00:30:47,279 do something it's not telling you to do 898 00:30:45,679 --> 00:30:49,039 the wrong things you test the hardware 899 00:30:47,279 --> 00:30:50,799 and the software 900 00:30:49,039 --> 00:30:52,640 and then you have to you know have the 901 00:30:50,799 --> 00:30:55,120 mission management software on top of 902 00:30:52,640 --> 00:30:57,360 your kernel to actually do that so you 903 00:30:55,120 --> 00:30:59,279 get this interface there of software 904 00:30:57,360 --> 00:31:01,200 talking to a kernel asking hardware to 905 00:30:59,279 --> 00:31:02,720 do things and the software on top of it 906 00:31:01,200 --> 00:31:04,640 and then it ends up being a very large 907 00:31:02,720 --> 00:31:07,120 amount of integration testing 908 00:31:04,640 --> 00:31:09,120 so so that is actually the primary thing 909 00:31:07,120 --> 00:31:12,240 and you know the the 80 910 00:31:09,120 --> 00:31:14,080 that gets done is is validating testing 911 00:31:12,240 --> 00:31:15,919 revalidating re-testing changing 912 00:31:14,080 --> 00:31:18,080 revalidating re-testing because it's all 913 00:31:15,919 --> 00:31:19,919 about reliability and and you have to 914 00:31:18,080 --> 00:31:21,919 try and make that reliability threshold 915 00:31:19,919 --> 00:31:24,159 get reached 916 00:31:21,919 --> 00:31:26,240 uh real-time operating systems are one 917 00:31:24,159 --> 00:31:28,880 of the ways you get that uh it's a way 918 00:31:26,240 --> 00:31:31,440 you can have a hard real-time versus a 919 00:31:28,880 --> 00:31:33,279 soft real-time versus a i don't care 920 00:31:31,440 --> 00:31:35,840 it's the question of is it okay to be 921 00:31:33,279 --> 00:31:38,799 late if you have to send a signal to a 922 00:31:35,840 --> 00:31:41,919 motor or a valve or a sensor or 923 00:31:38,799 --> 00:31:45,440 something um and it has to happen 924 00:31:41,919 --> 00:31:47,840 exactly on time or it might break you 925 00:31:45,440 --> 00:31:50,480 might need a hard real-time system if it 926 00:31:47,840 --> 00:31:51,919 only has to be fast enough 927 00:31:50,480 --> 00:31:54,159 you might only need a soft real-time 928 00:31:51,919 --> 00:31:56,559 system uh if you need to have something 929 00:31:54,159 --> 00:31:59,360 that responds instantly to a sensor the 930 00:31:56,559 --> 00:32:00,960 moment that sensor is tripped 931 00:31:59,360 --> 00:32:02,480 you again might need to have a hard 932 00:32:00,960 --> 00:32:04,880 real-time system because you might need 933 00:32:02,480 --> 00:32:06,720 something that can always handle that in 934 00:32:04,880 --> 00:32:08,080 the moment it happens nothing blocking 935 00:32:06,720 --> 00:32:09,840 it and immediately handling that 936 00:32:08,080 --> 00:32:11,360 interrupt 937 00:32:09,840 --> 00:32:13,279 again this comes down to preemption and 938 00:32:11,360 --> 00:32:15,120 interrupt handling and the final part 939 00:32:13,279 --> 00:32:16,559 being scheduling algorithms uh 940 00:32:15,120 --> 00:32:18,480 scheduling algorithms in real-time 941 00:32:16,559 --> 00:32:20,159 operating systems tend to be more fair 942 00:32:18,480 --> 00:32:21,440 they tend to guarantee you get a certain 943 00:32:20,159 --> 00:32:22,880 amount of time 944 00:32:21,440 --> 00:32:25,840 and your software then has enough time 945 00:32:22,880 --> 00:32:28,480 to do its job um you kind of trade 946 00:32:25,840 --> 00:32:30,320 guaranteed time for throughput so each 947 00:32:28,480 --> 00:32:34,240 individual process doesn't have as much 948 00:32:30,320 --> 00:32:35,679 power but they all definitely get time 949 00:32:34,240 --> 00:32:37,120 which is part of the basis for rt 950 00:32:35,679 --> 00:32:38,960 preempt you get the scheduler 951 00:32:37,120 --> 00:32:42,320 modifications 952 00:32:38,960 --> 00:32:46,240 it started out back from ingomola and uh 953 00:32:42,320 --> 00:32:48,240 to 2005 start off with the 2611 kernel 954 00:32:46,240 --> 00:32:51,679 uh it added two more preemption levels 955 00:32:48,240 --> 00:32:55,200 which are how deeply you can say no 956 00:32:51,679 --> 00:32:56,399 immediately respond to this uh and 957 00:32:55,200 --> 00:32:57,840 those have 958 00:32:56,399 --> 00:33:00,080 in large part actually wound up in 959 00:32:57,840 --> 00:33:01,919 mainland but there still is a a chunk of 960 00:33:00,080 --> 00:33:04,720 code that has yet to become mainline 961 00:33:01,919 --> 00:33:06,399 kernel um and even with all of that work 962 00:33:04,720 --> 00:33:08,559 over you know over a decade's worth of 963 00:33:06,399 --> 00:33:10,720 work there are still small sections that 964 00:33:08,559 --> 00:33:13,200 are not fully preemptable even with your 965 00:33:10,720 --> 00:33:14,480 fully preemptable mode turned on uh they 966 00:33:13,200 --> 00:33:16,399 are the most critical parts of the 967 00:33:14,480 --> 00:33:19,760 kernel that there just hasn't been a 968 00:33:16,399 --> 00:33:21,200 good way to make preemptable so so even 969 00:33:19,760 --> 00:33:23,120 with the real-time patches there are 970 00:33:21,200 --> 00:33:24,399 going to be places where linux 971 00:33:23,120 --> 00:33:26,399 might not work and you might need to 972 00:33:24,399 --> 00:33:29,120 look at a different real-time operating 973 00:33:26,399 --> 00:33:31,200 system say like free free rtos or 974 00:33:29,120 --> 00:33:32,720 something if you need that truly hard 975 00:33:31,200 --> 00:33:36,080 real time 976 00:33:32,720 --> 00:33:38,000 and that free free free rtos is a 977 00:33:36,080 --> 00:33:40,399 real-time operating system sponsored by 978 00:33:38,000 --> 00:33:42,159 amazon and it is 979 00:33:40,399 --> 00:33:44,799 another open source example that could 980 00:33:42,159 --> 00:33:47,360 be used in instead of real-time linux in 981 00:33:44,799 --> 00:33:49,519 that scenario 982 00:33:47,360 --> 00:33:52,000 embedded linux is what you'll normally 983 00:33:49,519 --> 00:33:54,320 find used in these environments you get 984 00:33:52,000 --> 00:33:56,240 things like yocto and open embedded 985 00:33:54,320 --> 00:33:58,000 you get build root i didn't include 986 00:33:56,240 --> 00:33:59,679 linaro in here because it's sort of out 987 00:33:58,000 --> 00:34:02,559 of fashion in the embedded space it's 988 00:33:59,679 --> 00:34:04,640 kind of more of a phone thing 989 00:34:02,559 --> 00:34:05,919 you get open wrt 990 00:34:04,640 --> 00:34:08,960 less commonly because it's not as 991 00:34:05,919 --> 00:34:11,119 flexible uh it works where the hard work 992 00:34:08,960 --> 00:34:14,720 gets done to make it work but it's not 993 00:34:11,119 --> 00:34:17,280 as inherently flexible um you also see 994 00:34:14,720 --> 00:34:18,560 sort of more high level build tools like 995 00:34:17,280 --> 00:34:21,839 a number of tools are built on top of 996 00:34:18,560 --> 00:34:23,359 debian such as isr and elbe which 997 00:34:21,839 --> 00:34:26,159 combines some of the lower level things 998 00:34:23,359 --> 00:34:28,720 like build root into automation tooling 999 00:34:26,159 --> 00:34:30,079 to take and combine your own embedded 1000 00:34:28,720 --> 00:34:32,159 debian version 1001 00:34:30,079 --> 00:34:34,240 and there are similar tools for the gen2 1002 00:34:32,159 --> 00:34:36,240 ecosystem so again two being a very 1003 00:34:34,240 --> 00:34:38,800 flexible linux distro has a number of 1004 00:34:36,240 --> 00:34:40,560 tools to build down into tiny embedded 1005 00:34:38,800 --> 00:34:42,079 images um 1006 00:34:40,560 --> 00:34:44,960 and then there's obviously the do it all 1007 00:34:42,079 --> 00:34:46,159 from scratch um which has been part of 1008 00:34:44,960 --> 00:34:48,320 the process in a lot of these other 1009 00:34:46,159 --> 00:34:49,919 cases like the uc linux ones would 1010 00:34:48,320 --> 00:34:51,919 likely have been quite custom from 1011 00:34:49,919 --> 00:34:53,040 scratch ones 1012 00:34:51,919 --> 00:34:54,960 this is the sort of thing you see 1013 00:34:53,040 --> 00:34:56,800 gradually becoming more and more common 1014 00:34:54,960 --> 00:34:58,000 is the reusability and repeatability 1015 00:34:56,800 --> 00:35:01,520 which is where you started to get the 1016 00:34:58,000 --> 00:35:04,160 software ecosystem come together 1017 00:35:01,520 --> 00:35:05,680 so there's things like cubos which is a 1018 00:35:04,160 --> 00:35:07,040 build route based custom linux 1019 00:35:05,680 --> 00:35:09,520 distribution 1020 00:35:07,040 --> 00:35:12,800 and nasa's cfs and opensat kit which 1021 00:35:09,520 --> 00:35:14,640 builds cfs on top of linux so 1022 00:35:12,800 --> 00:35:17,359 you get the coreflight system which is 1023 00:35:14,640 --> 00:35:19,839 an operating system agnostic uh flight 1024 00:35:17,359 --> 00:35:22,480 software set it does a bunch of hardware 1025 00:35:19,839 --> 00:35:24,400 abstractions and uh it runs on a number 1026 00:35:22,480 --> 00:35:25,520 of operating systems it's built around a 1027 00:35:24,400 --> 00:35:27,359 message bus so that you can have 1028 00:35:25,520 --> 00:35:29,119 multiple people all talking together 1029 00:35:27,359 --> 00:35:30,400 without any piece getting blocked again 1030 00:35:29,119 --> 00:35:33,359 getting back to that real time thing 1031 00:35:30,400 --> 00:35:34,880 they have to do their job immediately 1032 00:35:33,359 --> 00:35:36,560 and it has a number of things that are 1033 00:35:34,880 --> 00:35:38,640 already built for common spacecraft 1034 00:35:36,560 --> 00:35:39,920 tasks but it's not really well designed 1035 00:35:38,640 --> 00:35:42,079 around beginners the a lot of the 1036 00:35:39,920 --> 00:35:44,240 documentation is very technical down in 1037 00:35:42,079 --> 00:35:46,079 things like registers mode sets and and 1038 00:35:44,240 --> 00:35:47,760 very low level documentation it can be a 1039 00:35:46,079 --> 00:35:49,760 bit intimidating to get get your head 1040 00:35:47,760 --> 00:35:52,000 around and it is more designed around 1041 00:35:49,760 --> 00:35:53,520 real-time systems linux is it's not 1042 00:35:52,000 --> 00:35:55,440 treated literally as a second-class 1043 00:35:53,520 --> 00:35:57,040 citizen but it is definitely a less 1044 00:35:55,440 --> 00:35:59,119 supported platform they view it as sort 1045 00:35:57,040 --> 00:36:00,560 of a development target for getting your 1046 00:35:59,119 --> 00:36:02,400 development environment up and running 1047 00:36:00,560 --> 00:36:03,440 and and getting started with that kind 1048 00:36:02,400 --> 00:36:04,800 of a thing 1049 00:36:03,440 --> 00:36:06,560 um 1050 00:36:04,800 --> 00:36:08,880 the 1051 00:36:06,560 --> 00:36:10,560 the other one i mentioned was cubos 1052 00:36:08,880 --> 00:36:12,800 which was originally developed by the 1053 00:36:10,560 --> 00:36:14,079 qboss corporation they are no longer 1054 00:36:12,800 --> 00:36:15,359 maintained it 1055 00:36:14,079 --> 00:36:16,560 and 1056 00:36:15,359 --> 00:36:18,079 the 1057 00:36:16,560 --> 00:36:20,560 issue for them was that they were seeing 1058 00:36:18,079 --> 00:36:22,160 more customers come for their um 1059 00:36:20,560 --> 00:36:24,800 for their mission operations management 1060 00:36:22,160 --> 00:36:26,960 software stack not the software on the 1061 00:36:24,800 --> 00:36:28,880 satellites so they naturally shifted 1062 00:36:26,960 --> 00:36:30,800 their business but it is open source and 1063 00:36:28,880 --> 00:36:33,359 it is actually maintained by a community 1064 00:36:30,800 --> 00:36:35,040 uh as as you saw there there is actually 1065 00:36:33,359 --> 00:36:37,119 a still group of people keeping that one 1066 00:36:35,040 --> 00:36:38,960 open um 1067 00:36:37,119 --> 00:36:40,800 and it's as i said earlier a linux based 1068 00:36:38,960 --> 00:36:42,800 system using build route a large portion 1069 00:36:40,800 --> 00:36:44,640 of the stack is built in rust uh they 1070 00:36:42,800 --> 00:36:46,960 have rust and python sdks and it uses 1071 00:36:44,640 --> 00:36:49,200 graphql apis between the talking of the 1072 00:36:46,960 --> 00:36:51,280 components so it's quite a more modern 1073 00:36:49,200 --> 00:36:53,359 environment than the very low level 1074 00:36:51,280 --> 00:36:55,520 uh you know 1075 00:36:53,359 --> 00:36:57,440 like the very different contrast is a 1076 00:36:55,520 --> 00:36:59,359 very more modern uh 1077 00:36:57,440 --> 00:37:00,640 graphql it's hard to get more modern 1078 00:36:59,359 --> 00:37:02,640 than that when you compare that to sort 1079 00:37:00,640 --> 00:37:06,320 of a a 1080 00:37:02,640 --> 00:37:06,320 raw memory message bus 1081 00:37:06,640 --> 00:37:11,440 and as for how i actually end up 1082 00:37:08,720 --> 00:37:13,920 traveling down here is because um i 1083 00:37:11,440 --> 00:37:15,040 decided i wanted to build a satellite i 1084 00:37:13,920 --> 00:37:17,520 was looking in the mirror one day at the 1085 00:37:15,040 --> 00:37:20,800 start of the pandemic in 2019 1086 00:37:17,520 --> 00:37:22,800 and well 2020 i guess and and sort of 1087 00:37:20,800 --> 00:37:24,880 was like i really should do something 1088 00:37:22,800 --> 00:37:27,040 and uh yeah i decided to build a 1089 00:37:24,880 --> 00:37:27,839 satellite you can see there that's the 1090 00:37:27,040 --> 00:37:29,839 uh 1091 00:37:27,839 --> 00:37:31,359 my benchtop prototyping it doesn't have 1092 00:37:29,839 --> 00:37:33,119 all the pieces it needs it has the 1093 00:37:31,359 --> 00:37:34,720 computer hardware it needs the rest of 1094 00:37:33,119 --> 00:37:37,760 it is just space to make sure i've got 1095 00:37:34,720 --> 00:37:39,280 room for things uh like batteries 1096 00:37:37,760 --> 00:37:40,720 yeah i don't know you can't really see 1097 00:37:39,280 --> 00:37:44,240 it in there but that's a battery from 1098 00:37:40,720 --> 00:37:46,000 linux linux.conf that iu from 2015. 1099 00:37:44,240 --> 00:37:47,839 um there's a raspberry pi wedged in 1100 00:37:46,000 --> 00:37:51,119 there and there's a a fairly large 1101 00:37:47,839 --> 00:37:52,880 camera lens of my own in there um but 1102 00:37:51,119 --> 00:37:55,599 yeah that's what dragged me into getting 1103 00:37:52,880 --> 00:37:57,680 stuck into all of this um 1104 00:37:55,599 --> 00:37:59,359 i still want to get that finished 1105 00:37:57,680 --> 00:38:00,640 so naturally i'm still involved in all 1106 00:37:59,359 --> 00:38:03,680 of this 1107 00:38:00,640 --> 00:38:05,200 which leads to the bigger picture so 1108 00:38:03,680 --> 00:38:07,200 as you saw earlier the number of 1109 00:38:05,200 --> 00:38:09,520 satellites being launched with linux is 1110 00:38:07,200 --> 00:38:10,960 rapidly growing but a lot of it is 1111 00:38:09,520 --> 00:38:12,800 uh if if 1112 00:38:10,960 --> 00:38:13,839 the information is being published is to 1113 00:38:12,800 --> 00:38:15,599 believed 1114 00:38:13,839 --> 00:38:18,079 fairly antiquated with the exception of 1115 00:38:15,599 --> 00:38:18,880 ones that are frozen and kept up to date 1116 00:38:18,079 --> 00:38:21,119 so 1117 00:38:18,880 --> 00:38:22,240 you see a situation where you know we've 1118 00:38:21,119 --> 00:38:24,800 got 1119 00:38:22,240 --> 00:38:26,640 a need for a bigger organization the 1120 00:38:24,800 --> 00:38:28,320 situation is quite a bit similar to 1121 00:38:26,640 --> 00:38:30,560 where the automotive industry was a 1122 00:38:28,320 --> 00:38:33,119 decade ago we had the start of the 1123 00:38:30,560 --> 00:38:35,520 automotive grade linux project in 2012 1124 00:38:33,119 --> 00:38:37,680 and it might be time for us to see an 1125 00:38:35,520 --> 00:38:39,839 equivalent in the space and aerospace 1126 00:38:37,680 --> 00:38:42,720 area we have a number of things around 1127 00:38:39,839 --> 00:38:44,320 the drone and the the aero in aerospace 1128 00:38:42,720 --> 00:38:47,440 but we don't really have a equivalent 1129 00:38:44,320 --> 00:38:49,280 for space um you know and and there's a 1130 00:38:47,440 --> 00:38:51,680 number of things that might be relevant 1131 00:38:49,280 --> 00:38:54,079 for us to do um 1132 00:38:51,680 --> 00:38:56,480 yeah so uh 1133 00:38:54,079 --> 00:38:56,480 questions 1134 00:38:57,599 --> 00:39:02,240 hello it's me again i'm here to ask 1135 00:39:00,079 --> 00:39:03,040 questions that was a great fun talk 1136 00:39:02,240 --> 00:39:04,640 uh 1137 00:39:03,040 --> 00:39:06,720 we've got a bunch of questions if people 1138 00:39:04,640 --> 00:39:08,079 want to vote them in the questions tab 1139 00:39:06,720 --> 00:39:09,680 so that we can prioritize the popular 1140 00:39:08,079 --> 00:39:11,040 ones and take the rest to the text chat 1141 00:39:09,680 --> 00:39:12,400 afterwards uh we've got about six 1142 00:39:11,040 --> 00:39:13,520 minutes for this 1143 00:39:12,400 --> 00:39:15,440 um 1144 00:39:13,520 --> 00:39:16,480 that was so good uh the first question 1145 00:39:15,440 --> 00:39:18,400 that we've got 1146 00:39:16,480 --> 00:39:20,800 is are security concerns a common 1147 00:39:18,400 --> 00:39:22,480 consideration for space platforms 1148 00:39:20,800 --> 00:39:24,720 especially since the systems are related 1149 00:39:22,480 --> 00:39:27,440 to human well-being 1150 00:39:24,720 --> 00:39:29,839 oh ab absolutely in in the uh diagram 1151 00:39:27,440 --> 00:39:31,200 there there was a it might be a little 1152 00:39:29,839 --> 00:39:33,200 bit hard to see but there's actually a 1153 00:39:31,200 --> 00:39:36,000 whole block there dedicated to security 1154 00:39:33,200 --> 00:39:38,079 uh things like encryption are called out 1155 00:39:36,000 --> 00:39:40,800 and and it's one of the primary systems 1156 00:39:38,079 --> 00:39:42,640 in you know in the actual control flow 1157 00:39:40,800 --> 00:39:44,079 um you know the 1158 00:39:42,640 --> 00:39:46,320 from the telecommand block on the left 1159 00:39:44,079 --> 00:39:48,160 side there straight down into the 1160 00:39:46,320 --> 00:39:50,480 authentication and the decryption and 1161 00:39:48,160 --> 00:39:51,520 the security before being passed on to 1162 00:39:50,480 --> 00:39:53,200 anything else and encrypting the 1163 00:39:51,520 --> 00:39:54,560 downlink as well so so encryption is 1164 00:39:53,200 --> 00:39:56,000 definitely something that is actually 1165 00:39:54,560 --> 00:39:58,880 considered an important part of these 1166 00:39:56,000 --> 00:40:00,560 systems absolutely 1167 00:39:58,880 --> 00:40:03,680 that makes a lot of sense 1168 00:40:00,560 --> 00:40:06,640 uh our next highest voted one is how do 1169 00:40:03,680 --> 00:40:09,280 these systems get tested on earth 1170 00:40:06,640 --> 00:40:11,520 uh that is a fun and interesting topic i 1171 00:40:09,280 --> 00:40:13,599 skipped over my little one 1172 00:40:11,520 --> 00:40:15,040 because i have been getting to grips 1173 00:40:13,599 --> 00:40:16,800 with that now on 1174 00:40:15,040 --> 00:40:17,760 a lot of the commercial projects it gets 1175 00:40:16,800 --> 00:40:19,280 built 1176 00:40:17,760 --> 00:40:21,200 custom for your project you'll build 1177 00:40:19,280 --> 00:40:22,079 your test harnesses you'll build your 1178 00:40:21,200 --> 00:40:24,640 own 1179 00:40:22,079 --> 00:40:26,800 uh testing equipment you'll wire up a 1180 00:40:24,640 --> 00:40:29,040 system to a test harness and you'll have 1181 00:40:26,800 --> 00:40:30,800 it hooked up to signal monitoring 1182 00:40:29,040 --> 00:40:32,000 equipment like a signal analyzer and 1183 00:40:30,800 --> 00:40:33,520 things like that and you'll guarantee 1184 00:40:32,000 --> 00:40:35,760 that your software is sending out your 1185 00:40:33,520 --> 00:40:37,440 signals with the exact right timing and 1186 00:40:35,760 --> 00:40:38,800 you'll run it into a simulator that 1187 00:40:37,440 --> 00:40:39,839 determines whether it's doing things 1188 00:40:38,800 --> 00:40:41,520 like that so 1189 00:40:39,839 --> 00:40:43,440 you'll effectively like using something 1190 00:40:41,520 --> 00:40:45,119 like the dragon capsule as an example 1191 00:40:43,440 --> 00:40:48,400 they would have the computers hooked up 1192 00:40:45,119 --> 00:40:50,240 to a flight simulator and the software 1193 00:40:48,400 --> 00:40:52,640 running on the computers would fly the 1194 00:40:50,240 --> 00:40:54,720 simulator instead of a person to test 1195 00:40:52,640 --> 00:40:56,240 that the simulator 1196 00:40:54,720 --> 00:40:58,400 flies the way the computers are supposed 1197 00:40:56,240 --> 00:41:01,359 to fly it and you sort of build these 1198 00:40:58,400 --> 00:41:03,119 scenarios up in order to do testing um 1199 00:41:01,359 --> 00:41:04,240 that's the large end on the smaller end 1200 00:41:03,119 --> 00:41:06,560 with things like these open source 1201 00:41:04,240 --> 00:41:08,720 projects and and where we really need to 1202 00:41:06,560 --> 00:41:10,480 start seeing more things is is similar 1203 00:41:08,720 --> 00:41:12,720 to the regular embedded space you you 1204 00:41:10,480 --> 00:41:14,319 need things like reconfigurable micro sd 1205 00:41:12,720 --> 00:41:16,240 cards in order to 1206 00:41:14,319 --> 00:41:18,800 flash an os image onto a piece of 1207 00:41:16,240 --> 00:41:19,599 hardware run it through a test cycle and 1208 00:41:18,800 --> 00:41:21,520 then 1209 00:41:19,599 --> 00:41:23,599 critically test that it upgrades 1210 00:41:21,520 --> 00:41:25,280 correctly because 1211 00:41:23,599 --> 00:41:26,560 what you need to be able to do is you 1212 00:41:25,280 --> 00:41:28,480 need to be able to send up a whole bunch 1213 00:41:26,560 --> 00:41:30,400 of data and then have it do the update 1214 00:41:28,480 --> 00:41:32,480 while you're not looking and if it fails 1215 00:41:30,400 --> 00:41:34,800 it has to fall back uh there's been a 1216 00:41:32,480 --> 00:41:36,000 number of instances over the last few 1217 00:41:34,800 --> 00:41:38,720 years of the 1218 00:41:36,000 --> 00:41:40,800 mars rovers needing to fall back more uh 1219 00:41:38,720 --> 00:41:42,720 engine yeah more ingenuity than 1220 00:41:40,800 --> 00:41:44,720 perseverance um 1221 00:41:42,720 --> 00:41:46,640 sorry curiosity instead of perseverance 1222 00:41:44,720 --> 00:41:48,880 and and it has had to fall back to its 1223 00:41:46,640 --> 00:41:50,400 alternative computer a number of times 1224 00:41:48,880 --> 00:41:52,240 but this is routine they build them with 1225 00:41:50,400 --> 00:41:54,400 two computers an a and a b 1226 00:41:52,240 --> 00:41:56,400 and they do this naturally in order to 1227 00:41:54,400 --> 00:41:57,680 have the level of robustness in that 1228 00:41:56,400 --> 00:41:59,920 fault tolerance stuff we mentioned 1229 00:41:57,680 --> 00:42:02,079 earlier but to do that on cheaper 1230 00:41:59,920 --> 00:42:04,400 hardware where you don't have a billion 1231 00:42:02,079 --> 00:42:06,160 dollar budget you you do that in 1232 00:42:04,400 --> 00:42:08,319 software you have things like how on an 1233 00:42:06,160 --> 00:42:10,640 android phone if your update is broken 1234 00:42:08,319 --> 00:42:12,319 you fall back to the old version and and 1235 00:42:10,640 --> 00:42:13,599 we need to be in a position to test that 1236 00:42:12,319 --> 00:42:15,680 sort of thing on 1237 00:42:13,599 --> 00:42:17,440 regular old linux and and you test that 1238 00:42:15,680 --> 00:42:20,000 with things like a reconfigurable micro 1239 00:42:17,440 --> 00:42:20,000 sd card 1240 00:42:20,880 --> 00:42:23,040 that makes a lot of sense that's really 1241 00:42:22,240 --> 00:42:25,920 cool 1242 00:42:23,040 --> 00:42:27,520 uh our next question is given how much 1243 00:42:25,920 --> 00:42:29,520 of linux has been historically based 1244 00:42:27,520 --> 00:42:31,200 around community and that linux in space 1245 00:42:29,520 --> 00:42:33,520 is entirely deopolized by the two 1246 00:42:31,200 --> 00:42:35,119 largest satellite operators how do we 1247 00:42:33,520 --> 00:42:37,839 encourage sharing their learnings to 1248 00:42:35,119 --> 00:42:40,319 enable more small operators to leverage 1249 00:42:37,839 --> 00:42:43,200 this for small smaller missions i'll put 1250 00:42:40,319 --> 00:42:43,200 that in the text chat 1251 00:42:43,839 --> 00:42:47,440 this slide right here um i'm i'm 1252 00:42:45,839 --> 00:42:49,119 wondering if that question was asked it 1253 00:42:47,440 --> 00:42:51,359 was earlier on before i 1254 00:42:49,119 --> 00:42:53,440 yeah yeah no that that is actually 1255 00:42:51,359 --> 00:42:55,280 something i'm quite concerned about um 1256 00:42:53,440 --> 00:42:56,800 i'm i'm sure that the people at spacex 1257 00:42:55,280 --> 00:42:58,640 are doing an absolutely 1258 00:42:56,800 --> 00:42:59,839 tremendous job um they are running a 1259 00:42:58,640 --> 00:43:01,200 custom kernel so i'm sure they're 1260 00:42:59,839 --> 00:43:03,200 putting on all the security fixes they 1261 00:43:01,200 --> 00:43:04,800 find but it's 3-2 1262 00:43:03,200 --> 00:43:06,960 so 1263 00:43:04,800 --> 00:43:09,680 you know that's that's getting kind of 1264 00:43:06,960 --> 00:43:12,880 long in the tooth um 1265 00:43:09,680 --> 00:43:14,960 maybe in a situation where it's being 1266 00:43:12,880 --> 00:43:16,560 talked to by other equipment that might 1267 00:43:14,960 --> 00:43:18,240 not be good i mean they're not obviously 1268 00:43:16,560 --> 00:43:20,240 having any random computer connected to 1269 00:43:18,240 --> 00:43:21,520 the into the rocket or the space capsule 1270 00:43:20,240 --> 00:43:23,040 they're in control of all that so 1271 00:43:21,520 --> 00:43:24,079 they're not really at risk there but 1272 00:43:23,040 --> 00:43:25,680 it's still 1273 00:43:24,079 --> 00:43:28,319 the sort of thing that if your satellite 1274 00:43:25,680 --> 00:43:30,240 is talking you know as part of a network 1275 00:43:28,319 --> 00:43:32,240 you need to know about and so we do need 1276 00:43:30,240 --> 00:43:34,400 a bigger community we need to to start 1277 00:43:32,240 --> 00:43:37,280 looking seriously at starting a broader 1278 00:43:34,400 --> 00:43:37,280 community around this 1279 00:43:37,760 --> 00:43:43,200 that's really useful um 1280 00:43:40,560 --> 00:43:43,200 i lost track 1281 00:43:46,000 --> 00:43:48,960 the problem with doing this out of water 1282 00:43:47,280 --> 00:43:50,960 is that now it's out of shape 1283 00:43:48,960 --> 00:43:52,560 uh i'll go from the bottom what's the 1284 00:43:50,960 --> 00:43:55,920 market share of linux and space these 1285 00:43:52,560 --> 00:43:57,599 days compared to traditional embedded os 1286 00:43:55,920 --> 00:43:59,599 says this is an early question as well 1287 00:43:57,599 --> 00:44:02,319 so you've probably answered this one yep 1288 00:43:59,599 --> 00:44:03,599 definitely covered it on uh 1289 00:44:02,319 --> 00:44:07,319 it was uh 1290 00:44:03,599 --> 00:44:07,319 back to here 40.5 1291 00:44:07,359 --> 00:44:11,920 that was a very early question 1292 00:44:09,119 --> 00:44:13,520 uh what sort of code encoding methods 1293 00:44:11,920 --> 00:44:15,440 are used for these platforms also is the 1294 00:44:13,520 --> 00:44:17,200 linux networking used locally or for the 1295 00:44:15,440 --> 00:44:19,119 up down link 1296 00:44:17,200 --> 00:44:20,640 uh interesting example considering i 1297 00:44:19,119 --> 00:44:22,480 stopped right on the correct slide here 1298 00:44:20,640 --> 00:44:24,800 the linux networking is used internally 1299 00:44:22,480 --> 00:44:27,520 for cube os uh so it's actually using 1300 00:44:24,800 --> 00:44:29,440 http with regular on on the loopback so 1301 00:44:27,520 --> 00:44:31,119 these services are all popped into ports 1302 00:44:29,440 --> 00:44:33,119 on the loopback ip address and they will 1303 00:44:31,119 --> 00:44:34,880 talk to each other on the loopback so 1304 00:44:33,119 --> 00:44:37,040 you see it's actually using the linux 1305 00:44:34,880 --> 00:44:40,160 native stack internally but for 1306 00:44:37,040 --> 00:44:41,599 communication up and down uh barring the 1307 00:44:40,160 --> 00:44:44,000 instances 1308 00:44:41,599 --> 00:44:45,359 where there's someone who's using uh 1309 00:44:44,000 --> 00:44:47,040 like like i mentioned earlier there's 1310 00:44:45,359 --> 00:44:47,839 these companies that are developing sort 1311 00:44:47,040 --> 00:44:49,760 of 1312 00:44:47,839 --> 00:44:51,040 satellite to satellite communication so 1313 00:44:49,760 --> 00:44:53,200 that you get the equivalent of a 1314 00:44:51,040 --> 00:44:54,640 satellite internet connection but for 1315 00:44:53,200 --> 00:44:55,920 your satellite 1316 00:44:54,640 --> 00:44:57,440 other than that 1317 00:44:55,920 --> 00:44:59,839 no because 1318 00:44:57,440 --> 00:45:02,000 the space to ground and ground to space 1319 00:44:59,839 --> 00:45:04,079 is normally done over radio protocols 1320 00:45:02,000 --> 00:45:05,599 sort of more more akin to like frame 1321 00:45:04,079 --> 00:45:08,319 relay where you'll just build a big 1322 00:45:05,599 --> 00:45:09,599 buffer of data broadcast it up with the 1323 00:45:08,319 --> 00:45:11,440 radio on the other end giving you 1324 00:45:09,599 --> 00:45:12,800 minimal acknowledgement and then you get 1325 00:45:11,440 --> 00:45:14,800 an acknowledgement at the end of your 1326 00:45:12,800 --> 00:45:16,000 broadcast and then 1327 00:45:14,800 --> 00:45:17,200 it comes back 1328 00:45:16,000 --> 00:45:18,960 it's a little bit more sophisticated 1329 00:45:17,200 --> 00:45:20,480 with optical stuff it tends to be a lot 1330 00:45:18,960 --> 00:45:22,240 more of a continuous acknowledgement of 1331 00:45:20,480 --> 00:45:25,040 the data transmission but it's still not 1332 00:45:22,240 --> 00:45:26,560 a proper tcp sort of native networking 1333 00:45:25,040 --> 00:45:28,000 stack but 1334 00:45:26,560 --> 00:45:29,920 there are definitely a number of 1335 00:45:28,000 --> 00:45:31,359 projects that use that internally 1336 00:45:29,920 --> 00:45:33,520 because it's quite a valuable way to 1337 00:45:31,359 --> 00:45:35,359 break up a system so if you want that 1338 00:45:33,520 --> 00:45:37,599 robustness in terms of having things 1339 00:45:35,359 --> 00:45:39,599 split into multiple segments 1340 00:45:37,599 --> 00:45:41,200 you will often have those two segments 1341 00:45:39,599 --> 00:45:42,079 talk over a network stack so you might 1342 00:45:41,200 --> 00:45:44,160 have 1343 00:45:42,079 --> 00:45:46,960 something like a 1344 00:45:44,160 --> 00:45:48,640 like a network switch done in a you know 1345 00:45:46,960 --> 00:45:50,400 brad hardened fpga 1346 00:45:48,640 --> 00:45:51,520 and uh you might split the two computers 1347 00:45:50,400 --> 00:45:53,760 in half 1348 00:45:51,520 --> 00:45:55,200 i will cut us off there uh we are out of 1349 00:45:53,760 --> 00:45:56,480 time and i have missed an important 1350 00:45:55,200 --> 00:45:57,760 question which i'll put into the text 1351 00:45:56,480 --> 00:45:59,200 chat there are a few other questions as 1352 00:45:57,760 --> 00:46:01,040 well cats sniffing i'll definitely be 1353 00:45:59,200 --> 00:46:02,079 sticking around to uh answer the 1354 00:46:01,040 --> 00:46:04,240 questions 1355 00:46:02,079 --> 00:46:06,960 i head into the post talk chat for kia 1356 00:46:04,240 --> 00:46:09,200 ora theater and then um 1357 00:46:06,960 --> 00:46:10,800 next up we've got ryan verna with 1358 00:46:09,200 --> 00:46:13,599 virtual events behind the scenes of an 1359 00:46:10,800 --> 00:46:15,119 engaging community conference and 1360 00:46:13,599 --> 00:46:17,280 for people as well if you're a 1361 00:46:15,119 --> 00:46:19,119 professional or a contributor uh ticket 1362 00:46:17,280 --> 00:46:21,680 holder remember to join us from 6 30 1363 00:46:19,119 --> 00:46:22,960 aedt in venulis for the professionals 1364 00:46:21,680 --> 00:46:24,560 delegates 1365 00:46:22,960 --> 00:46:26,240 uh networking session and a really 1366 00:46:24,560 --> 00:46:28,319 interesting presentation from anthony 1367 00:46:26,240 --> 00:46:29,839 green on election analysis thank you so 1368 00:46:28,319 --> 00:46:34,040 much sam this has been really great i 1369 00:46:29,839 --> 00:46:34,040 hope you have a great rest of your day