Luangkan cukup waktu di Android, kamu akan menemukan istilah, “kernel Linux.” Android juga menggunakan kernel Linux. Sebenarnya, ini adalah bagian integral dari cara kerja ponsel kamu, tetapi apa itu?
Bagian “Linux” cukup mudah untuk dipahami ini adalah permainan kata antara Linus dan Unix, seperti di Linus Torvalds, pencipta asli OS mirip Unix yang kami sebut Linux. Tapi inti? Apa itu kernel di komputer dan perangkat lain? Apa yang dimaksud dengan kernel Linux? Mari cari tahu!
Singkatnya, kernel adalah program inti yang mengelola sumber daya CPU ponsel kamu, memori sistem, dan perangkat sistem (termasuk sistem file dan jaringan). Itu juga bertanggung jawab untuk mengelola semua proses atau tugas yang berjalan di ponsel cerdas kamu.
Artinya, saat kamu memulai aplikasi, kernellah yang memuat aplikasi ke dalam memori, membuat proses yang diperlukan, dan menjalankan aplikasi. Saat aplikasi membutuhkan memori, kernellah yang mengalokasikannya. Saat aplikasi menginginkan jaringan, kernellah yang melakukan semua pemrosesan tingkat rendah.
Driver untuk perangkat seperti Bluetooth juga ada di kernel. Saat aplikasi ingin melakukan tugas di latar belakang, kernellah yang menangani utas latar belakang. Saat aplikasi ditutup, kernellah yang membersihkan semua memori dan sumber daya lain yang digunakan oleh aplikasi.
Seperti yang kamu lihat, kernel adalah bagian mendasar yang memastikan ponsel Android kamu benar-benar melakukan apa yang kamu harapkan.
Apa Itu Kernel?
Semua sistem operasi multi-tugas memiliki kernel dari satu bentuk atau lainnya. Windows memiliki kernel, OS X memiliki kernel, iOS memiliki kernel, dan tentu saja Android memiliki kernel. Namun dari semua itu, hanya Android yang menggunakan kernel Linux.
Windows memiliki kernelnya sendiri, sering disebut sebagai kernel NT, sedangkan OS X dan iOS menggunakan kernel yang dikenal sebagai Darwin. Ada kernel lain di luar sana, termasuk kernel mirip Unix dari proyek FreeBSD, OpenBSD, dan NetBSD.
Kernel real-time dari proyek seperti FreeRTOS, kernel tertanam dari proyek seperti Zephyr dan bahkan kernel berdaya rendah seperti kernel mbed OS dari Arm. Artinya, perangkat komputasi apa pun mulai dari IOT atau perangkat yang dapat dikenakan hingga superkomputer menggunakan kernel.
Kernel Linux adalah perangkat lunak yang kompleks. Ini berisi jutaan baris kode sumber. Itu termasuk semua driver (mayoritas kode) ditambah dukungan untuk arsitektur sistem yang berbeda (ARM, x86, RISC-V, PowerPC, dll).
Ketika kernel dibuat untuk perangkat tertentu, katakanlah smartphone, tidak semua kode sumber tersebut digunakan, namun bahkan ketika kamu menghapus apa yang tidak diperlukan untuk build tertentu, itu masih kompleks.
Perusahaan Smartphone Mengubah Kernel?
Karena keragaman perangkat Android yang luas, kernel yang berjalan pada setiap merek dan model akan sedikit berbeda. Akan ada driver khusus untuk SoC, serta untuk modul lain seperti GPS, audio, dll.
Setiap pembuat smartphone akan bekerja sama dengan penyedia SoC (Qualcomm, MediaTek, dll) untuk mengonfigurasi kernel dengan cara yang paling optimal untuk semua model tertentu.
Ini berarti bahwa pembuat ponsel cerdas akan sering mengerjakan fitur khusus perangkat, mengesampingkan konfigurasi kernel umum, dan menambahkan driver baru ke kernel Linux.
Contoh bagus dari tweak umum adalah penjadwal CPU. Ketika kernel perlu memutuskan tugas mana yang harus dijalankan selanjutnya, dan pada inti CPU mana, ia menggunakan penjadwal. Sebagian besar smartphone Android adalah sistem multi-prosesor heterogen (HMP).
Itu berarti tidak semua inti dalam prosesor itu sama. Beberapa berkinerja tinggi, sementara yang lain menawarkan efisiensi energi yang lebih besar. Menggunakan Energy-Aware Scheduler (EAS), kernel dapat memprediksi dampak keputusannya pada energi yang dikonsumsi oleh CPU, serta tingkat kinerja yang tersedia.
Parameter untuk EAS dapat diubah oleh pembuat smartphone untuk mendukung kinerja yang lebih baik saat menggunakan lebih banyak energi, atau kinerja yang lebih rendah sambil menghemat baterai. Pembuat smartphone juga memiliki opsi untuk mengganti penjadwal dengan salah satu rancangan mereka sendiri.
Setiap pembuat smartphone berusaha untuk mengonfigurasi kernel dengan cara terbaik untuk mengaktifkan semua fitur yang diperlukan sambil menawarkan kinerja terbaik dengan efisiensi setinggi mungkin. Bersama dengan pembuat SoC, ada insinyur yang bekerja untuk menyempurnakan perangkat lunak untuk mendapatkan hasil maksimal dari perangkat keras.
Karena itu, pembuat ponsel cerdas tidak luput dari membuat kesalahan atau membuat keputusan buruk tentang cara mereka mengonfigurasi kernel Linux. OEM diketahui menggunakan pengaturan yang terlalu agresif dalam mengejar masa pakai baterai yang baik.
Misalnya, OnePlus kedapatan membatasi kinerja OnePlus 9 Pro untuk menghemat masa pakai baterai, sementara yang lain diketahui menipu dan secara artifisial meningkatkan kinerja CPU saat benchmark sedang berjalan.
Masa Depan Android
Salah satu sisi negatif dari kesuksesan Linux adalah ia berubah dengan cepat. Untuk memberikan tingkat stabilitas, ada versi kernel Long Term Support (LTS) yang didukung selama beberapa tahun. Android Common Kernels (ACKs) diambil dari kernel Linux utama dan menyertakan patch khusus untuk Android.
Dimulai dengan Android 11, ACK digunakan untuk membuat Gambar Kernel Generik (GKI). Ini adalah kernel Arm 64-bit yang dapat digunakan pada perangkat apa pun, jika SoC dan dukungan driver diimplementasikan dalam modul vendor.
Idenya adalah untuk mengatasi masalah fragmentasi kernel dengan menyatukan kernel inti dan memindahkan bagian-bagian khusus SoC keluar dari kernel dan ke dalam modul yang dapat dimuat. Hal ini pada gilirannya akan mengurangi beban pemeliharaan kernel untuk OEM, sambil memisahkan komponen khusus perangkat keras dari kernel inti.
Android 12 melihat rilis pertama dari beberapa perangkat dengan kernel GKI. Google telah berkomitmen untuk secara teratur merilis gambar boot yang ditandatangani dengan perbaikan bug penting. Karena stabilitas biner yang ditawarkan oleh GKI (Generic Karnel Image), image ini dapat diinstal tanpa perubahan pada image vendor.
GKI 2.0 diperkenalkan di Android 12 untuk perangkat yang dikirimkan dengan kernel Linux 5.10 (atau lebih baru). GKI 2.0 bertujuan untuk mengirimkan kernel yang tidak memperkenalkan kinerja atau regresi daya yang signifikan.
Ini memungkinkan mitra Google untuk memberikan perbaikan keamanan kernel dan perbaikan bug tanpa keterlibatan vendor, dan memungkinkan satu biner kernel GKI per arsitektur. Kemungkinan perangkat Android 13 juga akan dikirimkan dengan setidaknya kernel Linux 5.10.
Hasilnya adalah peningkatan cara Google merilis kernel Linux yang lebih baru untuk penggunaan umum, yang pada gilirannya akan membantu meningkatkan keamanan, dan berpotensi meningkatkan jumlah tahun perangkat menerima pembaruan dan perbaikan jari disilangkan.
Baca juga: