title: Does the BIOS copy the 512-byte bootloader to 0x7c00
body: <p>I am amidst writing a kernel; before writing such a complicated thing, I thought it'd, not only, be helpful but also imperitive to do some theoretical reading of kernels, bootloaders, registers, BIOS, etc.</p>
  
  <p><a href="http://lennartb.home.xs4all.nl/bootloaders/node3.html" rel="noreferrer" title="This article">This article</a> says (and I quote): </p>
  
  <pre><code>The boot sector loader. 
  This loads the first 512-byte sector from the boot disk into RAM and jumps to it.
  </code></pre>
  
  <p>Then it goes on to say:</p>
  
  <pre><code>The first sector of a diskette can be loaded at address 0000:7C00. 
  </code></pre>
  
  <p>So, the boot-sector loader loads the 512 bytes of the data of a diskette which resides at the memory address 0x7C00 (if I am right) into the RAM; now, my questions are:</p>
  
  <ul>
  <li>Since the machine is booting up, the RAM <strong>has</strong> to be empty, so the bootloader it loaded at 0x0000 of the RAM?</li>
  <li>(Not really related to this context) Is there any way of getting a source code explanation for the GRUB Legacy (v .9x) bootloader?</li>
  <li>Lastly, any articles/books I should read to get myself familiar with Kernels, etc?</li>
  </ul>
  
  <p>I have 6 years of programming experience, but they are all with high-level languages on systems which is made possible by a kernel. </p>
  
  <p>Any help is appreciated. Thanks! :)</p>