Pull to refresh

Comments 63

ммдаа...:)
У меня Ubuntu 64битная:) Ну что могу сказать: быстрее, хоть и жрет на 20% больше памяти по понятным причинам + безопаснее, так как писать эксплойты значительно сложнее чем для 32 бит.
Тоже не так давно перешёл с 32 битной Ubuntu на 64, невооружённым глазом заметить разницу в производительности удалось только в опере, она шустрее странички стала рендерить… А в остальном, разницы не заметил. Думаю что сейчас, пока ещё больше 4 гигов оперативы — это редкость, большого смысла переходить на 64 — нету…
Да что ж такое! Второй комментарий упоминает безопасность, а объяснений ни в одном. Меж тем, я заинтриговался :-)
В эксплойтах используется нативный код, заточенный под конкретную платформу. 64 битные ОС пока менее распространены, соответсвенно эксплойтов меньше. К тому же, пока у хакеров меньше опыта поиска уязвимости в 64 битных программах, софта для этих задач меньше.
Все банально с эксплоитами:) Большинство из них работает через переполнение буффера «строки». А, как известно, строка в машинном представлении должна кончаться байтом 0x00. Теперь еще пару фактов и все станет понятно:
1) Большинство эксплоитов в теле обычно содержат указатель на функцию и т.д. и т.п. для «перескока».
2) Адреса в 64 битных системах на текущих объемах памяти в начале содержат два байта 0х00 0х00

Вот таким вот элегантным образом для большинства подходов к эксплоиту проблем обрубается хвост:) И для 64 битных систем приходится изрядно поизвращаться:)

Да и в 64 битных системах проще многие способы защит от эксплоитов использовать — например рандомизация адрессного пространства и т.п.
Действительно элегантно! Спасибо за доходчивое разъяснение :-)

Хорошее, универсальное такое решение этих извечных проблем с переполнениями.
Оно совершенно не универсально и, более того, не такое уж могучее (есть много способов обхода этой проблемы — например можно вычислять адрес с помощью арифметических операций), но поскольку народ ленив то долго ещё куча народу не будет этим озабачиваться…
1) Адресное пространство (32 битные системы видят только около 3,6 Гб оперативной памяти)
2) Кое где это всё таки даёт небольшой выигрыш, имхо нельзя это игнорировать. Тем более что в любом случае вы ничего не теряете (разве что язык интерфейса в 64 бит окнах пока английский)
Теряете часть оперативной памяти — в программах int становится не 4 байта, а 8.
Поэтому, например, если 4ГБ памяти в машине, то особого смысла переходить на 64 бит нет, т.к. доп. адресуемое пространство, ранее недоступное, будет сжираться более «толстыми» программами.
int как был так и остался 32 бита. Вот размер указателя а также long int — уже становится 64 бита. Также учтите что куча данных в памяти — хранятся как набор байт, которые тоже не изменились. Те же строки — обычно последовательности байт не привязанные к разрядности ОСи.
2-й пункт неверный. В современных процессорах 32х битные операции лучше оптимизированы, в 32х битном режиме работают больше оптимизирующих механизмов кеширования, предугадывания переходов и т.д.
Ну и полезная пропусканая способность шины а 32-м режиме выше.
Комменты порезались чет. Оригинал:

Адресное пространство у 32х битных систем = (2^32)/1073741824 = 4 ГБ
Адресное пространство у 64х битных систем = (2^64)/1073741824 = 17179869184 ГБ ( не хило :) )

>разве что язык интерфейса в 64 бит окнах пока английский
Вообще-то русская Vista х64 уже давно существует, я ее год назад поставил, работает, как часы :)
Лично я пользуюсь х64 уже давно, абсолютно все железо поднял без проблем. Реальный прирост производительности я заметил только при кодировании видео.

Как я понял, при сложных математических вычислениях отсутствует необходимость в разбиении длинных чисел на части. Система сможет оперировать ими в естественном виде. Следовательно, де математические вычисления над длинными числами присутствуют, там прирост вы и почувствуете.
Адресное пространство у 32х битных систем = (2^32)/1073741824 = 4 ГБ

