Rumah  >  Artikel  >  Tutorial sistem  >  Perbincangan ringkas mengenai sembilan pengalaman yang diringkaskan daripada 25 tahun pengalaman pembangunan kernel Linux

Perbincangan ringkas mengenai sembilan pengalaman yang diringkaskan daripada 25 tahun pengalaman pembangunan kernel Linux

WBOY
WBOYke hadapan
2024-01-10 08:34:07784semak imbas

Perbincangan ringkas mengenai sembilan pengalaman yang diringkaskan daripada 25 tahun pengalaman pembangunan kernel Linux

Teks asal: 9 pelajaran daripada 25 tahun pembangunan kernel Linux
Oleh Greg Kroah-Hartman
Terjemahan: Yan Jinghan

Komuniti kernel Linux meraikan ulang tahunnya yang kedua puluh lima pada 2016, dan ramai orang datang untuk bertanya kepada kami rahsia umur panjang dan kejayaan projek itu. Saya biasanya ketawa dan kemudian secara berseloroh mengatakan bahawa saya benar-benar tidak tahu bahawa 25 tahun telah berlalu. Projek ini sentiasa menghadapi perselisihan dan cabaran. Tetapi, secara serius, keupayaan kami untuk melakukan ini mempunyai banyak kaitan dengan keupayaan masyarakat untuk mencerminkan dan berubah.

Kira-kira 16 tahun yang lalu, kebanyakan pembangun kernel tidak pernah bertemu antara satu sama lain, kami hanya berkomunikasi melalui e-mel, jadi Ted T’so menghasilkan idea sidang kemuncak kernel. Kini, setiap tahun, pembangun kernel berkumpul untuk menyelesaikan masalah teknikal dan, yang lebih penting, menyemak perkara yang kami lakukan dengan betul dan apa yang kami salah sepanjang tahun lalu. Pembangun boleh membincangkan secara terbuka cara mereka berkomunikasi antara satu sama lain dan cara proses pembangunan berfungsi. Kemudian, kami akan menambah baik proses, kami akan membangunkan alatan baharu seperti Git, dan terus mengubah cara kami bekerjasama.

Walaupun kami tidak memahami sepenuhnya semua sebab utama kejayaan kernel Linux, masih terdapat beberapa pengalaman yang patut dikongsi.

1. Kitaran keluaran yang lebih pendek adalah penting

Pada peringkat awal projek Linux, setiap versi utama kernel mengambil masa beberapa tahun untuk dikeluarkan, yang bermakna pengguna terpaksa menunggu lama untuk menikmati ciri baharu, yang agak mengecewakan pengguna dan penjual semula. Dan, yang lebih penting, kitaran yang begitu panjang bermakna banyak kod perlu disepadukan sekaligus. Menggabungkan begitu banyak kod ke dalam satu versi adalah tekanan.

Kitaran yang lebih pendek dapat menyelesaikan semua masalah ini. Kod baharu boleh dimasukkan ke dalam versi stabil dalam masa yang lebih singkat. Mengintegrasikan kod baharu pada versi garis dasar yang hampir stabil membolehkan perubahan asas diperkenalkan dengan impak minimum pada sistem. Pembangun tahu bahawa jika mereka terlepas kitaran keluaran ini, akan ada satu lagi dalam dua bulan, jadi mereka jarang menggabungkan kod lebih awal.

2. Proses pengembangan memerlukan model pembangunan berlapis teragih

Sudah lama dahulu, semua permintaan perubahan akan dihantar terus kepada Linus Torvalds, tetapi ini tidak lama kemudian terbukti tidak sesuai kerana tiada sesiapa yang dapat memahami sepenuhnya projek sekompleks kernel sistem pengendalian. Pada awal-awal lagi, penyelenggara dari pelbagai kawasan kernel datang dengan idea untuk memperuntukkan bahagian kernel kepada orang yang biasa dengan kawasan itu. Contohnya, rangkaian, wayarles, subsistem pemacu seperti PCI atau USB, atau sistem fail seperti ext2 atau vfat. Ini kemudian berskala kepada ratusan penyelenggara yang bertanggungjawab untuk semakan dan penyepaduan kod, membolehkan beribu-ribu perubahan disertakan dalam setiap keluaran tanpa mengorbankan kualiti produk.

3. Kepentingan alatan

