Logo uk.androidermagazine.com
Logo uk.androidermagazine.com

Що таке ядро?

Anonim

Що таке ядро? Якщо ви проводите будь-який час за читанням форумів, блогів, повідомлень про інтерактивне повідомлення або Інтернет-дискусій для Android, незабаром ви почуєте людей, які говорять про ядро. Ядро не є чимось унікальним для Android - iOS та MacOS мають одне, у Windows - одне, у QNX у BlackBerry - одне, насправді у всіх операційних системах високого рівня є. Той, що нас цікавить, - це Linux, оскільки він використовує Android. Спробуємо розбити, що це таке і що він робить.

На пристроях Android використовується ядро ​​Linux, будь-який телефон використовує власну його версію. Сервісні сердечники Linux зберігають все в порядку та доступності, дописувачі (як Google) додають або змінюють речі, щоб краще задовольнити їхні потреби, а також люди, які роблять апаратне забезпечення, також сприяють тому, що їм потрібно розробити драйвери апаратного забезпечення для частин, які вони використовують для версія ядра, яку вони використовують. Ось чому незалежним розробникам та хакерам Android потрібен певний час, щоб передати нові версії на старіші пристрої та все працювати. Драйвери, написані для роботи з однією версією ядра телефону, можуть не працювати з іншою версією програмного забезпечення на одному телефоні. І це важливо, адже одна з головних функцій ядра - це управління обладнанням. Це велика кількість вихідного коду, з його створенням більше варіантів, ніж ви можете собі уявити, але врешті-решт це лише посередник між апаратним забезпеченням та програмним забезпеченням.

Коли програмному забезпеченню потрібне обладнання, щоб зробити що-небудь, воно надсилає запит до ядра. І коли ми щось говоримо, ми маємо на увазі все, що завгодно. Від яскравості екрану, до рівня гучності, до ініціювання дзвінка по радіо, навіть те, що намальовано на дисплеї, в кінцевому підсумку контролюється ядром. Наприклад - коли ви натискаєте кнопку пошуку на телефоні, ви скажете програмному забезпеченню відкрити пошукову програму. Що трапляється, це те, що ви торкнулися певної точки дигітайзера, яка повідомляє програмне забезпечення, яке ви торкнулися екрана за цими координатами. Програмне забезпечення знає, що при торканні до цього конкретного місця слід відкрити діалогове вікно пошуку. Ядро - це те, що спонукає дигітайзер шукати (або слухати, події "слухаються") для дотиків, допомагає з'ясувати, куди ви торкнулися, та повідомляє системі, яку ви торкнулися. У свою чергу, коли система отримує сенсорну подію в певній точці від ядра (через драйвер), вона знає, що намалювати на екрані. І апаратне, і програмне забезпечення взаємодіють з ядром обома способами, і саме тому ваш телефон знає, коли щось робити. Вхід з однієї сторони надсилається як вихід на інший, будь то граєш у Angry Birds або підключаєшся до Bluetooth автомобіля.

Це звучить складно, і це так. Але це також досить стандартна комп'ютерна логіка - для кожної події генерується певна дія, і залежно від цієї дії відбувається з запущеним програмним забезпеченням. Без ядра, щоб прийняти та надіслати інформацію, розробникам доведеться писати код для кожної події для кожного обладнання на вашому пристрої. З ядром все, що їм потрібно зробити, - це спілкуватися з ним через API системи Android, а розробникам обладнання потрібно лише змусити апаратне забезпечення пристрою спілкуватися з ядром. Хороша річ у тому, що вам не потрібно точно знати, як і чому ядро ​​робить те, що робить, просто розуміючи, що це перехід від програмного забезпечення до апаратного забезпечення дає вам досить гарне розуміння того, що відбувається під склом.

Сорт дає абсолютно новий погляд на тих людей, які цілу ніч залишаються на роботі, щоб працювати над ядрами для вашого телефону, чи не так?