Вообще-
Лично я пользуюсь х64 уже больше года, абсолютно все железо поднял без проблем. Реальный прирост производительности я заметил толькопри кодировании видео.
1. теоретически 4. Практически всё зависит от кол-ва устройств, подключённых к компьютеру. И если не ошибаюсь, *nix этим не болеют, только win.
2. а кто сказал, что анг интерфейс — это минус?)
=> Практически всё зависит от кол-ва устройств, подключённых к компьютеру. И если не ошибаюсь, *nix этим не болеют, только win.

Епт! Холивар. Не согласен (Вывод сделал из собственно опыта, а может у меня машина дивная ТАКАЯ :) ).

P.S. Кому ЖМЕТ MS можете минусовать, если Вам от этого станет легче.
ИМХО. Такое ощучение, что каждому идолопоклоннику *nix нужна доза в виде оставленного гЭ в адрес MS.
какой опыт? от кол-ва подключенных устройств реально зависит;)
а про то что *nix работает, я так понимаю имеют ввиду PAE, который есть там, и которого нет в винхп (в висте вроде есть, но не уверен, в серверных точно есть)
Интересные выводы вы делаете.
У меня и мыслей не было холиварить по теме win vs *nix (сам являюсь любителем первого).

Под x86 ОС максимальное адресное пространство составляет 4 гигабайта. Давным давно, когда
никто не думал, что обычные настольные компьютеры будут иметь столько памяти, решено было между устройствами, подключёнными к компьютеру делить это адресное пространство для ускорения доступа и работы с ними. Получается, что от 4гб адресного пространства — 200-500 мб (в среднем) сейчас выделяется под видеокарту, кусок под звук, сеть и другое (это можно в windows посмотреть через System Information в разделе Hardware Resources -> Memory, там указаны устройства и выделяемый для них диапазон адресного пространства).

Что касается *nix: знакомый ответил, что под ubuntu x86 он видит все 4 гб (он поменял ядро).
Под windows xp sp3 не удалось увидеть 4гб, даже с включенным PAE и всякими настройками запуска. Возможно это упирается в материнскую плату, но под рукой только 1 компьютер, попробовать больше не получается.

Поверьте, от вашего опыта никак не зависит, сколько памяти будет видеть ваша операционная система. Не серверные оси без PAE будут видеть меньше 4х гигабайт.
Покопался в гугле и своей машине, Вы правы (Теперь точно не буду доверять всему, что показывает ОС).
никто ничего не холиварил. А ты тут троллить начал. Он лишь сказал, что в никс системах кол-во памяти не ужирается количеством подключенных устройств
=> 1) Адресное пространство (32 битные системы видят только около 3,6 Гб оперативной памяти)

Вот все читаю, такого рода посты и никак не могу понять. Почему же у меня стоит 32 битная Vista и она видит все 4 гигабайта оперативной памяти. Интересно, люди пишут и утвержают основываясь на других таких же постах или они сами пробовали ставить 4 гигабайта ОП и таким образом выяснили сколько видит 32 битная ОС???…
UFO just landed and posted this here
видит и использует — разные вещи.
Действительно использует только ~3.6gb. Был не прав. Теперь буду знать.
про PAE че нить слышали? нет? удивляйтесь дальше ;)
ну наверное не все а 3,8 и это сильно зависит от железа которое в компьютер установлено
я себе домой ставил висту SP1 и у меня было видно всего лишь 3,8 макс (у меня ati radeon 2600XT + SB live PCIная) и никакие memory remap не помогли)
>она видит все 4 гигабайта
habrahabr.ru/blogs/i_am_clever/20179/
Цитата оттуда: «винда всего лишь стала показывать количество физически установленной памяти, используя по-прежнему 3 гига»
64 бита дают адресовать большее количество оперативной памяти.
И приложения, которые заточены под 64 бита работают быстрее.

А вот приложения заточенные под 32 бита будут одинаково работать хоть на 32х, хоть на 64х битной ОС.
Сама ось 64 битная работает чуть шустрее чет ее 32х битный аналог. но на одной ОС не проживешь, нужно чтобы и приложения были 64 битными. Тогда будет счастье )
Ну что за дебильное слово «заточены»? Вы заточены под мальчика или под девочку? Вы же посто являетесь мальчиком, верно? Вот и приложения просто 32-х битные.
Если приложение не может освоить 8-16GB памяти и ему не нужно работать с длинными числами, то его можно перекомпилировать под 64 бита — но толку от этого не будет никакого. Так что заточенность приложения под 32бит или под 64бит — это далеко не различие типа «мальчик/девочка».
Трудно представить себе офисные приложения, которым нужны 8-16Гб и длинные числа. Тем не менее прирост может быть и от простой перекомпиляции, ибо количество регистров в 64-х битах в 2 раза больше (если не ошибаюсь), и сами они больше в 2 раза. Хороший компилятор сможет грамотно ими распорядится. Кроме того, 32-х битные приложения в инородной среде будут работать медленнее, от этого замедления тоже спасает именно перекомпиляция под 64 бита.

