9 Pelajaran Dari 25 Tahun Pengembangan Kernel Linux

9 Pelajaran Dari 25 Tahun Pengembangan Kernel Linux – Karena komunitas kernel Linux merayakan seperempat abad pengembangan pada tahun 2016, banyak orang bertanya kepada kami rahasia umur panjang dan kesuksesan proyek. Saya biasanya tertawa dan bercanda bahwa kami benar-benar tidak tahu bagaimana kami sampai di sini. Proyek ini telah menghadapi banyak ketidaksepakatan dan tantangan di sepanjang jalan. Tapi sungguh, alasan kami sampai sejauh ini sangat berkaitan dengan kapasitas komunitas untuk introspeksi dan perubahan.

9 Pelajaran Dari 25 Tahun Pengembangan Kernel Linux

opensourcealternative – Sekitar 16 tahun yang lalu, sebagian besar pengembang kernel belum pernah bertemu satu sama lain secara langsung kami hanya pernah berinteraksi melalui email jadi Ted T’so memunculkan ide tentang Kernel Summit . Sekarang setiap tahun pengembang kernel membuat titik untuk berkumpul secara langsung untuk menyelesaikan masalah teknis dan, yang terpenting, untuk meninjau apa yang kami lakukan dengan benar dan apa yang kami lakukan salah selama setahun terakhir.

Baca Juga : 5 Aplikasi Terbaik Yang Membayar Anda Untuk Menonton Video Online

Pengembang dapat secara terbuka dan jujur ​​​​mendiskusikan bagaimana mereka berinteraksi satu sama lain dan bagaimana proses pengembangan bekerja. Dan kemudian kami membuat perubahan yang meningkatkan proses. Kami membuat alat baru, seperti Git , dan terus mengubah cara kami bekerja sama.

Seiring waktu, evolusi ini telah menciptakan ketahanan yang memungkinkan proyek beralih dari satu kekuatan ke kekuatan berikutnya sambil menghindari percabangan yang telah membagi sumber daya proyek yang bersaing. Mungkin perlu bertahun-tahun sebelum kita benar-benar memahami kunci keberhasilan kernel Linux, tetapi ada beberapa pelajaran yang menonjol bahkan sampai sekarang.

1. Siklus rilis pendek itu penting.

Pada hari-hari awal proyek Linux, rilis kernel utama baru hanya datang setiap beberapa tahun sekali. Itu berarti penundaan yang cukup lama dalam memberikan fitur baru kepada pengguna, yang membuat frustrasi pengguna dan distributor. Namun, yang lebih penting, siklus yang begitu panjang berarti sejumlah besar kode harus diintegrasikan sekaligus, dan ada banyak tekanan untuk memasukkan kode ke rilis berikutnya, bahkan jika itu belum siap.

Siklus pendek mengatasi semua masalah ini. Kode baru dengan cepat tersedia dalam rilis stabil. Mengintegrasikan kode baru hampir secara konstan memungkinkan untuk membawa bahkan perubahan mendasar dengan gangguan minimal. Dan pengembang tahu bahwa jika mereka melewatkan satu siklus rilis, akan ada siklus rilis lainnya dalam dua bulan, jadi hanya ada sedikit insentif untuk mencoba menggabungkan kode sebelum waktunya.

2. Skalabilitas proses membutuhkan model pengembangan hirarkis terdistribusi.

Dahulu kala, semua perubahan dilakukan langsung ke Linus Torvalds, tetapi itu dengan cepat terbukti berat karena tidak ada satu orang pun yang dapat mengikuti proyek yang beragam seperti kernel sistem operasi. Sangat awal gagasan tentang pengelola berbagai area kernel muncul, di mana tanggung jawab sebagian kernel diberikan kepada seseorang yang akrab dengan area tersebut.

Contohnya adalah jaringan, nirkabel, subsistem driver yang berbeda seperti PCI atau USB, atau sistem file individu yang berbeda seperti ext2 atau vfat. Menyebarkan tanggung jawab untuk tinjauan kode dan integrasi ke ratusan pengelola memberi proyek sumber daya untuk mengatasi puluhan ribu perubahan per rilis, tanpa mengorbankan tinjauan atau kualitas.

