Hogyan fejlesszük a Linux kernelt?

Címkék

Greg Kroah-Hartman belefáradt abba, hogy megválaszolja a gyakran ismételt kérdéseket a Linux kernel fejlesztésével kapcsolatban, ezért megírta a ``HOWTO do Linux kernel development'' című dokumentumot. A dokumentumban le van írva minden fontos dolog abban a témában, hogy hogyan lehet valakiből Linux kernel fejlesztő, és hogy hogyan tud együttműködni a Linux kernel fejlesztők közösségével.

A dokumentum legfrissebb verzióját megtalálod itt.

Hozzászólások

>"Here is my 1000 page design document that describes my idea"

ezer oldal nem alapos tervezes, hanem szofosas. az opensource fejlesztes, nem csak a linuxban rengeteg apro lepesbol all, es mar eleg hamar meg van osztva az informacio a kozosseggel. 2-3 oldalban vazolja valaki a legfontosabb mintakat, es megkerdezi a tobbiek velemenyet, majd elkesziti a vazat, es az alreszekrol csinal 2-3 oldalas terveket.

(keszitettem mar tobb szaz oldalas terveket)


Annal is inkabb, mert ott van a masik csoportban az ellentete, "

Here is a patch that explains what I am trying to describe." Azaz, szakmai kozonseg van egyuttfejlesztes, ahol a szofosas kerkedes es 1000 oldal szofosast irni arrol amit be is mutathatna hulyeseg, es a masik idejenek pocsekolasa.

nagyon kiraly anyag.

ez tetszett a legjobban:

Differences between the kernel community and corporate structures

-----------------------------------------------------------------

The kernel community works differently than most traditional corporate

development environments. Here are a list of things that you can try to

do to try to avoid problems:

Good things to say regarding your proposed changes:

- "This solves multiple problems."

- "This deletes 2000 lines of code."

- "Here is a patch that explains what I am trying to describe."

- "I tested it on 5 different architectures..."

- "Here is a series of small patches that..."

- "This increases performance on typical machines..."

Bad things you should avoid saying:

- "We did it this way in AIX/ptx/Solaris, so therefore it must be

good..."

- "I've being doing this for 20 years, so..."

- "This is required for my company to make money"

- "This is for our Enterprise product line."

- "Here is my 1000 page design document that describes my idea"

- "I've been working on this for 6 months..."

- "Here's a 5000 line patch that..."

- "I rewrote all of the current mess, and here it is..."

- "I have a deadline, and this patch needs to be applied now."

Külön kiemelendő:

"Here is my 1000 page design document that describes my idea"

azaz a Linuxnál nem divat alaposan megtervezni valamit, ha ilyennel próbálkozol, elhajtanak.

"I've been working on this for 6 months..."

tehát ne görcsölj annyit, hogy jó legyen, dobj össze egy quick hacket és küldd be inkább azt.

És végül:

"I rewrote all of the current mess, and here it is..."

magyarul ne is próbáld felszámolni a jelenlegi káoszt, úgyis a fejlesztők hiúságába fogsz ütközni.

:)

szerintem ezeket a mondatokat egyaltalan nem azert irjak, amit magyarazatkent hozzafuzol:

>"Here is my 1000 page design document that describes my idea"

ezer oldal nem alapos tervezes, hanem szofosas. az opensource fejlesztes, nem csak a linuxban rengeteg apro lepesbol all, es mar eleg hamar meg van osztva az informacio a kozosseggel. 2-3 oldalban vazolja valaki a legfontosabb mintakat, es megkerdezi a tobbiek velemenyet, majd elkesziti a vazat, es az alreszekrol csinal 2-3 oldalas terveket.

(keszitettem mar tobb szaz oldalas terveket)

>"I've been working on this for 6 months..."

hasonlo, aki 6 honapig egyedul dolgozik valamin _anelkul_, hogy errol a kozosseg tudna joesellyel felre megy. folyamatosan kell visszajelzes a kozossegtol. egy uj dolognal (pl udev) volt kozel 20 alfa verzio, mire kijott a beta. lehetett velemenyezni, segiteni,...

>"I rewrote all of the current mess, and here it is..."

ez a legtipikusabb. ezt a mondatot kizarolag olyantol hallod, aki keptelen felfogni a jelenlegi kodot, es azt hiszi, csak o ert hozza. ez emberi hozzaallas fuggetlen a szakertelemtol, amik csinal az lehet jo es rossz is, de tuti, hogy nem keszult fel az ossze problemara amit a jelenlegi kod megold, mivel meg sem ertette.

talalkoztam mar ilyen emberrel, nem is eggyel.

>"I rewrote all of the current mess, and here it is..."

onnan vettem, hogy nem is erti a kodot, hogy aki megertette a tetelesen vegigmegy a problemain, es bebizonyitja, miben job ba sajat kodja. ennek a mondatnak nincs informacio erteke, csak siman lehulyezese az eddigi kod iroinak.

Hmmm, már rég kikerült a kernelből, de azért még példa értékű, hogy a régi i386 kernel betöltő (tehát bootloader nélkül közvetlenül a floppy elejéről) szimplán megnézte, hogy vajh 8, 9, 15 vagy 18 szektor van-e sávonként, aztán amelyik belefért, aszerint olvasott, aztán lesz ami lesz. Tizen-pár byte-tal volt több, hogy szépen megkeresse a _pontos_ számot, és alkalmas legyen tetszés szerinti formátumra, még bőven belefért, maradt is kihasználatlan hely, de azért úgy elhajtották a patch-emet, hogy öröm volt nézni.

Hogy jövök én ahhoz, hogy belepatkoljak a kernelbe, amikor a fejlesztői levlistán nem nyaltam be magam a félistenek magasztos körébe, így _biztos_, hogy szart csinálok, meg se kell nézni... Ergo bizonyítottam volna én, hogy jobb, csak épp unott mozdulattal a /dev/null-ba hajították az egészet, onnan meg nem hallatszik ki az érvelés.

Félreértés ne essék, ez még bőven GKH előtt történt, akkor ő valszeg még épp a GPL 42. énekének 187. versszakát memorizálta :).