То, о чем вы сказали имеет место быть и называет оптимизацией, а не «заточкой».
Трудно представить себе офисные приложения, которым нужны 8-16Гб и длинные числа. Тем не менее прирост может быть и от простой перекомпиляции, ибо количество регистров в 64-х битах в 2 раза больше (если не ошибаюсь), и сами они больше в 2 раза.

Прирост может быть, а может и не быть. Новые регистры помошают в сложной математике, зато если у вас много указателей — то проигрыш от этого дела они скомпенсировать не смогут (все JavaScript JIT'ы либо работают в 64-битном режиме медлннее, либо вообще не работают). Прирост же от размера может быть только в сложной математике (в основном в криптухе и, реже, в кодеках).
Кроме того, 32-х битные приложения в инородной среде будут работать медленнее, от этого замедления тоже спасает именно перекомпиляция под 64 бита.
Вот нифига подобного. Тем и отличается x86-64 от многих других 64-битных архитектур, что тут это замедление мизерно и часто перекрывается другими факторами.

То, о чем вы сказали имеет место быть и называет оптимизацией, а не «заточкой».
Оптимизация может что-то изменить в пограничных случаях. Но 181.mcf у вас будет в 32 битах быстрее, а 179.art — медленнее. Сколько ты их не оптимизируй. Задача такая.
Это всё проделки AMD'шного пиара
Точно, у меня еще Sempron 2600+ 64bit, тогда это был чисто маркетинговый ход.
Я не знаю, правду ли говорят, что 64битный процессор даже на 32х битной ОС может своими методами чуть-чуть вымутить какой-то выигрыш? По-моему выигрыш только для производителя — маркетинговый.
Сижу на x64 давно, вполне комфортно.
Но если памяти меньше 4gb — оно того не стоит.
А разнообразные драйверы будут корректно устанавливаться? Ну, например, для редкой вебкамеры или для какой-нибудь другой фигни?
Вот тут-то собака и порылась. Это вам не Linux и даже не MacOS, это Windows. Рапространённое железо поддреживается, а вот всякие редкости — фиг. Впрочем сейчас найти новую экзотику в продаже без поддержки драйверами 64бит — тяжело, а старые железяки не поддерживаются сплошь и рядом.
По делу уже написали — если у вас оперативки больше 3 гигов, увидит их только 64-битная ось. На обычных офисных задачах, субъективно, разницы не заметно.
Прикладной смысл разрядность оси приобретает, если вы балуетесь всякими тяжёленькими вещами, вроде 3д-моделирования, видеомонтажа…
В тоже время, Vista Business x64 на Q6600 + 4Ггб, стартует Outlook с 3Ггб почтовой базой заметно быстрее, чем x32 Home Premium на T7100 + 2ГГб. Но это субъективная точка зрения :)
в 64ках всё более хитроанально (защита приложения и безопасность начинают в софтинах работать), были проблемы с неподписанными дровами но сейчас без проблем дрова достаются/издаются, правда иногда может быть просест до2% в производительности (застал такое как-то)
с софтом вообще никаких проблем, всё что может носиться носится
все последнии 64 битные версии виндов русскоязычные, были/есть траблы только у OEM Windows XP 64-bit English
2% производительности? :D Линейкой меряли?
нет, на глаз, боком к зерколу вставал просто ;)
если процессор поддерживает 64 бита, то лучше использовать 64битную ОС… не знаю как виндовс, но линукс ядро в 32 бином варианте адреса быше 1 ГБ обрабатывает через «отображение» их на 1-й гигабайт памяти, тогда как 64битное ядро адресует напрямую, давая выигрыш в производительности, независимо от того, является приложение 32 или 64битным — памятью же ядро занимается целиком…
сколько опечаток :( спать пойду, спокойной ночи!
> но линукс ядро в 32 бином варианте адреса быше 1 ГБ обрабатывает через «отображение» их на 1-й гигабайт памяти

Фигню говорите. Линуксовое ядро легко адресует до 3Гб памяти напрямую. А вы, наверное, имеете в виду PAE. Расширение для адресации более 4Гб на 32битных системах. Там, да, память «отображается» на 4Гб окно.
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=«Microsoft Windows XP Professional EN» /noexecute=optin /fastdetect /usepmtimer /3GB /PAE

Это (с поправкой на вашу версию винды и диск, на который она установлена) надо прописать в boot.ini, чтобы винда сама себя загружала дальше 3-го гигабайта, а первые три отдавала приложениям. При загрузке — почти 100% памяти свободно (из 3 ГБ).
под 64 win-системы есть Patchguard и еще некоторые полезные механизмы, защищающие ядро системы, которых нет в 32-разрядных
Проблема 32 vs. 64 точно такая же, как в своё время была проблема 16 vs. 32:

От большей разрядности доступно больше памяти и некоторые алгоритмы шустрее работают…
Но под 32 бита выпущено уже слишком много железа и софта:
— разработчикам железа приходится иметь дело с обратной совместимостью…
— пользователи не спешат осваивать 64 бита — так как 32-х бит большинству хватает за глаза…

Ничё… через несколько лет 4-х гигабайт оперативы уже будет не хватать рядовому пользователю… время 64-х битных систем ещё придёт :)
На десктопе, а тем более на ноуте обычно не ставят больше 4G, так что 32 вполне достаточно
Другое дело сервер! Там только x86_64! :)
На серверы ставят и 32-битные оси, которые держат больше 4 гиг оперативы ) Да и на десктопе у меня 8 гиг DDR2 на данный момент стоит, так сказать про запас поставил, т.к. цена позволяла (900 рублей за 2 GB планку + из-за того, что потом идентичные планки будет найти проблематично).

