На каком Linux основан Android и что означает «ядро Linux»

Android основан на модифицированном ядре Linux — это не полноценный дистрибутив, а адаптированный вариант ядра (kernel), который управляет аппаратными ресурсами и обеспечивает низкоуровневые сервисы для мобильной платформы.

Что такое «ядро Linux» в Android

Ядро Linux — это нижний уровень операционной системы: управление процессором, памятью, вводом‑выводом, драйверами и сетевыми стеками. В Android используется исходный код ядра Linux, но Google и производители добавляют патчи и драйверы для конкретных чипов, сенсоров, энергосбережения и IPC (межпроцессного взаимодействия). Над ядром располагаются Bionic (стандартная C‑библиотека Android), Android Runtime (ART) и фреймворки на Java/Kotlin — они делают платформу мобильной и оптимизированной для приложений.

Проверить версию ядра можно в Настройки → О телефоне → Версия ядра. Через терминал/adb — команда uname -r покажет точную версию ядра.

На каких версиях ядра строился Android

За годы Android базировался на разных ветках ядра Linux: ранние релизы (2008–2011) — на ветке 2.6, затем шли 3.x и 4.x, в последние годы Android использует ядра 5.x и 6.x. Google поддерживает синхронизацию с upstream‑ядром и содержит собственные изменения в репозитории AOSP. Начиная с более новых релизов, в ядро добавляются улучшения безопасности (SELinux), поддержка модульного обновления (GKI) и экспериментальная интеграция модулей на Rust.

Чем Android отличается от «обычного» Linux‑дистрибутива

  • Не дистрибутив: нет GNU‑комплекта утилит в корне (типичных /bin, /usr), вместо этого — собственная файловая схема (/system, /data).
  • Пользовательская среда: нет X11/Wayland; графику обеспечивает SurfaceFlinger, а приложение работают в песочнице с разрешениями.
  • Библиотеки и оболочка: используется Bionic вместо glibc и mksh вместо bash.
  • Менеджмент памяти и процессов: механизмы вроде Low Memory Killer ориентированы на агрессивное освобождение RAM для отзывчивости интерфейса.
  • Обновления и совместимость: Project Treble и GKI упрощают обновления ядра и драйверов для разных устройств.

Будущее: GKI и Rust

Google продвигает Generic Kernel Image (единое ядро для разных устройств) — это упрощает поддержку и обновление безопасности. Также в ядро постепенно вводят модули, написанные на Rust, чтобы снизить количество уязвимостей в коде драйверов. Эти изменения делают платформу более устойчивой и безопасной.

Частые ошибки

  • Путать «ядро Linux» с «дистрибутивом Linux» — ядро само по себе не содержит пользовательских утилит.
  • Ожидать, что версия Android = версия ядра — это разные вещи; один релиз Android может использовать несколько веток ядра.
  • Рутирование не «переписывает» ядро — оно даёт права, но для смены ядра требуется прошивка/установка кастомного kernel.

FAQ

  • Как узнать, какая версия ядра у моего телефона?
    • В Настройки → О телефоне → Версия ядра или через adb/терминал командой uname -r.
  • Можно ли заменить ядро на Android?
    • Да, технически можно (кастомные ядра), но это требует разблокировки загрузчика, рискует гарантией и может повлиять на стабильность.
  • Почему Google не делает Android «обычным» дистрибутивом Linux?
    • Мобильные устройства имеют другие требования по энергопотреблению, безопасности и управлению памятью; поэтому нужен специализированный стек поверх ядра.