“Just so,” Crow said. “But suppose a small loophole were left in the variable checking. It would just take a few lines of code, but if it let the wrong kind of bad data through, that could trigger a fault or put the operating code into an unexpected state and open it up to all sorts of mischief. It might even be something as simple as a handful of code in the operating system that says something like, ‘If you read a pressure value of exactly 0.1876, then jump to the following library module.’”
Becca jumped in again. “Oh, I could get a lot more devious than that. We played pranks like this back at MIT. If I were being really nasty, I’d trigger a fault that would load code that was buried in the data log itself. Here’s how I’d do it in a couple of lines:
“When the attack code reads the trigger data, it loads the Easter egg code from the log. The Easter egg executes, and the first thing it does is erases its code from the log, along with the trigger data. Then it writes itself and new trigger data back into the log at a different point. That way the Easter egg is a moving target in memory and in time. That’s a lot harder to pinpoint. Next it triggers the reactor shutdown. Once it’s done that, it tells the operating system that it’s finished with this task and it’s relinquishing the block of memory it’s sitting in so that the operating system can load a standard library component back into that chunk of memory. It’s erased its footsteps—nothing to find.
“It’s all just strings of binary. The computer treats what’s in the operating system as programming instructions and what’s in the logs as data values. But there’s no reason it can’t load data from the logs as a program to be run. Normally, that wouldn’t make any sense, it would just crash the operating system and it would reboot. But if there really is code buried in there . . .”
Crow nodded approvingly. “Considerably simpler than what my colleagues had in mind, but it’s a starting point. Have you ever thought of coming to work for me? I could find a place for you.”
“I like my world fine, thank you very much,” Becca retorted. “But I’ll take the compliment.”
Crow said, “If it is sabotage, we don’t know this is what the saboteur did or exactly how they did it, what they’re using as a trigger. Could be a specific data value, could be an untrapped out-of-bounds fault, there’s a dozen ways to do this. And because it only takes a few lines of code to set it off, looking through the code factory’s maintenance and revision records wouldn’t tell you anything. If the Easter egg were resident in the operating system, there’d be thousands of lines of code, and you’d find the discrepancy in the records. But all that’s in the operating system is the tripwire. A couple of lines of odd code? That gets written every day. It can be as simple as a few typographical errors getting corrected. Nobody reviews the quality control records for a couple of lines of code unless it misbehaves, and this is designed to never misbehave without the trigger.”
Fang-Castro: “So why has this affected only one reactor and not the other?”
Becca responded, “I can think of several reasons. Maybe someone didn’t have time to insert it into the logs on both systems. Or maybe it got inserted in and then flushed and scrubbed in one of the log modifications. The logs are just big repositories for the data that’s collected from the two power plants. Essentially they’re nothing more than storage bins, and beyond making sure that they’re operating the way they’re supposed to, we don’t worry about them much. We don’t treat them exactly the same way.”
Fang-Castro ran her hand through her hair. “So you’re saying we got lucky. Or half lucky, half unlucky.”
Crow said, “I doubt that luck has anything to do with it.”
“And we can’t bring both reactors back online?”
“If I do, I’m pretty sure the second one is just going to shut down again,” Becca said. “I don’t see what we’d gain by it. Plus, these emergency shutdowns are hard on the system. That’s not the way it’s designed to be run. We keep this up and we’re going to break something before the mission is done.”
“How about wiping the data logs and starting from scratch?” Fang-Castro asked.
Becca started to say, “We could try that . . . ,” but Crow cut her off in mid-sentence.
“That’s such an obvious thing to do that if I were in charge of this little hack, it’s the first thing I’d make sure wouldn’t work,” Crow said. “It’d be very easy to circumvent.”
Fang-Castro sighed. “So we’re stuck with half power indefinitely. Assuming that, and that things don’t get worse, I had Navigation work up a revised trajectory for us.” She pulled up an orbit plot on the wallscreen. “The dashed line is our old trajectory. The solid one our new course. You can see there isn’t much difference.” She zoomed in on the part of the trajectory near the sun. “The main difference is we don’t need to come in quite as tight by the sun, because we won’t be traveling as fast. A perihelion of thirty-five million kilometers will be close enough for the sun’s gravity to swing us onto the right vector for Saturn. That should make you a little happier, Becca.”
Becca smiled just a bit. “I’ll take what good news I can get, Captain. It’ll put a little less strain on the radiators. Plus, since we will be running at half power anyway, we won’t need to throttle back when we’re close to the sun, like we had to in our original plans. The radiators have more than enough capacity to shed the waste heat, even that close to the sun.”
Fang-Castro continued. “That’s good. Of course, the bad news is that with only half the thrust we had before, we’re not going to get there as quickly. Fortunately we were already moving at a decent clip, fifty kilometers per second relative to the sun, when we lost Reactor 2. Consequently, the impact isn’t as bad as it could’ve been. When all is said and done, we’re going to arrive at Saturn about thirty days later than we’d originally planned. Our new ETA is January 23, 2068. That’s still more than three months ahead of the Chinese.”
She continued: “Mr. Crow, please have your colleagues put in some more thought on this problem and let me know if they come up with any ideas for eliminating the Easter egg from System 2. If there is one. In the meantime, Dr. Johansson, I suggest you reassign most of the System 2 personnel to System 1. Just keep as many people on 2 as you think you need to continue looking for the source of our problems there, but I want the priority to be pampering our one remaining power system and keeping it as happy as possible. So—let’s go.
“Ahh, Dr. Johansson?” Becca looked at Fang-Castro, who was tapping her slate. “I’m reinstating your med computer regimen. No more all-nighters. In fact, as soon as you finish reassigning personnel, and I’m giving you exactly one half hour to do that, I’m ordering you to go shower and get at least two hours’ sleep.” Fang-Castro looked at Becca more closely. “No, make that three hours. We’re out of crisis mode, and I need you in the best possible physical and mental shape to see that we don’t slip back into it. That’s all.”
Becca started to protest, but the look in Fang-Castro’s eye made it very clear that this was not a negotiating point. She closed her mouth, nodded, smiled a wan smile, and left the conference room.
25.
Even with one reactor shut down, the Nixon was by far the fastest ship humanity had ever built. By late August, less than a month into its flight, it was crossing the orbit of Mercury; six more days would see it at perihelion, thirty-five million kilometers from the surface of the sun. Its velocity was already ninety kilometers per second, more than twice as fast as the Chinese Martian Odyssey. The combined pull of the sun and the thrust of the VASIMRs would add another twenty kilometers per second to that before it crossed perihelion.
The earth had dwindled to a starlike pinpoint of light on the screen in the Commons, while the sun had visually swelled to two and a half times its normal size. It would nearly double that again before it started to dwindle on the outward leg of Nixon’s voyage.
Power management and waste heat di
sposal required some adjustment, but nothing Becca and her engineers couldn’t handle. The closer they got to the sun, the less effective the radiator sails were at disposing of their burden of heat. At closest approach, the amount of solar energy hitting the sail, head-on, would have been almost half the amount it needed to radiate.
However, at closest approach, the radiators would be edge-on to the incandescent disk. They’d get minimal baking. Coming and going, the sails faced more toward the sun, but then the ship was farther away and solar heating less of a burden.
In the original mission plan, cutting back the power in response to the lower radiator efficiency would’ve cost them maybe two days of travel time, a small price to pay for trimming months off their ETA. Running on half power, though, the radiator system had capacity to spare. Their close pass by the sun wouldn’t chew up any additional time.
Running at half power vexed the Nixon’s chief engineer. As Crow’d predicted, they’d had no luck in figuring out exactly what was wrong with the Reactor 2 software, so Becca had continued to veto any restart of the second reactor. Commander Fang-Castro could override that, but she didn’t.
Becca was appreciative. Designing commercial power plant cooling systems meant dealing with company executives who felt the laws of engineering and even physics ought to be bent to improve the fiscal bottom line. Becca always won those disagreements, but she wasn’t much for hiding how much they displeased her. Minnesota-nice vied with engineer-geek, and the geek usually won out. Her personnel evaluations suggested she might show a bit more understanding of the requirements of the business world.
Becca, in turn, wished the business types had more of an appreciation of the requirements of the real world. She was discovering, to her pleasure, that captains of spaceships entirely appreciated those requirements, probably far better than she did. Space was not tolerant of wishful thinking.
A reactor that failed to perform as designed, for reasons nobody could properly diagnose, was more than merely aggravating. It violated her sense of order. Unpredictable power systems were dangerous power systems. She worried that Reactor 1 would prove similarly unpredictable and possibly considerably more deadly. There was no evidence for this at all, but worrying about hypotheticals was a big part of Becca’s design strategy. It cost her restful nights, but so far it had saved her ass more than once.
There was a more personal peeve. She was damned proud of having solved the propulsion system’s seemingly impossible power dissipation problem, and her engineer’s ego wanted to show it off. Simmering along at a mere half power made her feel like she’d designed the fastest race car on Earth and was limited to using it to commute to work.
Okay, not reasonable. It didn’t stop her from being bugged. Still, it was a small silver lining. The reactor and generator crews wouldn’t need to make any adjustments, and she’d just have to slow down the radiator ribbon velocity a bit to give the molten metal more time to dissipate its heat into space before it was collected by the far booms.
As for the rest of the ship . . .
Time to rig the sunshades.
The parasols were huge but thin, a mere half micron of metallized Kapton. Their total mass, including the struts to hold them as they swept through their close approach, was a few tonnes. An insignificant amount of extra weight at launch, considering the four thousand–plus-tonne ship it was designed to protect. Once the Nixon was safely distant from the sun again, the parasols would be jettisoned, off on their own unpowered escape trajectory from the solar system.
The parasols—there were two sets, in case there was some kind of failure to deploy the first one—were stowed on the outside of the axle. Each shade assembly came in two sections.
Martinez and the other handymen would be deploying them; the procedure was only semiautomatic.
Six of them went out in eggs, Sandy running his cameras, Fiorella broadcasting from another egg. In theory, one large parasol could have done the job, moving it during the course of solar flyby to keep it positioned between the ship and the sun.
In practice, that would’ve required either bulky external control equipment to move the parasols around, as the angle to the sun changed, or more EVAs much closer to the sun to manually reposition the screen. The latter was vetoed on pure safety grounds; it would stress the service eggs’ cooling systems enough having them operate at sixty million kilometers from the sun. They could not be used safely at forty million, not for very long periods of time, anyway.
Two separate sections that would not have to be moved were both simpler and safer.
The first of the two parasol sections was simply a disk three hundred meters in diameter that would be mounted at the forward end of the axle, about the nose cone that protected the module from micro-meteor impacts.
The gossamer-thin disk would shield all the forward modules—engineering, storage and shuttle bay, living and command—as they approached the sun nearly head-on.
All the egg crews had to do was detach a parasol package from the exterior of the ship, move it to prefabbed attachment points, clamp them in place, pull back to a safe distance, and let Martinez send the triggering signal to activate the packages.
Fang-Castro: “Mr. Martinez?”
“Yes, ma’am. Ready here.”
“Then you are instructed to continue. Mr. Darlington, if you please, we will want at least one camera fully dedicated to documentation, rather than journalism. We will be watching that feed from Engineering and from here in Command and Control.”
“Yes, ma’am.”
Martinez: “Jerry, Lou, slip the buttons and back the pack away.”
“Got that,” one of the crewmen said. Their two separate eggs were already in position, and they simply reached out with mechanical arms and disconnected the first of the parasol packs from the side of the axle.
Martinez and the third crewman, Phil Jakes, in their own eggs, were near the front of the ship, waiting as the first two slowly towed the pack toward them. Fiorella backed away—she was now actually in front of the Nixon, temporarily leading the way toward Saturn; Sandy had her position-locked in his number two camera, while the number one fed the documentation to Command and Control.
When the first two eggs had reached the attachment points, the other two moved up and began jockeying it into place. Before the clamps would fire, each external connection had to be grounded in the base of the clamp, which meant maneuvering the bulky package in three dimensions.
That took five minutes: when all were in place, Martinez said, “Engaging clamps.”
He pushed the “execute” button on the clamps app, and the clamps snapped shut.
“We’re engaged,” he said. “Everybody back off. Cassie, I’m going to bring you around closer to Sandy. I don’t want you out in front of this thing where I can’t see you.”
“All right.”
When everyone was in place, Martinez made a last check, and said, “Popping the clamshell.”
He hit the “execute” on the clamshell app, and the two halves of the package cover folded back, precisely as they’d been designed to.
The final phase of the deployment was the automatic part, and also the most nerve-racking. The parasol had been intricately folded into the clamshell, along with the memory-metal hoop that would support its edge. If it had been folded correctly, and if nothing went wrong, then the parasol should unfold like a flower blossom. If something did go wrong, then, because of the delicate nature of the film shield, it’d probably wind up looking like a box kite that somebody had worked over with a shotgun.
Martinez maneuvered his egg around the open clamshell, inspecting each connection point, a theoretically unnecessary operation, since the monitors showed everything proceeding as expected; but he took no chances.
When he was done with his inspection, he called Command: “Captain, we’re ready to deploy. On your command.”
Purely a courtesy. Fang-Castro: “You may proceed, Mr. Martinez.”
Martinez made one last check to make sure all the personnel were clear, and then said, “Deploying the shade. Three-two-one-fire.”
He pressed a button, the package unzipped, and the parasol unfolded exactly like a metallic flower, and for the first time ever, the Nixon was in the shade.
A minute inspection of the shade showed no tears; a tear could be fixed, but it would be a pain in the ass. No such pain would be experienced.
The second section was larger than the first, a huge rectangle of metallized Kapton to be stretched broadside to the ship on the side that would be facing the sun at closest approach. At four hundred meters in length, it was longer than the entire ship.
Temporary memory-metal support booms were attached to key mount points on the axle, booms, and mast of the Nixon and triggered to unroll. The unpacked parasol would be attached to a rectangular x-frame, whose double handful of sockets would mate with mounting points on the ends of those booms. The process wasn’t fundamentally different from the deployment of the front-end disk. The shell containing the shade was towed into place and attached to one of the support booms.
At Martinez’s command, the package began to blossom, just as the first one had, until nearly half a square kilometer of shiny plastic film and its x-frame floated in space next to the Nixon. The servicing jockeys maneuvered the ungainly oblong into position close enough to the other booms that the mounting teams could drag the couplings on the parasol frame and mounting booms together.
By mid-afternoon, the crew had finished with the attachments, and the Nixon was ready for its close encounter with Sol.
Saturn Run Page 21