Live data from Hacker News

Reverse Engineer’s Perspective on the Boeing 787 ‘51 days’ Directive

ioactive.com

21–30 of 58 posts

Re: Reverse Engineer’s Perspective on the Boeing 787 ‘51 days’ Directive

#21
post #8

Earlier quoted context omitted.

51 days seems to be approximately how often my mac dies in kernel panic or starting to be bugged by persistent software problems that go away with a restart.

I’m at 356 days of uptime on my MacBook Pro. ¯\_(ツ)_/¯

But you typed this message 7 days ago.

Re: Reverse Engineer’s Perspective on the Boeing 787 ‘51 days’ Directive

#22
post #2

tl;dr: 51 days is the wraparound point of a signed 6-byte counter running at 33 MHz, used to invalidate stale data from instruments.

When I saw 51 days my first thought is it had to be a time rollover. Mainly because of this bug from long ago and how close the time spans are.

https://www.cnet.com/culture/windows-may-crash-after-49-7-da...

Re: Reverse Engineer’s Perspective on the Boeing 787 ‘51 days’ Directive

#23
post #2

tl;dr: 51 days is the wraparound point of a signed 6-byte counter running at 33 MHz, used to invalidate stale data from instruments.

All I have to say is if my firmware barf's after being up for 8.919 million years I won't care.

Re: Reverse Engineer’s Perspective on the Boeing 787 ‘51 days’ Directive

#24
post #16
post #10

Earlier quoted context omitted.

To address the second part: > and yet the plane appears to have no mechanical backup instruments[?] This is unlikely in a modern aircraft because mechanical instruments to back up e.g., the artificial horizon / attitude indicator or directional gyro (DG) / heading indicator are: 1) Mechanically complex - the attitude indicator and DG make use of gyroscopes which rotate at up to 24,000 RPM along with other mechanisms.…

I think backups for the electronic systems would not need the same level of redundancy as the primary systems (which presumably already have backups). It's sort of like how you don't need RAID for your offsite backup disks, just some parity for bit-rot. The mechanical instruments would be the (additional) redundancy. The additional weight/lines/service is indeed burdensome even without redundant mechanical systems.

> I think backups for the electronic systems would not need the same level of redundancy as the primary systems (which presumably already have backups).

If your backup is failing more often than your primary system then it's not much use as a backup.

Also, there ARE backups. There's fallback artificial horizon boxes that work independently of the rest of the system, for example.

Re: Reverse Engineer’s Perspective on the Boeing 787 ‘51 days’ Directive

#25
post #10

For example, let’s imagine that the timestamp set by the transmitting ES is close to its wrap-around value. After performing the required calculation, the receiving ES obtains a timestamp that has already wrapped-around, so it would look like the message had been received before it was actually sent. Isn't it surprising that modulo arithmetic, as already employed successfully in TCP sequence numbers and the like, sti…

To address the second part: > and yet the plane appears to have no mechanical backup instruments[?] This is unlikely in a modern aircraft because mechanical instruments to back up e.g., the artificial horizon / attitude indicator or directional gyro (DG) / heading indicator are: 1) Mechanically complex - the attitude indicator and DG make use of gyroscopes which rotate at up to 24,000 RPM along with other mechanisms.…

I think you are overstating the impracticality of mechanical standby instruments. Even glass cockpit GA aircraft typically came with fully mechanical backups until fairly recently---check out this SR22 cockpit as an example: https://commons.wikimedia.org/wiki/File:SR22TN_Perspective_C...

"Glass" standby instruments come with significant upside and not much downside, which is why they've been preferred in larger/more expensive aircraft for a while. There is nothing inherently more or less reliable about them, being fully isolated and redundant just as old-timey mechanical backups are, and they offer a much richer presentation (typically like a small PFD). However, new things are usually more expensive, which IIUC is why they were adopted first in larger, more expensive aircraft. They were considered a luxury in GA until fairly recently.

Re: Reverse Engineer’s Perspective on the Boeing 787 ‘51 days’ Directive

#26

Earlier quoted context omitted.

I’m at 356 days of uptime on my MacBook Pro. ¯\_(ツ)_/¯

So you never install security updates? Because all Apple updates require a reboot due to their SIP "update the frozen image offline" nonsense.

IIRC security updates always required a reboot even before SIP existed

Re: Reverse Engineer’s Perspective on the Boeing 787 ‘51 days’ Directive

#28
post #8

Earlier quoted context omitted.

51 days seems to be approximately how often my mac dies in kernel panic or starting to be bugged by persistent software problems that go away with a restart.

I’m at 356 days of uptime on my MacBook Pro. ¯\_(ツ)_/¯

Last week I had to shut down my linux box for a move: up 3457 days. One day too late I guess :-)

Re: Reverse Engineer’s Perspective on the Boeing 787 ‘51 days’ Directive

#29
One thing to consider when looking at such things is that commercial avionics software systems are full of known limitations. I do not know if this particular 51-day limitation was intentional or not, but in general:

Avionics software starts with writing comprehensive requirements. When the software itself is developed based on those requirements, it is then tested against the requirements, always in a real functioning airplane, but also often in smaller airplane-cockpit-like rigs and in purely simulated environments.

Nobody is going to write a requirement that says "this avionics subsystem will function without error forever". Even if you thought you could make it happen, you can't test it. So there are going to be boundaries. You might say that the subsystem will function for X days. What happens after that? It may well run just fine for X+1 days, or 2X days, or 100X days. But it's only required to run for X days, and it's only tested and certified for running for X days.

I could easily imagine that this particular subsystem was required and certified for some value of X But even if the intended X wasn't 51 days, there almost certainly was some intended, finite value for X. We might say, "well, my laptop has run for three years without needing a reboot". Great! Is that a guaranteed, repeatable state of operation that the FAA would certify? Probably not. And besides that, do we really want to have to endure a three-year verification test?

In most software, we are happy to say, "it should run indefinitely". For avionics software, that's insufficient. We instead say "it will run at least for some specific predetermined finite amount of time" and then back up that statement with certifiable evidence.

Re: Reverse Engineer’s Perspective on the Boeing 787 ‘51 days’ Directive

#30
post #2

tl;dr: 51 days is the wraparound point of a signed 6-byte counter running at 33 MHz, used to invalidate stale data from instruments.

I feel like even 51 minutes might be too long to wait before invalidating stale instrument data on an aeroplane...
Post reply on HN