I don't know about Philae/Rosetta's hardware in particular, but there are very specific requirements to hardware that's sent into space.
I'm using the Mars Science Laboratory as an example here:
The MSL uses twin PowerPC RAD750 boards. If one of them fails, the rover could use the other as a backup. After all, you can't go out to Mars to fix a firmware update gone wrong. :)
The RAD750's are hardened against radiation in space, and can withstand extreme temperatures. They run at about 200Mhz, and cost around $200.000 a piece. [1] [2]
It runs the realtime operating system VxWorks, which also happens to be what Apple uses for their Airport routers. :) [3]
NASA uses C as their main language, with specific coding standards. [4]
If one of them fails, the rover could use the other as a backup
Any idea how that works practically? I mean, there are two boards and one set of peripherals. Is there like an external controller which constantly checks if board A is doing fine, and if not, somehow reroutes all peripheral communication to board B?
Presumably there's some basic functions in the radio stack they use where they can trigger operations like shutdown, startup, reboot, switch boards etc.
NASA normally has pretty low-level stuff. To the point of being able to do full firmware updates — though obviously that's something they don't want to risk ordinarily.
Any idea how that works practically? I mean, there are two boards and one set of peripherals. Is there like an external controller which constantly checks if board A is doing fine, and if not, somehow reroutes all peripheral communication to board B?