title: What do C and Assembler actually compile to?
body: <p>So I found out that C(++) programs actually don't compile to plain "binary" (I may have gotten some things wrong here, in that case I'm sorry :D) but to a range of things (symbol table, os-related stuff,...) but...</p>
  
  <ul>
  <li><p>Does assembler "compile" to pure binary? That means no extra stuff besides resources like predefined strings, etc.</p></li>
  <li><p>If C compiles to something else than plain binary, how can that small assembler bootloader just copy the instructions from the HDD to memory and execute them? I mean if the OS kernel, which is probably written in C, compiles to something different than plain binary - how does the bootloader handle it?</p></li>
  </ul>
  
  <p>edit: I know that assembler doesn't "compile" because it only has your machine's instruction set - I didn't find a good word for what assembler "assembles" to. If you have one, leave it here as comment and I'll change it.</p>