Kernel-ul Linux a împlinit 26 de ani anul acesta în 2017. Din tot acest timp se pot trage câteva lecții importante din cele învățate.

lecții

Procesul de dezvoltare și întreținere a Kernel-ul Linux este un caz cu puține asemănări de acest gen. A început ca un proiect personal și a devenit un proiect software colaborativ care nu a încetat să crească în cei peste 25 de ani de viață.

Din ce în ce mai mulți dezvoltatori, mai multe companii și mai multe linii de cod s-au alăturat nucleului Linux. Un nucleu creat de sute de oameni dedicați fiecare într-o anumită zonă, dar toți dezvoltând împreună ceva în comun.

Suportul de afaceri pentru kernel-ul Linux a fost vital. Multe companii colaborează în beneficiul lor, deoarece utilizează sau implementează soluții tehnologice bazate pe Linux. Aceste îmbunătățiri sunt împărtășite de multe alte companii și utilizatori mici.

Puține proiecte de dezvoltare software au acea istorie și multe dintre ele au atins un statut care sunt „aproape complete” și în care schimbările sunt puține și sunt foarte scurte în timp.

Kernel-ul Linux este diferit, după mai bine de 25 de ani, acest proiect este mai vital și mai activ decât în ​​orice moment trecut din istoria sa.

Există multe studii academice asupra comunității care o dezvoltă, dar totuși Vor trece mulți ani până când vom înțelege pe deplin cheile succesului dvs.

Dar cu toate acestea, există câteva lecții care au fost clare în tot acest timp și care pot fi studiate pentru a fi aplicate în alte proiecte.

Ciclurile de eliberare scurtă sunt importante

În primele zile ale proiectului Linux, a existat o singură versiune majoră a nucleului la fiecare câțiva ani. Aceasta a însemnat întârzieri considerabile pentru utilizatori pentru a avea îmbunătățiri suplimentare, ceea ce a fost frustrant atât pentru utilizatori, cât și pentru distribuitori.

Dar, mai important, ciclurile lungi de lansare au însemnat că există o presiune mare pentru a împinge codul la următoarea versiune, chiar și fără a fi pregătit.

Ciclurile scurte de eliberare rezolvă aceste probleme. Noul cod este disponibil rapid în versiuni stabile. L Integrarea unui nou cod face posibilă în mod constant introducerea chiar și a modificărilor fundamentale cu întreruperi minime.

Și dezvoltatorii știu că, dacă au ratat un ciclu de lansare, va exista altul în doar două luni, deci există puține motive pentru a încerca să includă codul prematur.

Un proces scalabil necesită un model de dezvoltare ierarhic și distribuit

A fost un moment în care toate schimbările au fost direct către Linus Torvalds, dar nici măcar un dezvoltator cu talentul său nu poate face față unui proiect care se mișcă atât de repede cum este nucleul Linux.

Delegarea responsabilităților pentru revizuirea și integrarea codului la 100 sau mai mulți mentenanți oferă proiectului capacitatea de a face față zeci de mii de modificări fără a sacrifica revizuirea codului sau calitatea.

Instrumentele contează

Dezvoltarea kernel-ului Linux s-a luptat să crească până la sosirea BitKeeper, un sistem de gestionare a sursei deschise care a schimbat peste noapte procedurile, care anterior erau utilizate în comunitate.

Trecerea la Git a adus un alt salt major înainte. Fără instrumentele potrivite, un proiect precum nucleul Linux ar fi pur și simplu imposibil de funcționat fără a cădea sub propria greutate.

Modelul nucleului puternic orientat spre consens este important

Ca regulă generală, o modificare propusă nu va fi inclusă dacă un dezvoltator respectat se opune acesteia. Acest lucru poate fi foarte frustrant pentru dezvoltatorii care consideră că codul pe care au petrecut luni de zile este blocat de pe listele de discuții.

Dar asigură, de asemenea, că nucleul rămâne potrivit pentru o gamă largă de utilizatori și probleme. În comunitate nu există utilizatori privați care pot face modificări în detrimentul altor grupuri.

Drept urmare, avem un nucleu care este potrivit atât pentru sistemele mici, cât și pentru supercomputerele mari și care este potrivit pentru o gamă largă de utilizări și aplicații.

Un factor înrudit este regula de bază a nucleului „fără regresie”.

Dacă un nucleu funcționează cu setări specifice, toate nucleele ulterioare trebuie să funcționeze, de asemenea, în același mod. Implementarea acestei reguli nu este întotdeauna perfectă, dar oferă utilizatorilor asigurarea că actualizările nu le vor strica sistemele.

În consecință, ei sunt dispuși să continue dezvoltarea nucleului în timp ce dezvoltă noi capacități.

Participarea companiilor la procese este crucială

Nu ar fi existat o progresie rapidă a proiectului așa cum s-a menționat aici fără implicarea companiilor. Dar este, de asemenea, important să nu existe o singură companie care să domine dezvoltarea nucleului.

În timp ce orice companie poate îmbunătăți nucleul pentru nevoile dvs. specifice, nicio companie nu poate orienta dezvoltarea în direcții care dăunează altora sau pot restricționa ceea ce poate face nucleul.

Nu ar trebui să existe limite interne în cadrul proiectului.

Dezvoltatorii kernel-ului Linux sunt în mod necesar orientați către anumite părți ale kernel-ului, dar orice dezvoltator poate aduce modificări oricărei părți a kernel-ului dacă schimbarea este justificată.

Ca urmare, problemele sunt rezolvate acolo unde își au originea și nu sunt manipulate, dezvoltatorii au o viziune mai largă asupra nucleului în ansamblu și chiar și cel mai recalcitrant întreținător nu poate opri la nesfârșit progresul necesar într-un subsistem dat.

Peste 26 de ani de istorie a Kernel Linux arata asta efort susținut și cooperativ poate genera resurse comune pe care niciun grup nu le-ar fi putut dezvolta singur.

Traducerea pe care am făcut-o este publicată sub aceeași licență. M-am gândit că ar putea fi interesant să-l diseminezi pentru comunitatea hispanică. Mă bucur dacă vi se pare interesant.