Linux arm system type

Разница между ARM64, ARMel и ARMhf — подсказка для Linux

Большинство из нас, желая купить новый смартфон, планшет или любое электронное устройство, мы встречаем термин «процессор ARM vXXX» в списке спецификаций. Но мы почти не беспокоимся о том, что такое процессор ARM. Итак, в этом руководстве мы кратко рассмотрим процессоры ARM.

Что такое ARM?

ARM или Advanced RISC Machines или Acorn RISC Machine (предыдущее название) — одно из наиболее часто используемых процессорных ядер в мире. Процессор ARM стал первым коммерческим процессором RISC в 1985 году. Первым выпуском была 26-битная RISC-машина. Во втором выпуске в 1987 году ARM версии 2 представила функцию сопроцессора. Со временем процессоры для рук сильно эволюционировали. Корпорация ARM предоставляет платные лицензии всем, кто хочет производить процессоры или продукты SOC на основе их архитектуры. ARM Holdings, штаб-квартира которой находится в Кембридже, Великобритания, несет ответственность за этот бизнес, как на входе, так и на выходе. Apple, Qualcomm, Texas Instruments, Nvidia, Samsungи т. д., являются одними из самых заметных потребителей семейства ARM.

Процессоры ARM в основном используются в мобильных устройствах и встроенных системах. Они имеют небольшие размеры и низкое энергопотребление, но в то же время обеспечивают высокую производительность. Точка рассмотрения — это проблема дизайна, поскольку программное обеспечение, разработанное для ARM, не может работать на устройствах, отличных от ARM. Это похоже на то, как два человека, говорящие на разных языках, не могут понять, о чем говорит другой.

Особенности процессора ARM

  1. На основе RISC или вычислений с сокращенным набором команд.
  2. Фиксированный размер и единый набор инструкций.
  3. Поддержка многоступенчатого конвейера для инструкций.
  4. Поддерживает широкий частотный диапазон.
  5. Выполнение байт-кода Java.
  6. Оптимизирован для использования батареи в мобильных устройствах.

В широком смысле архитектура ARM имеет три типа профилей:

А-profile или профиля приложения

р-profile или Профиль в реальном времени

M-профиль или профиль микроконтроллера

Почему ARM используется техническими гигантами

В течение долгого времени ARM рассматривается как процессор для мобильных устройств, а x86 / x64 — как целевой процессор для настольных компьютеров и серверов. Но с развитием технологий процессоры ARM используются для планшетов. Например, более ранняя версия Windows 10 может работать только на процессорах на базе x86 и x64, но последняя версия Windows 10 для настольных ПК может работать на процессорах, основанных на архитектуре ARM64. Microsoft гарантирует, что совместимость приложений для приложений на базе x86 и x64 будет бесперебойной для работы на базе ARM64. ПК. Хотя приложения на базе ARM32 и ARM64 будут выполняться напрямую, приложение на базе x86 потребует эмуляции для бегать.

Читайте также:  Линукс минт подключение принтера

Для некоторых версий Windows, таких как Windows 8, требуется процессор x86 или x64, тогда как для Windows RT требуется процессор ARM. Хотя x86 / x64 очень быстрые по сравнению с процессором ARM, они потребляют значительное количество энергии. Поэтому они лучше всего подходят для серверов и настольных компьютеров. В то же время процессор ARM относительно медленный, но для его работы требуется мало энергии. Это делает их более подходящими для мобильных устройств под управлением Android, IOS и т. Д.

Apple объявила о переводе своей серии MAC с Intel на процессоры SoC и SiP, основанные на архитектуре ARM. По заявлению Apple, с процессорами ARM они обеспечат производительность в сочетании с длительным временем автономной работы. Чипы Apple Silicon — это первый разработанный Apple чип на базе Arm, который будет использоваться в последних MacBook Air, MacBook Pro и Mac mini.

Три порта Debian ARM: Debian / armel, Debian / armhf и Debian / arm64

Debian / armhf является аббревиатурой от «рука жестко плавает, ”Представляющий перенос на Debian. Перенос Debian на armhf был запущен для поддержки модуля с плавающей запятой (FPU) на современных 32-битных платах ARM.

