Keddr-O-lab #6.1: ядро ОС Android (введение)

Всем привет! C вами припозднившийся, тяжелый для восприятия (и такой важный!) выпуск еженедельной рубрики Keddr-O-lab. На этот раз мы поговорим с вами о ядрах. В планах написать цикл из нескольких статей (эта – вводная), которые подробно рассмотрят все более или менее важные детали и моменты, поняв работу которых (и настроив под себя), вы выжмете из своего устройства 250% возможностей в плане производительности и сможете уменьшить энергопотребление (в зависимости от настроек и устройства число «дополнительных часов» может составить половину от вашего нынешнего показателя!).

Как я уже писал в первом выпуске нашей рубрики, прошивки – это хорошо, но далеко не самое главное. Сердцем и мозгом устройства, вокруг которого работают все остальные элементы системы, является ядро. Стоит отметить, что ядро ОС Android основано на ядре Linux, и большинство изменений “старшего брата” также имплементируются в зеленого робота.

Увы, тема по настройке ядер достаточно «хардкорная» и требует некоторого внимания и вникания, в следствие чего многие просто обходят их стороной или используют так, как написал программист  (даже если режим использования и требования к ядру сильно разнятся с таковыми у скомпилировавшего его человека).

Когда человек, скачавший прошивку, замечает сильный прирост во времени / скорости работы своего устройства (иногда прямо смартфон начинает играть новыми красками), то это лишь в меньшей степени является заслугой самой прошивки. Дело, как правило, всегда заключается в ядре.

Ядра бывают основанные на «стоковых» (т.е. используются ресурсы и наработки производителя с минимальными изменениями) или же собранные непосредственно из AOSP. Как правило, кастомные ядра:

1)      Улучшают энергопотребление.

2)      Увеличивают скорость работы.

3)      Имеют больший спектр настроек.

4)      Улучшают звук (не на всех устройствах).

5)      Позволяют изменить (а в некоторых случаях и улучшить) цветопередачу дисплея (особенно полезно для AMOLED-экранов, которые имеют особенность “уходить” в тот или иной оттенок).

6)      Ускоряют работу передачи данных по WI-FI и могут улучшить радиус приема.

7)      Позволяют ускорить зарядку устройства от порта USB (в некоторых случаях телефон при активированной данной функции не определяется как flash накопитель).

8)      Увеличивают скорость доступа к flash памяти смартфона.

9)      Позволяют изменить частоту видеочипа, что крайне положительно сказывается на производительности в играх.

Это усредненные данные, которые могут варьироваться в зависимости от модели вашего устройства. Где-то разработчик добавляет кастомный рекавери, где-то появляется возможность т.н. «dualboot» (позволяет установить две версии ОС на одно устройство и выбирать при включении оного; как вариант, возможно использовать Siyah Kernel для владельцев SGSII).

Как прошить ядро?

Вариантов несколько: «универсальный» (прошивка *.zip-архива через любой recovery mode) или же «родной» (варьируется от производителя: где-то это реализуется только посредством командной строки и fastboot режима, где-то – через сервисные программы типа самсунговского Odin’а).

Единственное, что я могу вам тут посоветовать, – нет необходимости в совершении каких-либо вайпов перед непосредственной установкой ядра, однако (каким-то магическим образом, ибо эти вещи никак не связаны) мне пару раз при возникновении проблем помогали «классические» (и ошибочные) методы типа wipe cache / wipe dalvik cache.

В ядре имеется несколько «ключевых» настроек, напрямую влияющих на скорость работы, записи / чтения данных и на энергозатраты при тех или иных нагрузках.

1)      Частота процессора. Возможно настроить минимальную и максимальную частоты. В теории (и, казалось бы, вполне очевидно) меньшая частота – меньшие энергозатраты, однако здесь имеются свои подводные камни. Во-первых, у вас могут начать обрываться загрузки при выключенном дисплее (частично зависит от планировщика, об этом чуть позже), может начать «заикаться» проигрываемая музыка. Во-вторых, не всегда меньшая частота – добро. Приведу пример, который многим может показаться знакомым. Вы часто выключаете / включаете дисплей для прочтения twitter ленты, в дороге или еще по каким-то причинам. Смена частот – достаточно энергозатратный процесс, а в данном случае повышение частоты происходит очень часто (во время выключения дисплея она падает, при включении и при прикосновении к нему – поднимается), вследствие чего вы лишь увеличиваете энергопотребление. В данном случае оптимальным вариантом является подъем минимальной планки частоты до той, на которую процессор «перескакивает» при прикосновении к дисплею (отследить можно через почти любую программу, позволяющую настраивать ядро).

2)      «Регулятор» ядра (governor) – та часть, которая отвечает за то, как, когда и при каких условиях процессор будет менять частоту. «Стоковыми» планировщиками обычно являются Ondemand, Conservative, Interactive, Powersave, Performance, Userspace. Начиная с версии Android 4.1.1. Jelly Bean основным стал Interactive, в то время как в прошлых версиях использовался чаще Ondemand. В некоторых аппаратах (скажем, Samsung Galaxy S3) основным является PegasusQ, который схож с Ondemand (написан отдельный планировщик из-за некорректной работы Ondemand’а с процессорами Exynos, количество ядер которых превышает два). О них мы поговорим подробнее в следующий раз. Сторонние же разработчики, как правило, добавляют в свои ядра дополнительные планировщики (наиболее известные – Smartassv2, Lazy, Wheatley) и настраивают работу «родных».

