Фрагментация Android никогда не закончится, вот почему
Фрагментация Android – постоянная проблема для самой популярной в мире операционной системы. В то время как потребители высокого класса получают новую версию Android каждый год, появляется еще одна версия, прежде чем она даже сможет занять первое место по доле рынка. На более доступных уровнях все еще слишком часто бывает, что она устаревает на год, наряду с нечастыми обновлениями и отсутствующими исправлениями безопасности.
Google приложил много усилий для решения этой проблемы на протяжении многих лет, хотя сомнительно, что фрагментация Android когда-либо действительно может быть решена. Project Treble выплатил дивиденды за внедрение Android Pie. В первый год Pie работал на гораздо большем количестве устройств, чем его предшественники. Мы надеемся, что мы смотрим на еще более быстрое внедрение Android 10, учитывая, что ряд производителей поспешили предложить бета-программы.
Несмотря на усилия, приложенные для ускорения обновлений ОС и безопасности, существуют основные проблемы в работе Android, которые не позволяют найти идеальное решение. На конференции водопроводчиков Linux в этом году (через ArsTechnica) Google представил еще одно средство для решения проблемы, на этот раз попытавшись заставить телефоны Android работать с общим ядром Linux, а не с настроенным ядром.
Понимание проблемы ядра Linux
Несмотря на быстрое внедрение новых версий ОС, Android становится все более и более фрагментированным.
Мы будем краткими, так как ядра в равной степени сложны и утомительны. Важно знать, что ядро - это интерфейс между оборудованием вашего телефона и его программными процессами. Это важно, например, если вы хотите, чтобы программное обеспечение вашего телефона могло взаимодействовать с оборудованием камеры. Android основан на ядре Linux, потому что это разветвленная операционная система на основе Linux.
Когда дело доходит до Android, разработка ядра Linux делится на три отдельных этапа. Каждый из них уводит его от базового ядра Linux с долгосрочной поддержкой (LTS), на котором основан Android.
Во-первых, есть ядро Android Common, которое применяет к LTS все специфические для Android функции и исправления. Затем он отправляется поставщикам SoC (таким как Qualcomm, Samsung или Huawei ), где добавляются аппаратные исправления. Эта версия ядра Linux затем передается производителям телефонов, которые добавляют в свои собственные аппаратные исправления для конкретных устройств. Это включает поддержку звука, камеры, дисплея и других функций.
Ядро, которое заканчивается на вашем телефоне, сильно отличается от исходного ядра. Это делает невозможным применение универсальных обновлений.
В результате никакие два телефона не используют одно и то же ядро. В Android для уникального оборудования требуется уникальное ядро, а для обновления одной части требуется обновление всей системы. Версии Android должны пройти через множество компаний (у каждой из которых есть свои приоритеты), прежде чем они достигнут потребителя. Вот почему телефоны часто основаны на двухлетних версиях LTS и почему обновления занимают так много времени.
Project Treble попытался частично решить эту проблему, разделив ОС Android и аппаратную (HAL) платформу. Это позволяет более независимо обновлять функциональное программное обеспечение. Теперь Google хочет сделать то же самое вплоть до низкоуровневого Linux K kernel, отдавая предпочтение модульным компонентам ядра, а не одному полному универсальному ядру.
Еще один патч на скрипящую систему
Google предполагает разделенное ядро Linux с одним общим образом и несколькими модулями.
Цель Google – перейти на центральное универсальное ядро и несколько модулей ядра. Модули ядра больше зависят от оборудования, в то время как общее ядро содержит необходимые исправления для ядра Android. Это, наконец, позволило бы Android работать более привычным для ПК способом, где модули ядра обновляются больше, чем драйверы ПК. Ядро основной ОС может обновляться отдельно, что позволяет более новым версиям LTS быстрее выходить на рынок.
Теоретически это упростило бы установку обновлений программного обеспечения и безопасности, не беспокоясь об оборудовании. Однако вполне вероятно, что тесты на совместимость по-прежнему потребуются, и в какой-то момент потребуется участие SoC и производителей оборудования. Как всем этим управлять, остается нерешенным вопросом.
Сейчас все обновляется сразу. Google хочет более модульного подхода.
Посмотрите видео выше, если вас интересуют более тонкие технические детали.
Унифицированное ядро Android не решит проблему фрагментации Android
У предложения Google также есть важный предел. В настоящее время Google только предполагает, что ядро должно быть стабильным для одной версии LTS. Идея не в том, чтобы обновлять версии Linux; скорее, он предназначен для того, чтобы общее ядро могло работать на нескольких устройствах вместо тысяч разветвленных версий SoC и производителей, которые в итоге оказываются на устройствах. Применять обновления безопасности и небольшие патчи таким образом было бы намного проще, но крупные обновления ОС все еще могут быть не такими простыми.
Несмотря на то, что Google явно проявляет интерес к унифицированному ядру Android, нет никаких гарантий, что это вообще возможно, и уж точно не в ближайшее время. В конечном счете, интеграция аппаратного и программного обеспечения нижнего уровня Android представляет собой сложную неразбериху. Возможно, будущая ОС Fuchsia от Google решит эту проблему.
Даже если Google переключит Android на эту схему, это не обязательно решит проблему фрагментации Android. Обновления безопасности могут выполняться быстрее, но они все равно не обязательно будут регулярными, а серьезные обновления ОС – это проблема, которую еще предстоит решить.
Google предполагает разделенное ядро Linux с одним общим образом и несколькими модулями.
Источник записи: https://www.androidauthority.com