значение «brd» в выводе IP-команд

Если это первый, то чем это означает, что обычная пользовательская программа не может иметь более 3 ГБ памяти (если разделение составляет 3 ГБ + 1 ГБ)?

Да, это так в обычной системе Linux. В какой-то момент существовал набор патчей "4G / 4G", которые делали адресные пространства пользователя и ядра полностью независимыми (за счет снижения производительности, поскольку это затрудняло доступ ядра к памяти пользователя), но я не думаю они когда-либо были объединены в восходящий поток, и интерес уменьшился с появлением x86-64

Кроме того, в этом случае, как ядро ​​может использовать High Memory, потому что на какой адрес виртуальной памяти будут отображаться страницы из верхней памяти, как 1 ГБ ядра пространство будет логически отображено?

Linux работал (и до сих пор работает в системах, где память мала по сравнению с адресным пространством) заключался в том, что вся физическая память постоянно отображалась в ядро ​​части адресного пространства . Это позволило ядру получить доступ ко всей физической памяти без переназначения, но очевидно, что оно не масштабируется до 32-разрядных машин с большим количеством физической памяти.

Так родилась концепция низкой и высокой памяти. "низкая" память постоянно отображается в адресное пространство ядра. "высокой" памяти нет.

Когда процессор выполняет системный вызов, он работает в режиме ядра, но все еще в контексте текущего процесса. Таким образом, он может напрямую обращаться как к адресному пространству ядра, так и к пользовательскому адресному пространству текущего процесса (при условии, что вы не используете вышеупомянутые патчи 4G / 4G). Это означает, что «верхняя» память может быть выделена процессу пользователя без проблем.

Использование «верхней» памяти для целей ядра представляет большую проблему. Чтобы получить доступ к верхней памяти, которая не отображена в текущий процесс, она должна быть временно отображена в адресное пространство ядра. Это означает дополнительный код и снижение производительности.

2
18.02.2019, 22:00
1 ответ

brd— это сокращение от broadcast.

147.202.85.255— это широковещательный адрес для любого интерфейса, которому принадлежит эта линия.

14
27.01.2020, 21:58

Теги

Похожие вопросы