GPU Hardware

ОС и устройства

Операционная система — слой между железом и приложениями; под каждый класс устройств существует своя ОС, самая массовая из них — Android.

Что такое ОС и устройства

Операционная система (ОС) — программный слой между железом и приложениями. Она управляет процессами и памятью, работает с файловой системой, а главное — прячет за собой конкретные устройства: приложению незачем знать, чей у вас диск или сетевая карта, оно просто просит ОС записать файл.

Основа ОС — ядро (kernel). Оно распределяет процессорное время, управляет памятью и содержит драйверы устройств. Всё остальное — оболочка, утилиты, графика — работает поверх ядра и общается с ним через системные вызовы.

Класс устройства диктует выбор ОС:

Класс Типичные ОС Особенность
Серверы Linux, Windows Server Без графики, управление по SSH
Десктопы Windows, macOS, Linux GUI, широкая поддержка периферии
Смартфоны, планшеты Android, iOS Тач-интерфейс, батарея, песочница приложений
ТВ, авто, часы Android TV, Automotive, Wear OS Варианты Android под форм-фактор
Встраиваемые RTOS, урезанный Linux Минимум ресурсов, реальное время

Что такое Android

Android — операционная система для мобильных и встраиваемых устройств, развиваемая Google. Самая распространённая ОС в мире по числу устройств: смартфоны, планшеты, телевизоры, автомобили, часы.

Устройство Android по слоям, снизу вверх:

  1. Ядро Linux — управление памятью, процессами, драйверы. То же ядро, что на серверах, с патчами под мобильные задачи.
  2. HAL (Hardware Abstraction Layer) — стандартный интерфейс к камере, экрану, датчикам конкретного вендора.
  3. ART (Android Runtime) — среда исполнения приложений, пришедшая на смену Dalvik.
  4. Фреймворк и приложения — то, что видит пользователь. Пишут на Kotlin и Java, тяжёлые части — на C/C++ через NDK.

Важный нюанс, который часто упускают: Android — это не Linux в привычном смысле. Ядро общее, но всё вокруг другое: своя стандартная библиотека Bionic вместо glibc, нет привычного набора GNU-утилит, нет X11. Программа для Ubuntu на Android просто так не запустится.

Кодовая база открыта как AOSP (Android Open Source Project) — на ней строят HyperOS, One UI и другие оболочки вендоров. А вот сервисы Google (Play, карты, push) в AOSP не входят и лицензируются отдельно. Отсюда и берутся устройства «на Android, но без Google Play».

Приложение распространяется как APK — архив с кодом, ресурсами и манифестом. В Google Play публикуют формат AAB, из которого магазин сам собирает APK под конкретное устройство.

Что такое эмулятор Android

Эмулятор Android — программа, которая создаёт виртуальную машину с Android на обычном компьютере. Нужен разработчикам и тестировщикам: проверить приложение на десятке версий ОС и разрешений экрана, не покупая десять телефонов.

Основные варианты:

  • Android Emulator (AVD) из состава Android Studio — официальный, построен на QEMU. Стандарт для разработки.
  • Genymotion — коммерческий, ориентирован на тестирование и CI.
  • BlueStacks, LDPlayer — потребительские, в основном для запуска мобильных игр.
  • Waydroid — Android в контейнере на Linux, без полноценной эмуляции, использует ядро хоста.

Ключ к скорости — аппаратное ускорение. Без него эмулятор мучительно медленный.

  • Архитектура образа. Системный образ x86_64 исполняется на процессоре хоста напрямую. ARM-образ требует трансляции инструкций и работает в разы медленнее. Берите x86_64, если не тестируете что-то ARM-специфичное.
  • Виртуализация. На Linux — KVM, на Windows — WHPX/Hyper-V, на macOS — Hypervisor.framework. Аппаратную виртуализацию нужно включить в UEFI (Intel VT-x / AMD-V) — самая частая причина «эмулятор не запускается».
  • Графика. Режим -gpu host отдаёт рендеринг реальной видеокарте; программный рендеринг медленнее, но выручает на серверах без GPU.

На сервере это тоже работает: фермы эмуляторов под автотесты — обычная практика в CI. Требования — процессор с виртуализацией и включённая вложенная виртуализация, если сам сервер виртуальный. Для тестов с тяжёлой графикой к узлу пробрасывают видеокарту через GPU passthrough.

Что такое Android Debug Bridge (ADB)

ADB (Android Debug Bridge) — утилита командной строки для управления Android-устройством с компьютера. Входит в состав Android SDK Platform Tools и работает и с реальным телефоном по USB, и с эмулятором.

Устроен ADB из трёх частей: клиент на вашей машине, локальный сервер-посредник (слушает порт 5037) и демон adbd на самом устройстве.

# Список подключённых устройств и эмуляторов
adb devices

# Интерактивная оболочка на устройстве
adb shell

# Установить и удалить приложение
adb install app.apk
adb uninstall com.example.app

# Обмен файлами
adb push local.txt /sdcard/
adb pull /sdcard/log.txt .

# Логи системы и приложений
adb logcat

# Подключение по сети вместо USB
adb tcpip 5555
adb connect 192.168.1.50:5555

Чтобы устройство отвечало на ADB, нужно включить режим разработчика: в «О телефоне» семь раз нажать на номер сборки, затем в появившемся меню разработчика включить «Отладка по USB». Если adb devices показывает unauthorized — на экране телефона висит неподтверждённый запрос на доверие компьютеру.

Связанные термины

Готовы запустить GPU-задачу?

Запустить GPU-сервер