Rilis & Pembaruan Kernel Stabil

Model rilis stabil kernel Linux dimulai pada tahun 2005, ketika ditentukan bahwa model pengembangan kernel yang ada (rilis baru setiap 2-3 bulan) tidak memenuhi kebutuhan sebagian besar pengguna. Pengguna menginginkan perbaikan bug dilakukan selama 2-3 bulan tersebut, dan distribusi Linux merasa sulit untuk menjaga kernel tetap up to date tanpa umpan balik dari komunitas kernel. Secara umum, upaya untuk menjaga kernel individu tetap aman dan dengan perbaikan bug terbaru adalah upaya besar dan membingungkan oleh banyak individu yang berbeda.

Rilis kernel yang stabil didasarkan langsung pada rilis Linus Torvalds, dan dirilis setiap minggu atau lebih, tergantung pada berbagai faktor eksternal (waktu dalam setahun, patch yang tersedia, beban kerja pengelola, dll.). Penomoran rilis stabil dimulai dengan nomor rilis kernel, dan nomor tambahan ditambahkan di akhir. Misalnya, kernel 4.4 dirilis oleh Linus, dan kemudian rilis kernel stabil berdasarkan kernel ini diberi nomor 4.4.1, 4.4.2, 4.4.3, dan seterusnya. Urutan ini biasanya disingkat dengan angka 4.4.y ketika mengacu pada pohon rilis kernel yang stabil. Setiap pohon rilis kernel yang stabil dikelola oleh pengembang kernel tunggal, yang bertanggung jawab untuk memilih patch yang diperlukan untuk rilis dan mengelola proses peninjauan/rilis.

Kernel yang stabil dipertahankan selama siklus pengembangan saat ini. Setelah Linus merilis kernel baru, pohon rilis kernel stabil sebelumnya dihentikan dan pengguna harus pindah ke kernel yang dirilis lebih baru.

Kernel stabil jangka panjang

Setelah satu tahun proses rilis baru yang stabil ini, diputuskan bahwa banyak pengguna Linux yang berbeda menginginkan kernel untuk didukung lebih dari beberapa bulan. Sebagai tanggapan, rilis kernel Long Term Supported (LTS) dibuat, dengan kernel LTS pertama (2.6.16) dirilis pada tahun 2006. Sejak itu, kernel LTS baru telah dipilih setahun sekali dan komunitas kernel mempertahankan kernel tersebut untuk jangka waktu yang lama. minimal 2 tahun.

Pada saat penulisan ini, kernel LTS adalah rilis 4.4.y, 4.9.y, 4.14.y, 4.19.y, 5.4.y, dan 5.10.y. Kernel baru dirilis setiap minggu. Karena kebutuhan beberapa pengguna dan distribusi, beberapa kernel lama tambahan dikelola oleh pengembang kernel pada siklus rilis yang lebih lambat. Informasi tentang semua kernel stabil jangka panjang, siapa yang bertanggung jawab atas mereka, dan berapa lama mereka akan dipelihara, dapat ditemukan di halaman rilis kernel.org .

Kernel LTS merilis rata-rata 6-8 patch yang diterima per hari, sedangkan rilis kernel stabil normal berisi 10-15 patch per hari. Jumlah patch berfluktuasi per rilis mengingat waktu saat ini dari rilis kernel pengembangan yang sesuai, dan variabel eksternal lainnya. Semakin tua kernel LTS, semakin sedikit tambalan yang dapat diterapkan karena banyak perbaikan bug terbaru tidak relevan dengan kernel lama. Namun, semakin tua kernel, semakin sulit untuk mendukung perubahan yang diperlukan untuk diterapkan, karena perubahan dalam basis kode. Jadi walaupun mungkin ada lebih sedikit keseluruhan patch yang diterapkan, upaya yang terlibat dalam memelihara kernel LTS lebih besar daripada mempertahankan kernel stabil normal.

Aturan patch kernel yang stabil

Aturan untuk apa yang dapat ditambahkan ke rilis kernel yang stabil tetap hampir sama sejak diperkenalkan dan dirangkum di bawah ini:

  • Harus jelas benar dan teruji.
  • Tidak boleh lebih besar dari 100 baris.
  • Harus memperbaiki hanya satu hal.
  • Harus memperbaiki sesuatu yang telah dilaporkan menjadi masalah.
  • Dapat berupa id perangkat baru atau quirk untuk perangkat keras, tetapi tidak menambah fungsionalitas baru yang utama.
  • Harus sudah digabungkan ke dalam pohon Linus Torvalds.