3)      I / O scheduler (input / output, чтение / запись) планировщик ядра отвечает за то, как и при каких условиях будет использоваться оперативная память устройства, уменьшает задержку работы с дисковым пространством, перераспределяет его в зависимости от запущенных процессов и старается нормализовать относительно каждого из параметров. Их далеко не так много, как governor’ов. Наиболее оптимальными по сложившемуся последнее время мнению являются Deadline, SIO и CFQ, в некоторых ядрах можно встретить активированный по умолчанию Noop.

Это основные настройки, изменить которые можно при помощи терминала, правки конфигурационных файлов вручную или же используя сторонние приложения (специализированные под отдельно взятое ядро [franco.Kernel updater, ExTweaks и иже с ними] или всеядные типа NoFrills, SetCPU или System Tuner).

Существуют «мастодонты» ядрописания, которые трудятся для большого количества пользователей и программируют сразу для большого количества устройств. Их ядра могут быть не самыми лучшими, однако на них всегда стоит обратить внимание. Встречайте franciscofranco (franco.kernel), faux123 (faux kernel), imoseyon (leankernel), Eezekeel (GlaDOS kernel), gokhanmoral (Siyah kernel).

На сегодня все, до следующего выпуска!

Please wait...
Теги: , , , , , , , , , , , , , , , , , , ,
0
25 Комментарий
Сначала Новые
Сначала Старые Популярные
guest

Межтекстовые Отзывы
Посмотреть все комментарии
dan_mk
dan_mk
12 лет назад

интересно) немного нового для себя узнал.
Надеюсь, выйдет какое-нить ядро для nexus 7, которое “поправит” контрастность ему.
А так стоит ядро trinity

Please wait...
dan_mk
dan_mk
12 лет назад

@Барышников Андрей, спасибо, посмотрю. хотя читая ветку прошивки на 4пда, не видел пользователей, которые отмечали бы такую особенность ядра.

Please wait...
LameWarden
LameWarden
12 лет назад

Хотелось, чтобы побольше было информации, а то я прочитал название и думаю:”Вот, сейчас найдем уйму всего полезного”. Но как то очень мало, не стоило на мой взгляд разбивать эту тему аж на 3 выпуска.

Please wait...
sdf
sdf
12 лет назад

про гоноверы вообще ни слова, хотя это и есть сердце ядра
что такое governor pegasusq так и не смог понять

Please wait...
Собака гав гав гав
Собака гав гав гав
12 лет назад

Также хотелось бы прочитать детальный инструктаж с фото и скринами. А то я совсем ничего не понимаю :P

Please wait...
Собака гав гав гав
Собака гав гав гав
12 лет назад

У меня вопрос – я обладатель HTC one s и через три месяца использования начал замечать подтормаживания и все в этом роде – очистка кэша не решает проблему. Вроде памяти достаточно, а два ядра все равно тормозят. Посоветуйте что делать, заранее всем благодарен!

Please wait...
cingularmen
cingularmen
12 лет назад

@Собака гав гав гав,дело в том, что в One S ставят 2 типа процессоров: новый S4 и старый S3(об этом на коробке не пишут к сожалению),скорее всего в вашей модели установлен именно S3, который намного менее производительный((
Как проверить написано здесь: http://4pda.ru/forum/index.php?showtopic=314510&st=820#entry14110270
P.S. Я сам был в шоке от тормозов One S когда смотрел в магазине, он лагал даже при прокрутке списка приложений)

Please wait...
Щ_Щ
Щ_Щ
12 лет назад

Судя по личному опыту, увеличение частоты процессора заметно только в бенчмарках, на играх это никак не сказывается.

Please wait...
kromuch
kromuch
12 лет назад
Ответ  Щ_Щ

@Щ_Щ, Поставь какую-нибудь тяжелую игруху, например Asphalt 7 и конфиги от SGS III, увидишь разницу.
Но если у тебя SGS III, то не увидишь:D.

Please wait...
Human
Human
12 лет назад

А сделайте отдельную рубрику про linux?

Please wait...
Алексей Коляда
Алексей Коляда
12 лет назад
Ответ  Human

@Human, это точно не нужно 95% аудитории :)

Please wait...
lnx
lnx
12 лет назад

да-да, инфа 146%

Please wait...
fastfid
fastfid
12 лет назад

Трудноперевариваемая статья, но очень полезная:-) спасибо)

Please wait...
MorFedor
MorFedor
12 лет назад

Вопрос. К кому можно обратиться, для создания хоть какого-нибудь кастома для Galaxy Tab P1010? Задолбал уже Android 2.3 на 7-ми дюймах. Очень хочется планшетного интерфейса 3.0 или 4+. Помогите :(

Please wait...
Izobara
Izobara
12 лет назад
Ответ  MorFedor

@morfedor, зайди на 4pda.ru – все кастомные прошивки там должны быть. Спроси у народа там.

Please wait...
LameWarden
LameWarden
12 лет назад
Ответ  MorFedor

@morfedor, А лучше сразу на xda-developers, там 100% будут нужные вам прошивки.

Please wait...
Grokhi
Grokhi
12 лет назад

Не знаю зачем везде ромоделы пихают сиях, на мой

Please wait...
Grokhi
Grokhi
12 лет назад
Ответ  Grokhi

@Grokhi, взгляд, отвратительное по энергосбережению ядро

Please wait...
sdf
sdf
12 лет назад
Ответ  Grokhi

@Grokhi, 4дня (+5часов экран) последнее ядро на с2 работает(сиях), а сколько ваш телефон работает?

Please wait...
Pavel
Pavel
12 лет назад
Ответ  sdf

@sdf, вы вобще телефоном пользуетесь? Или он лежит в дальнем угла в режиме плета?

Please wait...
ZagorniaMARY
ZagorniaMARY
11 лет назад
Ответ  Grokhi

[b]2004 cadillac srx owners manual – sam swope cadillac[/b]

Please wait...
Наверх