Rilis Kernel Stabil & Pembaruan

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 mengalami kesulitan untuk selalu memperbarui kernel tanpa masukan dari komunitas kernel. Secara umum, upaya untuk menjaga keamanan masing-masing kernel dan dengan perbaikan bug terbaru merupakan upaya besar dan membingungkan yang dilakukan oleh banyak individu.

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 rilis. Misalnya, kernel 4.4 dirilis oleh Linus, 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 jika mengacu pada pohon rilis kernel yang stabil. Setiap pohon rilis kernel stabil dikelola oleh satu pengembang kernel, yang bertanggung jawab untuk memilih patch yang diperlukan untuk rilis dan mengelola proses peninjauan/rilis.

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

Kernel stabil jangka panjang

Setelah satu tahun proses rilis stabil baru ini, ditentukan bahwa banyak pengguna Linux yang berbeda menginginkan kernel didukung lebih dari beberapa bulan saja. 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 dipilih setahun sekali dan komunitas kernel memelihara kernel tersebut selama beberapa waktu. 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 kernel tersebut, dan berapa lama kernel tersebut akan dipertahankan, dapat ditemukan di halaman rilis kernel.org .

Rilis kernel LTS rata-rata menerima 6-8 patch per hari, sedangkan rilis kernel stabil normal berisi 10-15 patch per hari. Jumlah patch berfluktuasi per rilis berdasarkan waktu rilis kernel pengembangan saat ini, dan variabel eksternal lainnya. Semakin lama kernel LTS, semakin sedikit patch yang dapat diterapkan karena banyak perbaikan bug terbaru yang tidak relevan dengan kernel lama. Namun, semakin tua suatu kernel, semakin sulit untuk melakukan backport terhadap perubahan yang perlu diterapkan, karena perubahan dalam basis kode. Jadi meskipun jumlah keseluruhan patch yang diterapkan mungkin lebih sedikit, upaya yang diperlukan untuk memelihara kernel LTS lebih besar daripada mempertahankan kernel stabil normal.

Aturan patch kernel yang stabil

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

  • Jelas harus benar dan teruji.
  • Tidak boleh lebih besar dari 100 baris.
  • Harus memperbaiki hanya satu hal.
  • Harus memperbaiki sesuatu yang dilaporkan sebagai masalah.
  • Dapat berupa id perangkat baru atau kekhasan perangkat keras, namun tidak menambahkan fungsionalitas baru yang besar.
  • Harus sudah digabungkan ke dalam pohon Linus Torvalds.

Aturan terakhir, "Harus digabungkan ke dalam pohon Linus Torvalds", mencegah komunitas kernel kehilangan perbaikan. Komunitas tidak pernah menginginkan perbaikan untuk rilis kernel stabil yang belum ada di pohon Linus Torvalds, sehingga siapa pun yang melakukan upgrade tidak akan pernah melihat regresi. Hal ini mencegah banyak masalah yang mungkin dialami oleh proyek lain yang mempertahankan cabang yang stabil dan berkembang.

Pembaruan kernel

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

Janji ini berlaku baik untuk pembaruan kernel stabil tambahan, maupun pembaruan besar yang lebih besar yang terjadi setiap tiga bulan. Namun, komunitas kernel hanya dapat memberikan 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 akan pernah direncanakan, atau bahkan dipertimbangkan.

Perangkat berbasis Linux yang memiliki set patch 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 diketahui memiliki masalah saat memperbarui ke kernel yang lebih baru karena ukurannya yang besar dan banyak modifikasi arsitektur spesifik, dan terkadang kode kernel inti. Akibatnya, sebagian besar vendor SoC mulai melakukan standarisasi 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 menyatakan perubahan spesifik sebagai perbaikan keamanan . Hal ini disebabkan oleh masalah mendasar yaitu sulitnya menentukan apakah perbaikan bug merupakan perbaikan keamanan atau bukan pada saat pembuatan. Selain itu, banyak perbaikan bug yang baru ditentukan terkait keamanan setelah sekian lama berlalu, sehingga komunitas kernel sangat menganjurkan untuk selalu mengambil semua perbaikan bug yang dirilis.

Ketika masalah keamanan dilaporkan ke komunitas kernel, masalah tersebut diperbaiki sesegera mungkin dan disebarkan secara publik ke pohon pengembangan dan rilis stabil. Seperti dijelaskan di atas, perubahan ini 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 rincian tentang pelaporan bug keamanan ke komunitas kernel agar bug tersebut teratasi dan diperbaiki sesegera mungkin, lihat Bug keamanan dalam panduan pengguna dan administrator kernel Linux di www.kernel.org .

Karena bug keamanan tidak diumumkan ke 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 menerapkan perangkat yang menggunakan Linux, sangat disarankan agar semua pembaruan kernel LTS diambil oleh produsen dan diberikan kepada penggunanya setelah pengujian yang tepat menunjukkan bahwa pembaruan tersebut berfungsi dengan baik. Ini mempunyai beberapa keuntungan:

  • Rilisan telah ditinjau oleh pengembang kernel secara keseluruhan, bukan masing-masing bagian.
  • Sulit, bahkan mustahil, 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 belum diketahui.
  • Jika pengujian menunjukkan adanya masalah, komunitas pengembang kernel akan bereaksi cepat untuk menyelesaikan masalah tersebut.
  • Upaya memfilter hanya perubahan yang Anda jalankan akan menghasilkan pohon kernel yang tidak mungkin digabungkan dengan benar dengan rilis upstream mendatang.