3. Alat penting.

Pengembangan kernel berjuang untuk menskalakan hingga munculnya sistem manajemen kode sumber BitKeeper mengubah praktik komunitas hampir dalam semalam; peralihan ke Git menghasilkan lompatan maju lainnya. Tanpa alat yang tepat, proyek seperti kernel tidak akan dapat berfungsi tanpa runtuh karena bobotnya sendiri.

4. Model kernel yang sangat berorientasi konsensus adalah penting.

Sebagai aturan umum, perubahan yang diusulkan tidak akan digabungkan jika pengembang yang disegani menentangnya. Ini bisa sangat membuat frustasi pengembang yang menemukan kode yang telah mereka blokir berbulan-bulan di milis.

Tapi itu juga memastikan bahwa kernel tetap cocok untuk berbagai macam pengguna dan masalah. Tidak ada komunitas pengguna tertentu yang dapat membuat perubahan dengan mengorbankan kelompok lain. Hasilnya, kami memiliki basis kode tunggal yang berskala dari sistem kecil hingga superkomputer dan cocok untuk berbagai penggunaan.

5. Aturan “tanpa regresi” yang kuat dari kernel juga penting.

Lebih dari satu dekade yang lalu, komunitas pengembang kernel berjanji bahwa jika kernel tertentu bekerja dalam pengaturan tertentu, semua kernel berikutnya juga akan bekerja di sana. Jika komunitas mengetahui bahwa perubahan menyebabkan kemunduran, mereka bekerja sangat cepat untuk mengatasi masalah tersebut. Aturan tersebut memberikan jaminan kepada pengguna bahwa pemutakhiran tidak akan merusak sistem mereka; sebagai hasilnya, mereka bersedia mengikuti kernel saat mengembangkan kemampuan baru.

6. Partisipasi perusahaan dalam proses sangat penting, tetapi tidak ada satu perusahaan pun yang mendominasi pengembangan kernel.

Sekitar 5.062 pengembang individu yang mewakili hampir 500 perusahaan telah berkontribusi pada kernel Linux sejak rilis 3.18 pada Desember 2014. Sebagian besar pengembang dibayar untuk pekerjaan mereka—dan perubahan yang mereka buat berguna bagi perusahaan tempat mereka bekerja.

Namun, meskipun setiap perusahaan dapat meningkatkan kernel untuk kebutuhan spesifiknya, tidak ada perusahaan yang dapat mengarahkan pengembangan ke arah yang merugikan orang lain atau membatasi apa yang dapat dilakukan oleh kernel.

7. Seharusnya tidak ada batasan internal di dalam proyek.

Pengembang kernel harus fokus pada bagian tertentu dari kernel, tetapi pengembang mana pun dapat membuat perubahan pada bagian mana pun dari kernel jika perubahan itu dapat dibenarkan. Akibatnya, masalah diperbaiki di tempat asalnya alih-alih diselesaikan, pengembang memiliki pandangan yang lebih luas tentang kernel secara keseluruhan, dan bahkan pengelola yang paling bandel tidak dapat menghentikan kemajuan yang diperlukan tanpa batas waktu dalam subsistem tertentu.

8. Kernel menunjukkan bahwa perkembangan besar dapat muncul dari awal yang kecil.

Kernel 0,01 asli hanyalah 10.000 baris kode; sekarang tumbuh lebih dari itu setiap dua hari. Beberapa fitur kecil yang belum sempurna yang ditambahkan pengembang sekarang akan berkembang menjadi subsistem yang signifikan di masa mendatang.

9. Di atas semua itu, 25 tahun sejarah kernel menunjukkan bahwa upaya kooperatif yang berkelanjutan dapat menghasilkan sumber daya bersama yang tidak dapat dikembangkan sendiri oleh kelompok mana pun.

Sejak tahun 2005, sekitar 14.000 pengembang individu dari lebih dari 1.300 perusahaan berbeda telah berkontribusi pada kernel. Kernel Linux, dengan demikian, telah menjadi sumber daya umum yang dikembangkan dalam skala besar oleh perusahaan yang merupakan pesaing sengit di bidang lain.

Follow by Email
Instagram