Pembangunan kernel telah cuba mengembangkan skop pembangun sehingga kemunculan BitKeeper, sistem pengurusan kod sumber, amalan komuniti berubah hampir semalaman, dan kemunculan Git membawa satu lagi lonjakan. Tanpa alatan yang betul, projek seperti kernel tidak akan berfungsi dengan betul dan akan runtuh di bawah beratnya sendiri.

4. Model bimbingan pendapat umum yang kukuh adalah sangat penting

Secara umumnya, jika pemaju kanan menolak perubahan yang diserahkan, perubahan itu tidak akan digabungkan. Amat mengecewakan apabila pembangun mengetahui bahawa kod yang mereka serahkan beberapa bulan lalu telah ditolak dalam senarai mel. Tetapi ia juga memastikan pembangunan kernel boleh menyesuaikan diri dengan sejumlah besar pengguna dan masalah. Tiada komuniti pengguna boleh membuat perubahan dengan mengorbankan kumpulan lain. Kami mempunyai asas kod yang boleh menyokong segala-galanya daripada mikrosistem kepada superkomputer, dan ia boleh digunakan pada banyak senario.

5 Peraturan "tidak kembali" yang kuat juga penting

Kira-kira sedekad yang lalu, komuniti pembangunan kernel berjanji bahawa jika kernel tertentu berjalan dengan betul dalam persekitaran tertentu, maka semua versi kernel berikutnya juga akan berjalan dengan betul dalam persekitaran tersebut. Jika komuniti mendapati bahawa perubahan telah menyebabkan masalah lain, mereka akan menyelesaikan masalah tersebut dengan cepat. Peraturan ini menjanjikan pengguna bahawa peningkatan sistem tidak akan memusnahkan sistem asal mereka. Oleh itu, penyelenggara bersedia untuk meneruskan kernel ini sambil membangunkan ciri baharu.

6 Adalah penting bagi syarikat untuk mengambil bahagian dalam proses pembangunan, tetapi tiada satu syarikat boleh menguasai pembangunan kernel

.

Sejak keluaran kernel versi nombor 3.18 pada Disember 2014, kira-kira 5062 pembangun individu daripada hampir 500 syarikat telah menyumbang kepada kernel Linux. Kebanyakan pembangun dibayar untuk kerja mereka, dan perubahan yang mereka lakukan memberi manfaat kepada syarikat tempat mereka bekerja. Walau bagaimanapun, walaupun mana-mana syarikat boleh menambah baik kernel mengikut keperluan khusus, tiada satu syarikat boleh memimpin pembangunan untuk melakukan perkara yang membahayakan orang lain atau mengehadkan kefungsian kernel.

7. Sepatutnya tiada sempadan dalaman dalam projek

Pemaju kernel mesti menumpukan pada bahagian tertentu kernel, tetapi mana-mana pembangun boleh membuat pengubahsuaian pada mana-mana bahagian kernel asalkan pengubahsuaian itu wajar. Akibatnya, masalah diselesaikan apabila ia timbul dan bukannya dielakkan. Pembangun mempunyai banyak dan pelbagai pendapat tentang kernel secara keseluruhan, dan walaupun penyelenggara yang paling degil tidak dapat menahan penambahbaikan yang diperlukan untuk selama-lamanya dalam mana-mana subsistem tertentu.

8. Fungsi penting bermula sedikit demi sedikit

Versi asal 0.01 kernel hanya mempunyai 10,000 baris kod; kini lebih daripada 10,000 baris ditambahkan setiap dua hari. Beberapa fungsi asas dan kecil yang ditambah oleh pembangun sekarang mungkin berkembang menjadi subsistem penting pada masa hadapan.

9 Ringkasnya, sejarah pembangunan kernel selama 25 tahun menunjukkan bahawa kerjasama berterusan boleh membawa sumber bersama, yang tidak boleh dibangunkan oleh satu kumpulan sahaja

.

Sejak 2005, kira-kira 14,000 pembangun individu daripada lebih 1,300 syarikat telah menyumbang kepada kernel. Oleh itu, kernel Linux telah berkembang menjadi sumber awam berskala besar melalui usaha banyak syarikat yang bersaing sengit antara satu sama lain.

Atas ialah kandungan terperinci Perbincangan ringkas mengenai sembilan pengalaman yang diringkaskan daripada 25 tahun pengalaman pembangunan kernel Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam