Будет Raspbian переход на 64-битную?

В этом разделе, официальный RPi3 Штаты объявление:

вы будете нуждаться в последних нубов или образ Raspbian с нашей страницы загрузок. На старте, мы используем тот же 32-битный Raspbian системы, которые мы используем на других устройств Raspberry Pi в; течение следующих нескольких месяцев мы будем исследовать, есть ли значение переходить на 64-разрядном режиме.

Мой вопрос, учитывая, что процессор 64 бит, это'т это очевидно, что запуск операционной системы в 64 бита будет лучше во всех отношениях? Что я упускаю?

Комментарии к вопросу (6)
Решение

учитывая, что процессор 64 бит, это'т очевидно, что для запуска операционной системы в 64 бита будет лучше во всех отношениях?

На самом деле нет, это's не. В некотором роде, под управлением 64-битной операционной системы может ухудшить малина Pi'ы производительности.

Преимущества 64 бит:

Два основных преимущества использования 64-разрядной операционной системы процессор/является то, что устройство может работать с более чем 4 ГБ оперативной памяти, и изначально обрабатывать числа больше чем 2^32` без необходимости для библиотеки bignum.

Малина Pi не'т иметь больше, чем 4 ГБ оперативной памяти. На 1 ГБ ОЗУ, вы'вэ полностью проиграли первый из двух основных преимуществ. Что касается второго преимущества, какой процент людей на самом деле использовать достаточно гигантские цифры, которые имеет смысл для фонда, чтобы поддержать всю вторую операционную систему? Как, ИРЦ может использовать огромное количество методов с помощью программного обеспечения, но, похоже, если вы'Снова буду постоянно в этой сфере, вы должны быть в любом случае, используя лучшее оборудование.

Проблемы с 64 разрядной:

Возможность хранить большее количество Это'т предоставляется по волшебству. Вернее, размера объектов памяти должен быть увеличен. В C (и C++) это означает изменение типа int до int64_t. Это вовсе'т сделано автоматически, отсюда и комментарии про фонд не желая поддерживать две ветки.

Кроме того, многие приложения просто не'т предоставить пособие (для большинства пользователей) при запуске в 64-битном режиме. Обратите внимание, что большинство веб-браузеров, МС офис, и целый ряд других популярных программное обеспечение все еще поставляется и поддерживается в 32-битном режиме. Что вы можете получить ваши руки на 64 разрядной версии MS офиса, но это'ы редко используется.

Если приложения/операционной системы написано, чтобы воспользоваться преимуществами 64-битной архитектуры, ваше приложение будет использовать больше памяти, просто потому, что переменные и указатели занимают больше места. Как правило, это сравнительно небольшой компромисс для машин, которые будут пользоваться льготами. В нашем случае, мы имеем очень мало плюсов, и очень мало оперативной памяти.

Также обратите внимание:

Просто потому, что вы'вэ работает на 64-разрядной машине, не'т имею в виду применение isn'т работает как 32-битный. Windows делает это очень ясно, имея два разных пути установки, C:\Program файлы " и " файлы C:\Program (х86).

Итак, фонд, скорее всего, обеспечивают 64 бит поддержку?:

Мы'вновь возвращается в ту же точку, что "Некоторые люди могут увидеть пользу, но больше не будет.&и". Вы'будете, конечно, видеть другие проекты, предлагающие 64-разрядную версию, но, если фонд получает много незаслуженной (ИМО) Флэк, они, вероятно, выиграл'т и должны'т (ИМО). Создание и ведение отдельной 64-битной ветке это'т небольшие усилия, и, честно говоря, просто не'т, кажется, стоит.

Комментарии (18)

Это's стоит отметить, что ситуация различна для ARM и Intel или AMD. Что's, потому что переключиться на архитектуру x86_64 также была использована как возможность для обновления плохо-старения архитектуры, в основном калеки имея только 8 регистров общего назначения и два раза в 64-разрядном режиме. Таким образом, переключение системы Intel/AMD в 64-битном режиме также средство, обеспечивающее реальные возможности, которые в значительной степени повлиять на производительность.

Рука не'т иметь эту проблему, чтобы начать с (хотя AArch64 добавляет регистрами, 32-разрядной архитектур там'т голодали за них), поэтому польза в основном более непосредственно адресуемой памяти и родной большой целочисленных значений — менее серьезное дело, и, возможно, нейтрализуется минусом (больше памяти на все).

(Кстати, по этой причине была проведена некоторая работа по созданию : "с Х32 на" Аби для Intel/AMD в Линукс, сохраняя усовершенствования процессора, но, используя 32-битные указатели.)

Комментарии (3)

Я уверен, что есть уже люди работают под управлением Debian Aarch64 (ARMv8) на Pi 3; это, конечно, было не так трудно для многих людей (см. здесь для некоторых подсказок о том, что может сработать)<суп>1</суп> хотя для большинства пользователей это, вероятно, немного стрейч.

Однако, если Raspbian и/или Фондом Дон'т выйти с 64-разрядной версии, вы будете все чаще видеть людей с блогов и т. д. объясняя, как выполнить одну и еще получить лакомства, которые вам нужны.


Существует в настоящее время Федору aarch64 релиз для Пи 3.


<суп>1. Там будут какие-то осложнения с 32-разрядной вещи/опт/ВК`, я не уверен, как преодолимое, который, был 32-битные библиотеки совместимости для x86-64, но Aarch64...а может и нет.</SUP и ГТ;

