Google Android жүйесінде кәдімгі Linux ядросын пайдалану үстінде

Соңғы Linux Plumbers 2019 конференциясында Google деді дамуы туралы бастамалар Linux ядросында жасалған өзгерістерді негізгі Linux ядросына тасымалдау туралы ядро нұсқасы Android платформасы үшін. Түпкі мақсат - Android-арнайы тармаққа негізделген әрбір құрылғы үшін бөлек құрастыруларды дайындаудың орнына, Android жүйесіне бір ортақ ядроны пайдалануға мүмкіндік беру. Android жалпы ядросы. Бұл мақсатқа ішінара қол жеткізілді және конференцияда әдеттегі модификацияланбаған Linux ядросына негізделген микробағдарламасы бар Xiaomi Poco F1 Android смартфоны көрсетілді.

Жоба дайын болғаннан кейін жеткізушілерден негізгі Linux ядросына негізделген негізгі ядроны жеткізу сұралады. Жабдықты қолдауға арналған құрамдастарды жеткізушілер тек ядроға патчтарды қолданбай, қосымша ядро ​​модульдері түрінде жеткізеді. Модульдер ядро ​​таңбасының аттар кеңістігі деңгейіндегі негізгі ядромен үйлесімді болуы керек. Негізгі ядроға әсер ететін барлық өзгерістер жоғары ағынға жылжытылады. LTS тармақтарында меншікті модульдермен үйлесімділікті сақтау үшін ядро ​​API және ABI-ны тұрақты пішінде ұстау ұсынылады, ол әрбір жалпы ядро ​​тармағы үшін жаңартулармен модуль үйлесімділігін сақтайды.

Google Android жүйесінде кәдімгі Linux ядросын пайдалану үстінде

Бір жыл ішінде әртүрлі ресурстарды (CPU, жад, енгізу/шығару) алу үшін күту уақыты туралы ақпаратты талдауға арналған PSI (қысым туралы ақпарат) ішкі жүйесі және процессаралық байланысқа арналған BinderFS псевдофайлдық жүйесі сияқты мүмкіндіктер пайда болды. механизм негізгі Linux ядросына Android ядросының шығарылымынан тасымалданды.. Байланыстырушы және энергияны үнемдейтін тапсырмаларды жоспарлаушы EAS (Energy Aware Scheduling). Болашақта Android жүйесін нақты SchedTune жоспарлаушысынан cgroups2 және стандартты ядро ​​механизмдеріне негізделген ARM жүйесінде жасалған жаңа UtilClamp ішкі жүйесіне көшіру жоспарлануда.

Google Android жүйесінде кәдімгі Linux ядросын пайдалану үстінде

Еске салайық, осы уақытқа дейін Android платформасының ядросы бірнеше дайындық сатысынан өтті:

  • Негізгі LTS ядроларының (3.18, 4.4, 4.9 және 4.14) негізінде Android-қа тән патчтар тасымалданатын «Android Common Kernel» тармағы құрылды (бұрын өзгертулердің мөлшері бірнеше миллион жолға жетті, бірақ жақында болды. өзгертулер бірнеше мың код жолына дейін қысқартылды).
  • «Android Common Kernel» негізінде Qualcomm сияқты чип өндірушілері аппараттық құралдарды қолдауға арналған қондырмаларды қамтитын «SoC ядросын» құрады.
  • SoC ядросының негізінде құрылғы өндірушілері қосымша жабдықты, экрандарды, камераларды, дыбыстық жүйелерді және т.б. қолдауға қатысты өзгерістерді қамтитын Device Kernel құрды.

Google Android жүйесінде кәдімгі Linux ядросын пайдалану үстінде

Негізінде әрбір құрылғының өз ядросы болды, оны басқа құрылғыларда қолдануға болмайды. Мұндай схема осалдықтарды жою және жаңа ядро ​​тармақтарына көшу үшін жаңартуларды енгізуді айтарлықтай қиындатады. Мысалы, қазан айында шыққан ең жаңа Pixel 4 смартфоны екі жыл бұрын шыққан Linux ядросының 4.14 нұсқасымен жеткізіледі. Ішінара Google жүйені жылжыту арқылы техникалық қызмет көрсетуді жеңілдетуге тырысты Жоғары жиілік, өндірушілерге белгілі бір Android нұсқаларына және пайдаланылатын Linux ядросының шығарылымдарына байланысты емес әмбебап аппараттық қолдау құрамдастарын жасауға мүмкіндік береді. Treble Google-дан дайын жаңартуларды негіз ретінде пайдалануға, оларға белгілі бір құрылғыға тән құрамдастарды біріктіруге мүмкіндік береді.


Ақпарат көзі: opennet.ru

пікір қалдыру