01.01.2022 0:28, sp...@itl.ua пишет:
> 31 декабря 2021 г., 18:49, "Eugene Grosbein" <eu...@grosbein.net> написал:
> 
>> 31.12.2021 23:00, sp...@itl.ua пишет:
>>
>>> 31 декабря 2021 г., 17:53, "Anton Saietskii" <vsasja...@gmail.com
>>> <vsasja...@gmail.com?to=%22Anton%20Saietskii%22%20<vsasja...@gmail.com>>> 
>>> написал:
>>>
>>> *без сарказма* Я вот не помню -- а кто-то обещал, что там будет видна вся 
>>> память?
>>>
>>> Мне - нет :)
>>> Но на другом ноутбуке в этом месте показывается около 2G (столько и есть)
>>>
>>> А что тогда значит это второе число? (631kB/523264kB)
>>
>> Когда загрузчик определяет, сколько памяти ему можно использовать
>> под свою работу (в частности, для malloc), он использует сервис BIOS для 
>> этого:
>>
>> https://wiki.osdev.org/Detecting_Memory_(x86)#Detecting_Upper_Memory
>>
>> Так как BIOS резервирует часть адресного пространства для различных 
>> устройств,
>> то оставшаяся доступная память может быть разбита на "сегменты" разного 
>> размера.
>>
>> Для упрощения кода загрузчик ищет непрерывный сегмент подходящего размера.
>> Обычно это сегмент, который начинается со второго мегабайта, то есть с начала
>> Extended memory в терминах MS-DOS.
>>
>> Второе число это размер найденного сегмента, в котором будет располагатся,
>> в частности, "куча" загрузчика (heap/malloc).
> 
> Агаааа, вот оно что.
> А в dmesg.boot сообщения между real memory и available memory - это этот же 
> список
> доступных сегментов?

В основе наверняка да, но в dmesg.boot идут сообщения от ядра, а не загрузчика
и теоретически возможны некоторые расхождения, потому что BIOS может показывать
сегменты разных типов, не только доступных для использования непосредственно,
так что загрузчик/ядро могут не одинаково к ним относиться.

> Интересно, почему мой биос подробил память аж на 6 кусков (в вашем примере 
> всего 3).

Потому что железо другое.

_______________________________________________
freebsd mailing list
freebsd@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd

Ответить