Для критических требований к точности в приложениях, основанных на вычислениях и цифровой обработке сигналов (DSP), функция с плавающей запятой особенно подходит. ЦП ARMv7 с версией 3 спецификации векторных операций с плавающей запятой ARM (VFPv3) является минимальным требованием для переноса Debian на armhf.

В основном он используется для мобильных устройств (смартфонов, планшетов) и встроенных устройств.

Известно, что Debian / armhf поддерживает различные платформы:

  1. Плата для быстрого старта Freescale MX53: i. Плата MX53 Quick Start оснащена процессором Arm Cortex-A8 с тактовой частотой 1 ГГц. Это платформа с открытым исходным кодом для разработки.
  2. NVIDIA Jetson TK1: это плата для разработчиков с 32-битным процессором ARM Cortex-A15.
  3. SolidRun Cubox-i4Pro: серия Cubox-i представляет собой крошечную вычислительную платформу. Cubox-i4Pro оснащен процессором ARM Cortex A9.

Другие поддерживаемые платформы включают Wandboard, Seagate Personal Cloud и Seagate NAS, SolidRun Cubox-i2eX tec. Платформа EfikaMX ранее поддерживалась до Debian 7, но с Debian 8 от этой поддержки отказались.

Debian / armel или ARM EABI или Встроенный порт ABI в Debian был нацелен на старые 32-битные процессоры ARM. У него нет аппаратной поддержки блока с плавающей запятой (FPU). ARM EABI или armel должны работать с архитектурой ARM версий 4T, 5T и выше, но с выпуском Debian 10 (buster) поддержка ARM4T удалена.

Согласно Oracle, armel для armhf находится в стадии разработки, поэтому между ними могут быть некоторые несовместимости. Чтобы проверить, запущена ли в вашей системе armhf или armel, выполните следующую команду на своем терминале Linux:

$ Readelf -А / прока / себя / исполняемый | grep Tag_ABI_VFP_args

Если приведенная выше команда возвращает тег Tag_ABI_VFP_args, то это система armhf, тогда как пустой вывод показывает, что это система armel. Например, дистрибутив raspberry вернет тег Tag_ABI_VFP_args: VFP registers, поскольку это дистрибутив armhf. С другой стороны, дистрибутив Debian Wheezy с мягким перемещением выдаст пустой результат, что указывает на то, что это дистрибутив armel.

Читайте также:  Просмотр запущенных процессов linux команда

Следующий список содержит различные платформы, поддерживаемые Debian / armel:

  1. Kirkwood и Orion5x SoC от Marvell с процессором ARM.
  2. Универсальная платформа с эмулятором QEMU.

Debian / arm64 нацелен на 64-битные процессоры ARM, для которых требуется минимальная архитектура ARMv8. 64-битная обработка обеспечивает расширенные вычислительные возможности. Это улучшение обработки достигается за счет увеличения емкости адресации памяти в 64-битной архитектуре. Аппаратное обеспечение Arm64 было впервые выпущено для iPhone 5 в 2013 году. Имя GNU для ARM64: aarch64-linux-gnu. Преимущество ARM64 в том, что он совместим со своим 32-битным предшественником. Это помогает запускать двоичные файлы или программное обеспечение ARMv7 без каких-либо изменений в архитектуре ARMv8.

Debian впервые выпустил перенос на ARM64 в своей операционной системе Debian 8 (Jessie). Список различных платформ, поддерживаемых Debian / ARM, приведен ниже:

  1. Applied Micro (APM) Mustang / X-Gene: это первая известная платформа с архитектурой ARMv8 с 8-ядерным процессором.
  2. Платформа разработки ARM Juno: Согласно ARM, платформа разработки Juno Arm — это открытая и независимая от поставщика разработка Armv8 с 6-ядерным процессором ARMv8-A.

Примеры устройств, использующих архитектуру ARM64, включают Raspberry Pi 2, Raspberry Pi 3, Microsoft HoloLens 2, DragonBoard, несколько устройств IoT, современные ноутбуки и настольные компьютеры, смартфоны и т. Д.

Проверка типа процессора вашей платы.