Комментарии (4)

В рамках запуска рекламы я видел, как он упомянул, что одна из проблем-это усилие, необходимое, чтобы поддерживать две отдельные базы кода (32 и 64 бит). в интегральных ПИ3 запуск видео также отметил, что переход к 64-битным процессором с тактовой частотой прирост нового чипа обеспечивается чем об использовании 64-битном режиме.

Комментарии (4)

64-битной адресации может быть полезным, даже если вы не'т иметь более чем 1 ГБ памяти.

Он позволяет памяти-карту большие файлы, поэтому у вас есть указатель, и пусть ОС ввода-вывода прозрачно. Просто еще один способ делать я/О. Вам нужна 64-битная адресация, чтобы сделать это на больших файлах.

Еще один пример, где я вижу, это может быть полезно, чтобы позволить процессам с более 2 ГБ адресного пространства, использование пространства подкачки. Недавно у меня была проблема на 32-бит NAS с большим количеством мест для хранения, и поврежденной файловой системы. Процесс проверки заканчивается память, даже с нужным включенным кэшированием. Добавление подкачки не может решить проблему, в 32-битное адресное пространство было жесткое ограничение. Так что не было просто никакого способа, чтобы запустить fsck на этот большой поврежденной файловой системы с 32-разрядным двоичным кодом. С 64-бит двоичном и некоторые подкачки, он бы убежал.

Комментарии (0)

Решения утверждение о том, что 64 битные программы Больше (больше памяти на данные и указатели), а что нет заметной выгоды для 64 и 32 разрядных ОС на ARMv8 с менее чем 4 ГБ оперативной памяти, я хотел бы затронуть несколько вопросов.

Есть некоторые существенные различия в том, как вещи делаются в архитектуры ARMv7 (и раньше) и ARMv8, архитектурно, что сделает выполнение ARMv8 более эффективным. Некоторые из это расширение внутреннего пути, некоторые-устранение особых случаях, и гораздо глубже трубопровода). Эти же изменения делают ARMv8 лучше работает для архитектуры ARMv7 (32-бит) код.

Родной 64-разрядные приложения используют 64-битные указатели и 'реализация' 64 бита, так что элементы с помощью получают больше. Остальные данные будут, как правило, остаются такого же размера. Значение этого является несовершеннолетним, однако, на размер исполняемого изображения.

Где 64 разрядного действительно сияет (если вы Don'т волнует большое целое число и с плавающей запятой вещи) имеет большее виртуальное адресное пространство:

  • ОС способна разделить виртуальное адресное пространство во все более и более широкие слои, что позволяет легче управлять общими ресурсами и оптимизировать переключение контекста между различными уровнями привилегий, и так далее.
  • Если вы'вэ включена подкачка, вы можете работать больше и больше процессов, превышая пределы физической памяти (это на самом деле правда в 32 бит а, но вы're более менее ограничены в 64-разрядной)

