• MimicJar@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    7 days ago

    This reminds me of a short story/presentation by computer scientist Ken Thompson titled, “Reflections on Trusting Trust”.

    It’s worth reading but basically we use software to create software. We trust that the software we use to create software can be trusted. We have the source code, but that’s just words on paper, it doesn’t do anything. We have to use software to turn that code into software.

    To light a campfire take a burning stick and apply it to the pile of tinder and dry wood. Where do you get a burning stick? Place one in a campfire.

    • azimir@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      7 days ago

      I like to talk about this in my CS classes. We get compiles to compile code by compiling a compiler with a compiler. It’s an infinite regression problem that terminates with someone writing a compiler in assembly… Which requires an assembler to assemble… So you write an assembler in machine code directly on the processor.

      If we lost all of the currently compiled programs one day, even with the compiler source code in hand, it would be some serious work to rebuild our current tool chains.