LINUX.ORG.RU

История изменений

Исправление 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.

Возможно, тебе стоит взять калькулятор и посчитать точное количество байт в диапазонах. Мне этим лень заниматься, если честно.