


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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Sebab utama mengapa anda tidak boleh log masuk ke MySQL sebagai akar adalah masalah kebenaran, ralat fail konfigurasi, kata laluan tidak konsisten, masalah fail soket, atau pemintasan firewall. Penyelesaiannya termasuk: periksa sama ada parameter pengikat di dalam fail konfigurasi dikonfigurasi dengan betul. Semak sama ada kebenaran pengguna root telah diubahsuai atau dipadam dan ditetapkan semula. Sahkan bahawa kata laluan adalah tepat, termasuk kes dan aksara khas. Semak tetapan dan laluan kebenaran fail soket. Semak bahawa firewall menyekat sambungan ke pelayan MySQL.

Ya, MySQL boleh dipasang pada Windows 7, dan walaupun Microsoft telah berhenti menyokong Windows 7, MySQL masih serasi dengannya. Walau bagaimanapun, perkara berikut harus diperhatikan semasa proses pemasangan: Muat turun pemasang MySQL untuk Windows. Pilih versi MySQL yang sesuai (komuniti atau perusahaan). Pilih direktori pemasangan yang sesuai dan set aksara semasa proses pemasangan. Tetapkan kata laluan pengguna root dan simpan dengan betul. Sambung ke pangkalan data untuk ujian. Perhatikan isu keserasian dan keselamatan pada Windows 7, dan disyorkan untuk menaik taraf ke sistem operasi yang disokong.

MySQL dan Mariadb boleh wujud bersama, tetapi perlu dikonfigurasikan dengan berhati -hati. Kuncinya adalah untuk memperuntukkan nombor port dan direktori data yang berbeza untuk setiap pangkalan data, dan menyesuaikan parameter seperti peruntukan memori dan saiz cache. Konfigurasi sambungan, konfigurasi aplikasi, dan perbezaan versi juga perlu dipertimbangkan dan perlu diuji dengan teliti dan dirancang untuk mengelakkan perangkap. Menjalankan dua pangkalan data secara serentak boleh menyebabkan masalah prestasi dalam situasi di mana sumber terhad.

MySQL mempunyai versi komuniti percuma dan versi perusahaan berbayar. Versi komuniti boleh digunakan dan diubahsuai secara percuma, tetapi sokongannya terhad dan sesuai untuk aplikasi dengan keperluan kestabilan yang rendah dan keupayaan teknikal yang kuat. Edisi Enterprise menyediakan sokongan komersil yang komprehensif untuk aplikasi yang memerlukan pangkalan data yang stabil, boleh dipercayai, berprestasi tinggi dan bersedia membayar sokongan. Faktor yang dipertimbangkan apabila memilih versi termasuk kritikal aplikasi, belanjawan, dan kemahiran teknikal. Tidak ada pilihan yang sempurna, hanya pilihan yang paling sesuai, dan anda perlu memilih dengan teliti mengikut keadaan tertentu.

Terdapat banyak sebab mengapa permulaan MySQL gagal, dan ia boleh didiagnosis dengan memeriksa log ralat. Penyebab umum termasuk konflik pelabuhan (periksa penghunian pelabuhan dan ubah suai konfigurasi), isu kebenaran (periksa keizinan pengguna yang menjalankan perkhidmatan), ralat fail konfigurasi (periksa tetapan parameter), rasuah direktori data (memulihkan data atau membina semula ruang meja), isu ruang jadual InnoDB (semak fail ibdata1) Apabila menyelesaikan masalah, anda harus menganalisisnya berdasarkan log ralat, cari punca utama masalah, dan mengembangkan tabiat sandaran data secara teratur untuk mencegah dan menyelesaikan masalah.

MySQL boleh mengendalikan pelbagai sambungan serentak dan menggunakan multi-threading/multi-pemprosesan untuk menetapkan persekitaran pelaksanaan bebas kepada setiap permintaan pelanggan untuk memastikan bahawa mereka tidak terganggu. Walau bagaimanapun, bilangan sambungan serentak dipengaruhi oleh sumber sistem, konfigurasi MySQL, prestasi pertanyaan, enjin penyimpanan dan persekitaran rangkaian. Pengoptimuman memerlukan pertimbangan banyak faktor seperti tahap kod (menulis SQL yang cekap), tahap konfigurasi (menyesuaikan max_connections), tahap perkakasan (meningkatkan konfigurasi pelayan).

Penyelesaian kepada ralat pemasangan MySQL adalah: 1. Berhati -hati memeriksa persekitaran sistem untuk memastikan keperluan perpustakaan ketergantungan MySQL dipenuhi. Sistem operasi dan keperluan versi yang berbeza adalah berbeza; 2. Berhati -hati membaca mesej ralat dan mengambil langkah -langkah yang sepadan mengikut arahan (seperti fail perpustakaan yang hilang atau kebenaran yang tidak mencukupi), seperti memasang kebergantungan atau menggunakan arahan sudo; 3 Jika perlu, cuba pasang kod sumber dan periksa dengan teliti log kompilasi, tetapi ini memerlukan pengetahuan dan pengalaman Linux tertentu. Kunci untuk menyelesaikan masalah akhirnya adalah dengan teliti memeriksa persekitaran sistem dan maklumat ralat, dan merujuk kepada dokumen rasmi.

Sebab utama kegagalan pemasangan MySQL adalah: 1. Isu kebenaran, anda perlu menjalankan sebagai pentadbir atau menggunakan perintah sudo; 2. Ketergantungan hilang, dan anda perlu memasang pakej pembangunan yang relevan; 3. Konflik pelabuhan, anda perlu menutup program yang menduduki port 3306 atau mengubah suai fail konfigurasi; 4. Pakej pemasangan adalah korup, anda perlu memuat turun dan mengesahkan integriti; 5. Pembolehubah persekitaran dikonfigurasikan dengan salah, dan pembolehubah persekitaran mesti dikonfigurasi dengan betul mengikut sistem operasi. Selesaikan masalah ini dan periksa dengan teliti setiap langkah untuk berjaya memasang MySQL.