Чтобы проверить тип процессора на машине Ubuntu, просто используйте следующую команду:

Для получения подробного списка различных функций вашего процессора используйте следующую команду:

$ Кот / прока / cpuinfo [ // c ]
Другой команда который вы можете использовать, чтобы увидеть архитектуру процессора вашей системы, приведен ниже:
[ cc язык = «баш» ширина = «100%» высота = «100%» сбежал = «истинный» тема = «доска» ]
$ безымянный -а

Источник

is my linux ARM 32 or 64 bit?

under an intel I know I can look at the outcome of uname -m to know if my OS is 32 or 64 bit, but under ARM this gives:

arm 7 is 32 bit. ARMv8-A architecture, announced in October 2011,[6] adds support for a 64-bit address space and 64-bit arithmetic. — wikipedia

I don’t have access to an ARM machine but what is the output of uname -a and gcc -v ? Those might be helpful.

Announced October 2011, ARMv8-A (often called ARMv8 although not all variants are 64-bit such as ARMv8-R) represents a fundamental change to the ARM architecture. It adds a 64-bit architecture, named «AArch64», and a new «A64» instruction set. AArch64 provides user-space compatibility with ARMv7-A ISA, the 32-bit architecture, therein referred to as «AArch32» and the old 32-bit instruction set, now named «A32» ARM announced their Cortex-A53 and Cortex-A57 cores on 30 October 2012. — en.wikipedia.org/wiki/ARM_architecture#64.2F32-bit_architecture

Читайте также:  Linux прослушка ком порта

Arm was the last of the 32bit cpu to go 64bit (excluding those that died). Most went 64bit and then died, because of poor marketing — assuming that being better is enough. The Intel x86 was the second to last, though it was AMD that added 64 bit.

6 Answers 6

There are several gradations, since you can run a 32-bit or mixed operating system on a 64-bit-capable CPU. See 64-bit kernel, but all 32-bit ELF executable running processes, how is this? for a detailed discussion (written for x86, but most of it applies to arm as well).

You can find the processor model in /proc/cpuinfo . For example:

$ cat /proc/cpuinfo Processor : ARMv7 Processor rev 10 (v7l) 

ARMv7 (and below) is 32-bit. ARMv8 introduces the 64-bit instruction set.

If you want to see whether your system supports 64-bit binaries, check the kernel architecture:

On a 64-bit processor, you’d see a string starting with armv8 (or above) if the uname process itself is a 32-bit process, or aarch64 if it’s a 64-bit process. (See also https://stackoverflow.com/questions/45125516/possible-values-for-uname-m)

I don’t contest your answer, but unfortunately android IS A LINUX, so, there suppose to be some command, SOMEWHERE that show it locally and not to read a documentation on some page

@THESorcerer Android uses a Linux kernel but it is not a Linux system. It does not have Linux user land tools (only a very small subset). On Android, I think 64-bit support is consistent in the base OS, so cat /proc/$$/maps will let you know whether the system is 64-bit or 32-bit from an adb command line.

I believe Raspberry Pi 3, which is ARMv8 (CRC, no optional Crypto) will report armv7l even though its ARMv8. So I’m pretty sure the wrong CPU will be reported.

@jww If it reports armv7l , it means you’re running a 32-bit kernel. You can run a 32-bit kernel on a 64-bit CPU. If you want information about the CPU, read /proc/cpuinfo .

As richard points out, armv7 variants are all 32-bit, so there is no redundant label armv7-32 , etc.

On a linux system, you can easily, although not truly definitively, check by examining a common executable:

> which bash /bin/bash > file /bin/bash /bin/bash: ELF 32-bit LSB executable, ARM, version 1 (SYSV) . 

I say «not definitively» because it is possible to run 32-bit executables on a 64-bit system.

There does not appear to be anything foolproof in /proc or /sys ; the output from /proc/cpuinfo may provide some significant clues. If for some reason you need an automated check, creating a table mapped to the «model name» field seems like one potentially sound method (other fields, including «model», «cpu family», etc. look optional — they don’t appear at all for me on a Broadcom 2708 ARMv6 processor).

Источник

Оцените статью
Adblock
detector