Logo pl.androidermagazine.com
Logo pl.androidermagazine.com

Co to jest jądro?

Anonim

Co to jest jądro? Jeśli spędzasz czas na czytaniu forów, blogów, postów z instrukcjami dla Androida lub dyskusji online, wkrótce usłyszysz ludzi mówiących o jądrze. Jądro nie jest czymś wyjątkowym dla Androida - iOS i MacOS mają jeden, Windows ma jeden, BlackBerry QNX ma jeden, w rzeczywistości wszystkie systemy operacyjne wysokiego poziomu mają jeden. Interesuje nas Linux, ponieważ jest tym, którego używa Android. Spróbujmy rozbić, co to jest i co robi.

Urządzenia z Androidem używają jądra Linux, założę się, że każdy telefon używa własnej wersji. Opiekunowie jądra Linuksa dbają o to, aby wszystko było uporządkowane i dostępne, autorzy (np. Google) dodają lub zmieniają rzeczy, aby lepiej zaspokoić ich potrzeby, a także ludzie, którzy wnoszą wkład w sprzęt, ponieważ muszą opracować sterowniki sprzętu dla części, których używają do używają wersji jądra. Dlatego niezależni programiści i hakerzy Androida potrzebują trochę czasu, aby przenieść nowe wersje na starsze urządzenia i wszystko działa. Sterowniki napisane do pracy z jedną wersją jądra dla telefonu mogą nie działać z inną wersją oprogramowania na tym samym telefonie. Jest to ważne, ponieważ jedną z głównych funkcji jądra jest kontrola sprzętu. To dużo kodu źródłowego, z wieloma opcjami do budowania, niż można sobie wyobrazić, ale ostatecznie jest to tylko pośrednik między sprzętem a oprogramowaniem.

Gdy oprogramowanie potrzebuje sprzętu, aby cokolwiek zrobić, wysyła żądanie do jądra. A kiedy coś mówimy, mamy na myśli wszystko. Od jasności ekranu, przez poziom głośności, po inicjowanie połączenia przez radio, nawet to, co jest wyświetlane na wyświetlaczu, jest ostatecznie kontrolowane przez jądro. Na przykład - po dotknięciu przycisku wyszukiwania w telefonie informuje się oprogramowanie, aby otworzyło aplikację wyszukiwania. Dzieje się tak, że dotknąłeś określonego punktu na digitizerze, który informuje oprogramowanie, że dotknąłeś ekranu przy tych współrzędnych. Oprogramowanie wie, że po dotknięciu tego konkretnego miejsca powinno się otworzyć okno wyszukiwania. Jądro mówi digitizerowi, aby szukał (lub nasłuchiwał, zdarzeń jest „nasłuchiwanych”) pod kątem dotknięć, pomaga ustalić, gdzie dotknąłeś, i informuje system, którego dotknąłeś. Z kolei, gdy system odbiera zdarzenie dotykowe w określonym punkcie z jądra (poprzez sterownik), wie, co narysować na ekranie. Zarówno sprzęt, jak i oprogramowanie komunikują się z jądrem w obie strony, i dzięki temu telefon wie, kiedy coś zrobić. Dane wejściowe z jednej strony są przesyłane jako dane wyjściowe do drugiej, niezależnie od tego, czy grasz w Angry Birds, czy łączysz się z Bluetooth samochodu.

Brzmi skomplikowanie i tak jest. Ale jest to również dość standardowa logika komputerowa - dla każdego zdarzenia generowana jest pewnego rodzaju akcja, aw zależności od tej akcji dzieje się coś z uruchomionym oprogramowaniem. Bez jądra do akceptowania i wysyłania informacji programiści musieliby pisać kod dla każdego zdarzenia dla każdego elementu sprzętu w urządzeniu. W przypadku jądra wszystko, co muszą zrobić, to komunikować się z nim za pośrednictwem interfejsów API systemu Android, a programiści muszą tylko sprawić, aby sprzęt urządzenia komunikował się z jądrem. Dobrą rzeczą jest to, że nie musisz dokładnie wiedzieć, jak i dlaczego jądro robi to, co robi, samo zrozumienie, że jest to przejście między oprogramowaniem a sprzętem, daje całkiem niezłe pojęcie o tym, co dzieje się pod szkłem.

W pewnym sensie daje to zupełnie nowe spojrzenie na tych facetów, którzy nie śpią całą noc, pracując nad jądrem dla twojego telefonu, prawda?