64-бит или 32-бит ?

Обмен опытом по установке Линукс на разные аппаратные конфигурации

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

64-бит или 32-бит ?

Непрочитанное сообщение Olej » 11 апр 2012, 11:03

Тут меня обругали на одном из пыанэрских форумов по Linux (http://www.cyberforum.ru/linux/thread543980.html), что я высказался в таком примерно духе:
На сегодня, реально, для рабочих станций (не крупных серверов) x86_64 вам не даёт никаких преимуществ по сравнению с i586 ... кроме напрасной траты памяти (вместо 4 байт адресов во всех программах будут торчать 8 байт ... а адресных полей ой как много).
64 бит - это, на сегодня, главным образом, - коммерческое кидалово, ... "опиум для народа".
- пыанэры они завсегда приветствуют общеустоявшиеся мнения, стереотипы...
А мне всегда интересно эти мнения подвергнуть сомнению, и публику раззадорить ;-)

Но вопрос то интереснее просто пустого спора:
- в чём и где преимущества 64-бит архитектуры перед 32-бит...
- или наоборот - не преимущества...
- и какой 64-бит архитектуры: AMD64 & IA-64 - это далеко не одно и то же...
- и как вообще сравнивать 64 и 32???
- и для Linux системы, в частности...
- и не для Linux систем, а других.

Вопросов - множество.

Приветствуются не только мнения, но и ссылки.

alkaram37

Re: 64-бит или 32-бит ?

Непрочитанное сообщение alkaram37 » 21 апр 2012, 19:22

а если озу 4 г то 32-битная система видит не более 3г

dmitriev
Писатель
Сообщения: 461
Зарегистрирован: 12 янв 2009, 19:36
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение dmitriev » 22 апр 2012, 19:22

Тогда нужно поставить ядро PAE, например vmlinuz-3.3.2-1.fc16.i686.PAE

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Olej » 22 апр 2012, 23:14

alkaram37 писал(а):а если озу 4 г то 32-битная система видит не более 3г
как уже здесь сказали, это ограничение написано не совсем точно, давайте разбираться точнее:

- во-первых, 3Gb (из 4-х) - это для пространства пользователя, логические адреса выше 0xc0000000 - это адреса ядра (1Gb) + ядро может прихватывать ещё дополнительные объёмы так называемой "верхней памяти"...

- но и это не главное ... x86 процессоры, как уже сказали, начиная даже с каких-то достаточно древних PII или PIII (не помню), имеют режим управления страницами памяти размером не 4Mb, а 64Mb (PAE)...

- при этом общий объём управляемой ОС памяти составляет 64Gb ... но при условии, что адресное пространство отдельного процесса не превышает 4Gb, а с учётом разделения в Linux логических адресов ядра-пользователя - 3Gb.

Назовите на сегодня - много ли приложений и областей их применения вы назовёте, которым нужно >3Gb на 1 процесс?

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Ali » 23 апр 2012, 23:21

alkaram37 писал(а):а если озу 4 г то 32-битная система видит не более 3г
Причина в том, что адреса памяти устройств PCI/PCI-E отображаются под верхний предел доступной к адресации памяти, т.е. 4GB. Часть адресов этих устройств не может быть перемещена в виртуальной памяти . Таким образом часть физической памяти(на планке) не может быть адресована из-за конфликта. Другими словами: на плате как-бы есть ещё планка памяти где-то в половину гигабайта, подключаемая обязательно, но в BIOS/программах её не видно. Больше 4GB увидеть нельзя, 0,5 GB не видно, итого 3.5GB.

Использовать PAE или x86_64 есть большой вопрос. Ответ на который зависит от существования драйверов и наличия/качества реализации для PAE и x86_64 наиболее критичных в вашей работе приложений.

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Ali » 23 апр 2012, 23:59

Назовите на сегодня - много ли приложений и областей их применения вы назовёте, которым нужно >3Gb на 1 процесс?[/quote]
tmpfs и оно того стоит. :-)
Olej писал(а):
alkaram37 писал(а):
- но и это не главное ... x86 процессоры, как уже сказали, начиная даже с каких-то достаточно древних PII или PIII (не помню), имеют режим управления страницами памяти размером не 4Mb, а 64Mb (PAE)...
PAE с pentium pro.
Но, вынужден уточнить:
PAE - это способ трансляции страниц, которые могут быть 4KB и 2 MB.
PSE - это способ использовать большие станицы 4MB без PAE и 2MB с PAE.
PSE-36 позволяет организовать отображение 4 Мб страниц на 36-битное физическое адресное пространство.
3.3
PHYSICAL ADDRESS SPACE
In protected mode, the IA-32 architecture provides a normal physical address space
of 4 GBytes (232 bytes). This is the address space that the processor can address on
its address bus. This address space is flat (unsegmented), with addresses ranging
continuously from 0 to FFFFFFFFH. This physical address space can be mapped to
read-write memory, read-only memory, and memory mapped I/O. The memory
mapping facilities described in this chapter can be used to divide this physical
memory up into segments and/or pages.
Starting with the Pentium Pro processor, the IA-32 architecture also supports an
extension of the physical address space to 236 bytes (64 GBytes); with a maximum
physical address of FFFFFFFFFH. This extension is invoked in either of two ways:
• Using the physical address extension (PAE) flag, located in bit 5 of control
register CR4.
• Using the 36-bit page size extension (PSE-36) feature (introduced in the Pentium
III processors).
Physical address support has since been extended beyond 36 bits. See Chapter 4,
“Paging” for more information about 36-bit physical addressing.
Vol. 3A 3-7

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Olej » 24 апр 2012, 13:49

Ali писал(а):
Olej писал(а):Назовите на сегодня - много ли приложений и областей их применения вы назовёте, которым нужно >3Gb на 1 процесс?
tmpfs и оно того стоит. :-)
Да!
Пример очень точный, в 10-ку.
Но и он же - единственный, пожалуй.

Но:
а). часто ли нужно tmpfs >3Gb (мы говорим о рабочих станциях, не серверах массового обслуживания, там безусловно 64 бит - это оговорено с самого начала)?
б). да, сборка нового ядра Linux в tmpfs идёт на порядок быстрее (viewtopic.php?f=18&t=1499&start=10#p2143), но и там объёма tmpfs =2Gb хватает за глаза...
в). но самое главное - в большинстве случаев (если не хватает) можно организовать несколько RAM-дисков каждый из которых укладывается в 3Gb - к этому вопросу я ещё обязательно вернусь!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Olej » 24 апр 2012, 13:58

Ali писал(а): PAE с pentium pro.
Но, вынужден уточнить:
PAE - это способ трансляции страниц, которые могут быть 4KB и 2 MB.
PSE - это способ использовать большие станицы 4MB без PAE и 2MB с PAE.
PSE-36 позволяет организовать отображение 4 Мб страниц на 36-битное физическое адресное пространство.
Starting with the Pentium Pro processor, the IA-32 architecture also supports an
extension of the physical address space to 236 bytes (64 GBytes); with a maximum
physical address of FFFFFFFFFH. This extension is invoked in either of two ways:
• Using the physical address extension (PAE) flag, located in bit 5 of control
register CR4.
• Using the 36-bit page size extension (PSE-36) feature (introduced in the Pentium
III processors).
Physical address support has since been extended beyond 36 bits. See Chapter 4,
“Paging” for more information about 36-bit physical addressing.
Vol. 3A 3-7
Всё правильно: здесь я ошибся!
И вы, Ali, делаете замечательно нужные уточнения.
Но уточните (разъясните) ещё вот что:

- режим PAE определяется конфигурацией при сборке ядра (я найду позже какими параметрами), режим PSE-36 (PSE) я не видел, чтобы использовался в ядре... Или?

- мы пока говорим про IA-32 архитектуру.
Но 64-бит ядро (+ пакетное наполнение - суффикс x86_64) может жить на 2-х разных архитектурах:
а). более ранней AMD-64;
б). Intel IA-64
Различия - радикальные, во всём: в наборе великого множества спец-регистров, в их мнемонике (gasm), даже в мнемонике основных процессорных регистров...
В чём выражается отличие по поведению? по возможностям (адресации)? производительности?

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Ali » 01 май 2012, 19:08

Olej писал(а):...
Но уточните (разъясните) ещё вот что:

- режим PAE определяется конфигурацией при сборке ядра (я найду позже какими параметрами), режим PSE-36 (PSE) я не видел, чтобы использовался в ядре... Или?

Код: Выделить всё

CONFIG_X86_PAE=y
PSE36 linux не использует.
Olej писал(а):...
- мы пока говорим про IA-32 архитектуру.
Но 64-бит ядро (+ пакетное наполнение - суффикс x86_64) может жить на 2-х разных архитектурах:
а). более ранней AMD-64;
б). Intel IA-64
Различия - радикальные, во всём: в наборе великого множества спец-регистров, в их мнемонике (gasm), даже в мнемонике основных процессорных регистров...
В чём выражается отличие по поведению? по возможностям (адресации)? производительности?
Архитектура лицензированная Интелом у АМД называектся официально Intel® 64 .
Ранее использовались наименования I32e/EM64T и др. ИМХО I32e название самое удачное.
Различия есть, но они не очень существенны. Несущественны в том смысле, что проявляться будут на очень специфичных низкоуровневых задачах. То о чём я знаю про интел: собственные команды виртуализации, сегментация работает чуть по другому(проверяются поля cra в дескрипторах сегментов кода), syscall/sysret (работает только в longmode и режиме совместимости ?, в защищенном режиме -- нет), собственная терминология и нет 3dnow ;-) .



PS
Intel IA-64 теперь следует называть Intel® Itanium® Processor
Кстати, он то в некотором роде 86-совместимый
Intel® Itanium® Processor Family Reference Guide: IA-32 Execution Layer
All Intel® Itanium® 2-based systems support IA-32 software applications to provide greater flexibility in migrating to Itanium® architecture. Intel now offers a technology called IA-32 Execution Layer (EL) which enhances support for IA-32 applications

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: 64-бит или 32-бит ?

Непрочитанное сообщение Olej » 01 май 2012, 21:59

Ali писал(а):
Olej писал(а):...
Но уточните (разъясните) ещё вот что:

- режим PAE определяется конфигурацией при сборке ядра (я найду позже какими параметрами), режим PSE-36 (PSE) я не видел, чтобы использовался в ядре... Или?

Код: Выделить всё

CONFIG_X86_PAE=y
PSE36 linux не использует.
С этим вопросом разобрались, и этот (хотя бы) вопрос закрыли.

Ответить

Вернуться в «Железо для Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей