Logo hr.androidermagazine.com
Logo hr.androidermagazine.com

Što je kernel?

Anonim

Što je kernel? Ako provodite bilo koje vrijeme čitajući Android forume, blogove, postove sa uputama ili internetsku raspravu, uskoro ćete čuti ljude koji pričaju o kernelu. Kernel nije nešto jedinstveno za Android - iOS i MacOS ga imaju, Windows ima jedan, BlackBerryjev QNX ga ima, u stvari svi operativni sustavi visoke razine imaju ga. Ono što nas zanima je Linux, jer je on Android koji koristi. Pokušajmo razbiti što je to i što čini.

Android uređaji koriste Linux kernel, kladite se da svaki telefon koristi svoju verziju. Linux održavači kernela drže sve uredno i dostupno, saradnici (poput Googlea) dodaju ili mijenjaju stvari kako bi bolje zadovoljili njihove potrebe, a i ljudi koji daju hardver doprinose, jer trebaju razviti upravljačke programe hardvera za dijelove koje koriste za verziju kernela koju koriste. Zbog toga je potrebno neko vrijeme da neovisni Android programeri i hakeri prenesu nove verzije na starije uređaje i sve omoguće. Vozači napisani za rad s jednom verzijom kernela za telefon možda neće raditi s drugom verzijom softvera na istom telefonu. I to je važno, jer jedna od glavnih funkcija kernela je kontrola hardvera. To je puno izvornog koda, s više opcija dok ga izrađujete nego što možete zamisliti, ali na kraju je to samo posrednik između hardvera i softvera.

Kad softver treba hardver da učini bilo što, on šalje zahtjev kernelu. A kad kažemo bilo što, mislimo bilo što. Od svjetline zaslona, ​​razine glasnoće, do upućivanja poziva putem radija, čak i ono što se nacrta na zaslonu u konačnici kontrolira kernel. Na primjer - kada dodirnete gumb za pretraživanje na telefonu, softveru kažete da otvori aplikaciju za pretraživanje. Dogodilo se da ste dodirnuli određenu točku na digitalizatoru, koja softveru govori da ste dodirnuli zaslon na tim koordinatama. Softver zna da kada se dodirne to određeno mjesto, dijalog za pretraživanje trebao bi se otvoriti. Kernel je ono što govori digitalizatoru da gleda (ili sluša, događaji se "slušaju") za dodire, pomaže shvatiti gdje ste dodirnuli i govori sustavu kojeg ste ga dotakli. Zauzvrat, kada sustav primi dodirni događaj u određenoj točki od kernela (preko upravljačkog programa), zna što crtati na vašem zaslonu. I hardver i softver komuniciraju s kernelom na oba načina i to je način na koji vaš telefon zna kada nešto učiniti. Ulaz s jedne strane šalje se kao izlaz na drugu, bilo da igrate Ljute ptice ili povezujete se putem Bluetooth-a vašeg automobila.

Zvuči komplicirano, i jest. Ali to je i prilično standardna računalna logika - postoji akcija koja se generira za svaki događaj, a ovisno o toj radnji stvari se događaju s pokrenutim softverom. Bez kernela da prihvati i pošalje informacije, programeri će morati upisati kod za svaki pojedinačni događaj za svaki pojedinačni hardver u vašem uređaju. S kernelom je jedino što trebate komunicirati s njim putem API-ja Android sustava, a proizvođači hardvera moraju učiniti da hardver uređaja komunicira s kernelom. Dobra stvar je što ne trebate znati točno kako i zašto kernel radi ono što radi, samo razumijevanje da je to prijelaz između softvera i hardvera daje prilično dobro razumijevanje onoga što se događa ispod čaše.

Neka vrsta daje potpuno nove izglede onima koji ostaju budni cijelu noć da bi radili na kernelima za vaš telefon, zar ne?