LINUX.ORG.RU
ФорумTalks

[ЖЖ][Citrix]Передасты

 ,


0

0

Собственно - Cirtrix редкостные м..ки, и жаль Xen, который попал к ним в руки :-( Нет, &^ть, ну это же надо - сделать доступ к своему Presentation Server только через плагин, а плагин под линукс (ну кто бы сомневался!) 32-битный. Такого редкостного г..на я давно не видел. Хотя... Тем же самым отличалась Sun со своим java plugin, а чем кончила Sun все знают. Вот бы цитриксы также сдохли побыстрей.

★★★★★
Ответ на: комментарий от morbo

>И что это доказывает?

Ты говорил, что в x86_64 тоже часть 4-го гигабайта расходуется на адреса ввода-вывода. Я тебе показал, что это не так.

Black_Shadow ★★★★★
()
Ответ на: комментарий от Black_Shadow

>Ты говорил, что в x86_64 тоже часть 4-го гигабайта расходуется на адреса ввода-вывода. Я тебе показал, что это не так.

Заглядываю в man free и вижу там:

free displays the total amount of free and used physical and swap mem‐ory in the system, as well as the buffers used by the kernel. The shared memory column should be ignored; it is obsolete.


The shared memory column should be ignored; it is obsolete.

morbo
()
Ответ на: комментарий от morbo

А следуя собственной логике я рассуждаю так:

Если есть устройство, использующее прямой доступ к памяти, то оно резервирует за собой область памяти, которая адресуется физическими адресами. Это означает, что память, которую устройства будут использовать для DMA, будет более недоступна никому для каких-то иных целей, нежели обмен информацией с этим устройством.

То, каким образом ядро отобразит эту область физических адресов в GDT или LDT, никак не будет влиять на свободность этой памяти для системы - эта область выделена для обмена информацией с устройством и более ни для чего.

Поэтому изменение способа виртуальной адресации никак не сделает доступной эту зарезервированную память.

Или я не правильно мыслю и что-то упустил?

morbo
()
Ответ на: комментарий от morbo

Каша в голове у тебя.

Все виртуальное адресное пространство делится на половины (отличается старшим битом в виртуальном адресе). Та, что со старшим битом 0 — userspace и та, что со старшим битом 1 — kernel space. Так делается во всех ОС, за исключения линукса со специальными патчами, которые путем создания буфера (как это делалось во времена emm386) позволяет использовать все 4Гб пользовательским процессом. Часть ядерного простраства адресов зарезервирована адресами ввода-вывода устройств, именно поэтому «потери» памяти в 32 разрядных системах начинаются либо с 3, либо с 4 Гб оперативной памяти (в зависимости от того, какое разбиение используется 2:2, как по-умолчанию в винде (можно сделать 3:1) или 3:1 как по-умолчанию в линуксе), поскольку адреса устройств находятся в диапазоне памяти ядра.

Очевидно, что в 64-битных системах пространство ядра начинается с чисел, у которых 48-й бит (адресная шина большинства 64-разрядных процессоров 48-битная) ненулевой, посему адреса устройств оказываются где-то а далёких эксабайтах.

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

Еще раз: не вижу ни одной причины не пользоваться 64-битными системами при объемах памяти 3Gb+, за исключением бинарных блобов от известных производителей этих бинарных блобов. Но мне на них, пардон, насрать.

annoynimous ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.