1

I have read this in MIT6.828:

The loader loads the xv6 kernel into memory at physical address 0x80000000. The reason it places the kernel at 0x80000000 rather than 0x0 is because the address range 0x0:0x80000000 contains I/O devices.

But How do I/O devices takes up these addresses?For example,what range will one single device takes up?(Say 0x0:0x00000040 is used for one device because on 64-bit machine one device takes up one byte?)

Shengxin Huang
  • 647
  • 1
  • 11
  • 25
  • It could vary widely. A serial port might need just a couple of bytes for UART registers. A video card might need many gigabytes to map all its VRAM. – Nate Eldredge Apr 26 '21 at 00:50

0 Answers0