Aturan terakhir, "Harus sudah digabungkan ke dalam pohon Linus Torvalds", mencegah komunitas kernel kehilangan perbaikan. Komunitas tidak pernah menginginkan perbaikan untuk masuk ke rilis kernel stabil yang belum ada di pohon Linus Torvalds, sehingga siapa pun yang memutakhirkan tidak akan pernah melihat regresi. Ini mencegah banyak masalah yang dapat dimiliki oleh proyek lain yang mempertahankan stabil dan cabang pengembangan.

Pembaruan kernel

Komunitas kernel Linux telah berjanji kepada basis penggunanya bahwa tidak ada peningkatan yang akan merusak apa pun yang saat ini berfungsi di rilis sebelumnya. Janji itu masih berlaku sampai sekarang. Regresi memang terjadi, tetapi itu adalah bug dengan prioritas tertinggi dan diperbaiki dengan cepat, atau perubahan yang menyebabkan regresi dengan cepat dikembalikan dari pohon kernel Linux.

Janji ini berlaku untuk pembaruan kernel stabil tambahan, serta pembaruan besar yang lebih besar yang terjadi setiap tiga bulan. Namun, komunitas kernel hanya dapat membuat janji ini untuk kode yang digabungkan ke dalam pohon kernel Linux. Kode apa pun yang digabungkan ke dalam kernel perangkat yang tidak ada dalam rilis kernel.org tidak diketahui dan interaksi dengannya tidak pernah dapat direncanakan, atau bahkan dipertimbangkan.

Perangkat berbasis Linux yang memiliki set tambalan besar dapat mengalami masalah besar saat memperbarui ke kernel yang lebih baru, karena banyaknya perubahan di antara setiap rilis (10-14 ribu perubahan per rilis). Patchset SoC secara khusus diketahui memiliki masalah dengan pembaruan ke kernel yang lebih baru karena ukurannya yang besar dan modifikasi berat dari arsitektur spesifik, dan terkadang inti, kode kernel. Akibatnya, sebagian besar vendor SoC mulai menstandarisasi penggunaan rilis LTS untuk perangkat mereka, memungkinkan perangkat tersebut menerima pembaruan bug dan keamanan langsung dari komunitas kernel Linux.

Keamanan

Saat melakukan rilis kernel, komunitas kernel Linux hampir tidak pernah mendeklarasikan perubahan spesifik sebagai perbaikan keamanan . Hal ini disebabkan masalah dasar yaitu kesulitan dalam menentukan apakah perbaikan bug merupakan perbaikan keamanan atau tidak pada saat pembuatan. Selain itu, banyak perbaikan bug hanya ditentukan terkait keamanan setelah sekian lama berlalu, sehingga komunitas kernel sangat menyarankan untuk selalu mengambil semua perbaikan bug yang dirilis.

Ketika masalah keamanan dilaporkan ke komunitas kernel, masalah tersebut diperbaiki sesegera mungkin dan dikeluarkan secara publik ke pohon pengembangan dan rilis stabil. Seperti dijelaskan di atas, perubahan hampir tidak pernah digambarkan sebagai "perbaikan keamanan", melainkan terlihat seperti perbaikan bug lainnya untuk kernel. Hal ini dilakukan agar pihak yang terkena dampak dapat memperbarui sistem mereka sebelum pelapor masalah mengumumkannya.

Untuk detail tentang pelaporan bug keamanan ke komunitas kernel untuk menyelesaikannya dan memperbaikinya sesegera mungkin, lihat Bug keamanan di Panduan pengguna dan administrator kernel Linux di www.kernel.org .

Karena bug keamanan tidak diumumkan kepada publik oleh tim kernel, nomor CVE untuk masalah terkait kernel Linux biasanya dirilis berminggu-minggu, berbulan-bulan, dan terkadang bertahun-tahun setelah perbaikan digabungkan ke dalam cabang stabil dan pengembangan.

Menjaga sistem yang aman

Saat menggunakan perangkat yang menggunakan Linux, sangat disarankan agar semua pembaruan kernel LTS diambil oleh pabrikan dan diberikan kepada penggunanya setelah pengujian yang tepat menunjukkan bahwa pembaruan berfungsi dengan baik. Ini memiliki beberapa keuntungan:

  • Rilis telah ditinjau oleh pengembang kernel secara keseluruhan, bukan di bagian individual.
  • Sulit, jika bukan tidak mungkin, untuk menentukan patch mana yang memperbaiki masalah "keamanan" dan mana yang tidak. Hampir setiap rilis LTS berisi setidaknya satu perbaikan keamanan yang diketahui, dan banyak lagi yang "tidak diketahui".
  • Jika pengujian menunjukkan masalah, komunitas pengembang kernel akan bereaksi dengan cepat untuk menyelesaikan masalah tersebut.
  • Upaya untuk memfilter hanya perubahan yang Anda jalankan akan menghasilkan pohon kernel yang tidak mungkin digabungkan dengan benar dengan rilis upstream mendatang.