А Windows 32-bit у большинства, в том числе и у меня, видит по максимуму 3,25 GB RAM.
Стоит Vista 64, проблем никаких нет. С Linux после выпуска нативного Flash Player 10 x64 тоже нет.

По сабжу — если больше 3 гиг оперативной памяти — однозначно 64 бита. Если меньше — то уже сердце подскажет, 32 или 64 xD Особой разницы не заметите. Лично я бы предпочел 32 бита (в случае, если меньше 3 гб оперативной памяти), ибо универсальнее.
Если есть возможность использовать 64 битную ОС, советую воспользоваться ею.
х64 и 4гига оперативы:
-хр — нет дров подходящих, поэтому не ставил
-виста 32 бита- чет она часто тупаки давала не хилые и загруз проца на 100% бывало с невозможностью пошевелить курсором, с времен форматирования дискет такого не припоминаю…
-виста 64, полет нормальный
-дебиан 32 бита, полет нормальный, памяти хавает чет в районе метров 150-200, после висты очаровывает :)
ах да, деба стока хавает с компизом виджетами, асей и еще какой-то хренью :)
Вспомнил старый анекдот:
— Папа, а покажи мне многозадачность windows 95;
— Подожди сынок, сейчас только дискету отформатирую.
UFO just landed and posted this here
Если вы занимаетесь 3d-рендерингом и из-за этого у вас гигов 8 оперативки, то шестидесятичётырёхбитность вам придётся по-нраву.
по моему все зависит от потребностей…
если вы планируете оперативки заметно больше 4 гигов, и пользоваться программами которые будут отжирать памяти больше 4 гигов, то вперед есть смысл в *64, если нет, то зачем? Прирост скорости, гм… где т были тесты, некоторые приложения дают прирост, некоторые не дают, но даже там где он есть, о приросте больше 10% даже не приходится говорить…
UFO just landed and posted this here
На 64-битной FreeBSD работа с файловой системой ZFS более стабильна.
Отсутствует нативный драйвер NVIDIA для видеокарты — как следствие, невозможно пользоваться widescreen-режимом Xorg на видеокартах от NVIDIA (придётся покупать AMD/ATI-карточку).
Кроме этого, порт WINE 1.1.12 только для 32-битного x86.
Sign up to leave a comment.

Articles