История изменений
Исправление u5er, (текущая версия) :
Не совсем. Насколько я знаю, это работает примерно следующим образом:
- машина может адресовать какое-то конкретное количество памяти, (возьмём абстрактные 100 гигов)
- допустим, оперативки установлено 30 гигов(для упрощения). Эта память замёт часть адресного пространства. Останется 70 гигов адресного пространтсва.
- Допустим, есть несколько сетевых устройств - видео, звук, сеть и т.д. и все они могут быть доступны через те оставшиеся 70 гигов адресного пространства.
Как-то так. Конкретные диапазоны ты можешь увидеть в файле iomem. Обрати внимание, что там есть строчки «System RAM» - это как раз диапазоны адресов, по которым расположена оперативная память.
Например, такая строчка «c0000000-dfffbfff : PCI Bus 0000:00» говорит о том, что есть устройство pci с таким-то идентификатором и оно использует такой-то диапазон адресов.
Причём, если ты посмотришь на диапазоны адресов System RAM и устройств, то увидишь, что они не пересекаются.
Обрати внимание на такой кусок
100000000-83fffffff : System RAM
81a000000-81affffff : Kernel code
81b000000-81bae6fff : Kernel rodata
81bc00000-81bf3baff : Kernel data
81c6b2000-81c9fffff : Kernel bss
Видишь? У меня по адресам «100000000-83fffffff» находится часть оперативки и вся она используется под различные части ядра - code(text?), rodata, data и bss.
Возможно, тебе стоит взять калькулятор и посчитать точное количество байт в диапазонах. Мне этим лень заниматься, если честно.
Исходная версия u5er, :
Не совсем. Насколько я знаю, это работает примерно следующим образом:
- машина может адресовать какое-то конкретное количество памяти, (возьмём абстрактные 100 гигов)
- допустим, оперативки установлено 30 гигов(для упрощения). Эта память замёт часть адресного пространства. Останется 70 гигов адресного пространтсва.
- Допустим, есть несколько сетевых устройств - виде, звук, сеть и т.д. и все они могут быть доступны через те оставшиеся 70 гигов адресного пространства.
Как-то так. Конкретные диапазоны ты можешь увидеть в файле iomem. Обрати внимание, что там есть строчки «System RAM» - это как раз диапазоны адресов, по которым расположена оперативная память.
Например, такая строчка «c0000000-dfffbfff : PCI Bus 0000:00» говорит о том, что есть устройство pci с таким-то идентификатором и оно использует такой-то диапазон адресов.
Причём, если ты посмотришь на диапазоны адресов System RAM и устройств, то увидишь, что они не пересекаются.
Обрати внимание на такой кусок
100000000-83fffffff : System RAM
81a000000-81affffff : Kernel code
81b000000-81bae6fff : Kernel rodata
81bc00000-81bf3baff : Kernel data
81c6b2000-81c9fffff : Kernel bss
Видишь? У меня по адресам «100000000-83fffffff» находится часть оперативки и вся она используется под различные части ядра - code(text?), rodata, data и bss.
Возможно, тебе стоит взять калькулятор и посчитать точное количество байт в диапазонах. Мне этим лень заниматься, если честно.