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?)
User contributions licensed under CC BY-SA 3.0