7 ms·
Does this have any implications for trusting trust?
by zachrose 7y ago
Does this have any implications for trusting trust?
- sansnomme 7y agoIt just means that your compiler is theoretically safe if you build a assembler manually and verify it. This can be done by printing the assembly of the assembler (an assembler is just a glorified find and replace if you leave out optimizations) and then translate it into machine zeros and ones by hand (See Intel Reference Manual for more details on the translation table). To speed this up, distribute the typing input, use e.g. Mechanical Turk, minimum wage clerks etc. and compare the result from multiple sources to ensure accuracy. Once your confident that your machine code translation is an accurate representation of your assembler, run the assembler on Stage0 and the bootstrap process should take care of itself.
- Gaelan 7y agoHow do you get those zeroes and ones into a machine-readable format, without a trusted text editor or OS?
- nitrogen 7y agoHistorically, switches on the front of the machine.
- kragen 7y agoIf you're willing to trust your hardware, you can theoretically program an SPI Flash chip one bit at a time using two debounced switches. I haven't tried running SPI at sub-kilohertz speeds, much less sub-hertz speeds, and it wouldn't be surprising if that failed to work on some hardware. But you can probably find hardware where it will work. A punched paper tape reader or barcode reader would be a more practical way of programming the Flash than manual toggle switches. If you have a machine that can boot from floppy, you can use an untrusted system to write the floppy, and then verify the contents of the floppy with a magnetic force microscope or magnetic developer fluid, before booting it. It isn't obvious why you would trust the hardware, though, if you didn't fabricate it.
- deleted 7y ago[deleted]
- cestith 7y agoYes, but only when considering above the level of a hidden machine monitor built into your processor. It could have huge implications for the compiler, libraries, and OS - even firmware. But you're still running on hardware.