Ли в настоящее время операционной системы пользуется этим или нет, это'ы собираюсь сделать разницу в качестве основных отходит от 32 бит.

Я думаю, что лучшим аргументом для переезда в родной 64-битной AArch64 ядра-это мобильность: основное русло рабочего стола переместилась в основном 64 битные процессоры, и я'м видя больше пакетов, что предположим, 64 бит, и перенос такого кода назад в 32 бит сложнее, чем переход от 32-х до 64-х бит. В пользовательском пространстве, вы'повторно в состоянии для запуска 32 битных приложений и 64-разрядных приложений бок-о-бок, предполагая, что вы установили мультиплатформенные библиотеки, так что это не обязательно порт 32 до 64 бит, где он не'т вопрос. 64-битной операционной системы, просто хочу дать вам больший выбор программного обеспечения.

Я'м не говорю, что создание 64-битных ядра для малины Pi 3-это простой есть существенные различия, которые требуют изменений на низком уровне, не все драйверы устройств являются 64 битными (особенно драйверы для АРМ конкретных процессоров). Это может быть, что Raspberian останется 32-битных ОС, но я считаю, что (в долгосрочной перспективе) это недальновидно.

Одного загрузочного носителя (SD карты, например) может состоять как 64 и 32 разрядные версии ОС и дополнительного программного обеспечения Boot (загрузчика, руки-загрузки и др.) можно определить, какой из них для загрузки. Чем жестче часть мозайки -- файловая система должна быть мульти-арки, даже на 32-битных системах, где 64 бита вещи будут бесполезны. Я бы это скрипт или программа, которая может запускаться после начальной загрузки, чтобы удалить ненужные библиотеки и исполняемые файлы программы на 32-битных системах.

Комментарии (1)

Существующие ответы освещающих проблемы 64-разрядной дуги очень хорошо, но я не вижу преимущества модернизации. Итак, здесь'с два я обнаружила совсем недавно:

  • Когда PHP обрабатывает меток времени Unix, размер целое число в 32-разрядной дуги устанавливает верхний предел времени, таким образом, что они не могут выйти за пределы определенный день в 2038. Я ожидаю, что это проблема для всех языков, которые обрабатывают метки. (К счастью, большинство дата обращения подсистем, которые не используют метки времени Unix, такие как PHP'ы типа datetime, предназначены специально не должна быть ограничена эта проблема даже на старых процессорах).
  • Монго ограничивается баз данных по 2G в размер на эту арку, и 32-битные сборки скоро будет устаревшим. Из руководство:

начиная в MongoDB 3.2, 32-разрядные двоичные файлы являются устаревшими и будут недоступны в будущих выпусках.

хотя 32-битные сборки для Linux и Windows, они не подходят для развертывания производства. 32-битные сборки также не поддерживают механизм хранения WiredTiger.

Комментарии (4)

Мои мысли по этому поводу: Хотя я не'т знаю, как именно процессор ARM адреса памяти, я могу сказать вам из предыдущих нескольких архитектур процессоров я запрограммирован на (СПАРК/Альфа/для i386 на amd64/x86_64 с): при использовании разделяемой памяти и адресации его на "реальный и" виртуального адресного указателя, переход на 64бит не является тривиальным. Хотя функции memcpy делает то, что он'ы делать, нужно принимать во внимание, что в 64 бит данных хранится такой (немного назад):

HGFEDCBA
HGFEDCBA
HGFEDCBA

еще в 32 бита это выглядит так:

ABCD
ABCD
ABCD

Так, в 32 бита при сохранении сказать JPEG в оперативной памяти, вы можете прочитать его байтов заголовка, или обнаружения края, без каких либо проблем в линейно *сказать, зайдя байт за байтом вперед. Но в 64-разрядной архитектуры этого изменения:

32бит:

for (i=0; i< img_length/4; i++) 
{ 
    address=shm_start+i; 
    for (c=0; c< 4; c++) 
    { 
        byte=((*address >> c) & 15) 
    } 
}

64бит:

for (i=-; i< img_length/8; i++) 
{ 
    address=shm_start+i; 
    for (c=7; c>=0; c--) 
    { 
        byte=((*address >> c) & 15) 
    } 
}
Комментарии (2)