Вопрос или проблема
Я хотел бы знать, в чем основное отличие между многими архитектурами, доступными для различных операционных систем.
AMD64/AMD32
ARM64/ARM32
AArch64/Arch32
armhf64/armhf32
Я пытался установить Ubuntu на свой Raspberry Pi 4b (8 ГБ ОЗУ) и, когда искал поддерживаемую архитектуру, эти названия запутали меня в том, что установить для своих нужд.
Единственная проблема в том, что каждая версия устанавливается нормально, но в итоге я обнаруживаю, что Ubuntu не поддерживает камеру, встроенную в Raspberry Pi, которую я подключил через шлейф.
Архитектура
32-битная
64-битная
Intel x86 (ПК)
x86, i386, i486 … i686
x86_64, amd64
ARM (мобильные устройства)
armhf, armv7h
arm64, aarch64
«aarch64» и «arm64» — это одно и то же. AArch64 — официальное название 64-битной архитектуры ARM, но некоторые люди предпочитают называть ее «ARM64» как продолжение 32-битного ARM.
С другой стороны, все 32-битные версии ARM назывались как «arm»-что-то (не существует такого как «aarch32»). Смотрите этот другой пост и этот о значении «armhf».
Одно из этих названий очень отличается – «amd64» — это оригинальное название для x86_64, которое является 64-битной версией обычной архитектуры процессоров Intel/AMD x86, используемой в типичных ПК, и не имеет никакого отношения к процессорам ARM. (32-битная версия происходит от Intel и всегда называется «x86», иногда «i386», «i686», но никогда «amd32». Только 64-битные расширения были созданы AMD.)
Ваш Raspberry Pi 4 обладает 64-битным процессором ARMv8, поэтому «aarch64»/«arm64» — наиболее подходящая архитектура для него, хотя он также может запускать 32-битную ОС «armv7h». (Подобно тому, как 64-битные amd64 ПК все еще могут запускать 32-битную x86 ОС.)
Часть о ARM быстро становится запутанной:
Aarch64 на самом деле не является 64-битной ISA для процессоров ARM. Скорее, это режим выполнения, введённый с ARMv8, который позволяет им получить доступ к 64-битной ISA: A64.
Еще более запутанно, эта ISA A64 совершенно отдельна от A32 (32-битной) ISA: процессор, работающий в режиме Aarch64, не может выполнять инструкции ARM32 и наоборот. Процессору нужно переключить режим выполнения, чтобы использовать соответствующую ISA.
Чтобы резюмировать:
A64 – ISA для 64-битных процессоров ARM.
Aarch64 – 64-битный режим выполнения, который предоставляет доступ к ISA A64.
https://developer.arm.com/Architectures/A64%20Instruction%20Set%20Architecture
A32 – ISA для 32-битных процессоров ARM (и 64-битных процессоров ARM в 32-битном режиме).
Aarch32 – 32-битный режим выполнения, который предоставляет доступ к ISA A32.
https://developer.arm.com/Architectures/A32%20Instruction%20Set%20Architecture
Еще один момент, который стоит отметить: я не думаю, что Aarch32 действительно стал чем-то, пока не была введена Aarch64, поэтому вы увидите, как люди говорят, что его не существует.
Как указывает grawity в своем посте: AMD64 — это «конвенциональная» ISA для 64-битных процессоров, которые вы видели практически во всех ПК до недавнего времени. Она была названа так, потому что AMD создала оригинальный набор команд. x86 произошел от i386, который был разработан Intel. Один момент, который стоит отметить: стандарты полностью отделены от компаний, которые изначально их разработали на данном этапе: т.е. AMD64 будет работать на процессорах Intel и наоборот.
Ответ или решение
Разница между архитектурами ARM/AMD/AArch/ArmF и их применение на Raspberry Pi 4b может вызвать путаницу, особенно если вы пытаетесь установить операционную систему, такую как Ubuntu. Давайте разберем каждую из этих архитектур и их особенности.
Основные архитектуры
-
AMD64/AMD32:
- AMD64 – это 64-битная архитектура процессоров, первоначально разработанная компанией AMD. Она является расширением 32-битной x86 архитектуры и используется на современных ПК, включая процессоры Intel и AMD.
- AMD32 – это 32-битная версия, чаще всего обозначаемая как x86 или i386 для 32-битных систем.
-
ARM64/ARM32:
- ARM64 – это общее наименование для 64-битных процессоров ARM, также известное как AArch64. Это позволяет работать с 64-битными бинарными файлами и использовать больше оперативной памяти.
- ARM32 – это общая категория для 32-битных процессоров ARM (например, ARMv7).
-
AArch64/AArch32:
- AArch64 – это режим исполнения, который отвечает за выполнение 64-битных команд в архитектуре ARM. Он предоставляет доступ к 64-битной инструкции A64.
- AArch32 – это режим, который позволяет 64-битным ARM процессорам выполнять 32-битные команды. На самом деле, AArch32 введён только с появлением AArch64.
-
armhf/armhf:
- armhf (hard floating point) – это 32-битная архитектура, оптимизированная для использования с аппаратной поддержкой операций с плавающей запятой. Это более современный подход к производительности по сравнению с предыдущими 32-битными версиями ARM без аппаратной поддержки (например, armel).
Как выбрать подходящую архитектуру для Raspberry Pi 4b
Ваш Raspberry Pi 4b имеет 64-битный процессор ARMv8, поэтому наиболее подходящей архитектурой для установки Ubuntu будет:
- AArch64/ARM64 – это 64-битный образ, который будет использовать полную мощь процессора и доступные 8 ГБ оперативной памяти.
Вы также можете использовать 32-битную версию:
- ARM32 (armhf) – это вариант для 32-битных систем, однако следует учитывать, что он не сможет использовать все 8 ГБ RAM и будет ограничен 4 ГБ.
Проблемы с камерой
Что касается поддержки вашей камеры, это может быть связано не только с выбором архитектуры, но и с драйверами. Убедитесь, что версия Ubuntu, которую вы устанавливаете, поддерживает вашу камеру, и проверьте наличие необходимых пакетов и драйверов, которые могут потребоваться для работы с ней. Наиболее полезным для поиска специфических инструкций по подключению камеры может быть сообщество Raspberry Pi или форумы поддержки Ubuntu.
Заключение
В заключение, для вашего Raspberry Pi 4b лучше всего использовать 64-битный образ Ubuntu (AArch64/ARM64) для более эффективного использования ресурсов. Однако, если у вас возникают проблемы с совместимостью, особенно с камерами, рекомендуется обратить внимание на соответствующие драйверы и документацию.