pomoc - trochu jiny pohled

Martin Mačok martin.macok na underground.cz
Čtvrtek Leden 31 17:55:15 CET 2002


On Thu, Jan 31, 2002 at 05:07:28PM +0100, Ing. Miloslav Ponkrác wrote:
> Mě by třeba zajímalo, jak by dnes bylo těžké stát se programátorem
> jádra. To jest, za předpokladu, že jsem zkušený programátor
> obeznámený s principem Unixu do hloubky.

V tom pripade celkem bez problemu. V tom kodu se da celkem dobre
zorientovat a zas tak moc se to od jineho programovani nelisi. Velka
cast kodu v kernelu vypada celkem podobne jako kod kterehokoliv jineho
programu.

> Existuje jiná dokumentace Linuxu, než zdrojáky jádra?

Ano.

http://kernelnewbies.org/
http://www.linuxdoc.org/
http://www.linux-mm.org/
...
/usr/src/linux/Documentation/*

>  Existuje možnost, jak něco naprogramovat do jádra jinak, než že se
>  stát osobním přítelem jednoho člověka, který má patent na jméno
>  Linux?

Jiste, to jste nekde zase slysel nejake famy, ze? Mnoho velice
aktivnich vyvojaru jadra se s Linusem nemuze vystat, presto se jejich
kod do jadra dostane, anebo jej pouziva mnoho lidi napr. diky jadru z
distribuci atp...

Naprosta vetsina patchu se neposila primo Linusovi, ale maintainerum
konkretni casti kernelu ci konkretni vetve kernelu. V pripade
neuspechu/odmitnuti mate moznost dostatecne hlasite na sebe
upozornovat v LKML, anebo maintainovat vlastni kernel tree a posilat
do konference odkazy na tento tree...

>  Je jádro dobře strukturováno a dekomponováno jako projekt?

Ano i ne. Mohlo by byt podstatne lepsi, ale na druhou stranu vzhledem
k tomu, jak zivelne a "chaoticky" se vyviji, tak je celkem rozumne
strukturovano. Rozhodne se to s casem zlepsuje. Jadro se stava cim
dal tim vice modularizovane a jednotlive casti mene navzajem
"propletene" (pokud to vubec jde).

>  Kde jsou popsány interface mezi jednotlivými komponentami jádra?

Naprosta vetsina je v kodu, ale ne zridka vyvojari zverejni nejake
dokumenty nebo slajdy... kdo hleda a kdo chce, ten vetsinou najde.

>  Kdo se vlastně stará o architekturu jádra, a kdo ji shvaluje?

Maintainer. Kdyz s nim nejste spokojeni, udelate si vlastni fork tree
a kdyz se prokaze, ze ten vas tree je dobry/lepsi, maintainer rad
zmeni nazor. Pokud i presto nezmeni a naprosta vetsina ostatnich s
vami souhlasi, maintainer prestava byt maintainerem ;-)

(napr. Alan Cox dela vlastni jadra, SuSE dela vlastni jadra, Red Hat
dela vlastni jadra, Rik van Riel udrzuje svuj VM tree, AA udrzuje svuj
VM tree ...)

>  Neodrazuje dnešní stav jádra nové zkušené programátory, kteří se
> raději budou věnovat něčemu jinému?

Neni zadny problem. Komu se to nelibi, muze se to pokusit zmenit,
anebo proste muze pouzivat nejake BSD, Hurd, ... freedos, OpenBEOS,
AtheOS ...

>  Nehřeší dnes způsob vývoje jádra na přebytek lidských sil?

Mozna. Mozna je to i vyhoda, ne? Resp. proc to nevyuzit, ne? Ona zas
tak strasne nesmirna ta zakladna tech nejdulezitejsich vyvojaru neni.
Opravdu velke a radikalni kusy kodu pise spise tak desitky/stovky
programatoru, coz neni zas tak "nesmirny" prebytek sil ... (podivejte
se kolik programatoru zamestnava microsoft)

>  Jaká je metodika testování jádra? 

Momentalne oficialne skoro zadna, ale zacina se nad tim vazne
diskutovat a objevily se i ruzne QA projekty. Staci hledat.

BTW napr. firmy distribujici kernel (napr. SUSE, RedHat) tyto verze
kernelu, ktere distribuuji, celkem dukladne testuji/opravuji a kdyz
narazi na problemy ktere vyresi, tak si to samozrejme vetsinou
nenechavaji pro sebe ...

Konkretne u Red Hat Linuxu musi kernel projit celkem dukladnym
testovanim na kvalitu, nez jej daji do distribuce. (podivejte se,
kolik patchu na kernel v takove normalni distribuci je)

>  Je dnešní způsob řízení vývoje jádra udržitelný i do budoucna?

Ano i ne. Zatim to jeste jde. Az to nepujde, tak to nepujde ;-)

V posledni dobe se objevuje celkem dost ruznych "tree" a celkem z toho
byl z pocatku strach, ale ukazuje se, ze to je spise k dobremu,
protoze dobre veci se takto prosadi a dukladne otestuji a potom mohou
jit snazeji do "hlavniho stromu". Navic ne vsichni maji uplne stejne
pozadavky, takze pravdepodobne nelze udelat jeden hlavni kernel, se
kterym by byli vsichni idealne spokojeni.

> Jaká je podpora jádra pro možnost vývoje binárních ovladačů od výrobců
> hardware?

Muzou byt, pokud neporusi licenci GPL. Kdyz budete chvilku hledat
hesla jako "binary driver linux kernel GPL" tak toho najdete spoustu.

> Existuje dnes dostatečně stabilní prostředí pro vývojáře aplikací? 

Ano.

> Je nutné se specializovat na určitou distribuci, a nebo lze udělat
> aplikaci přenositelně? 

Neni nutne. Kdyz pisete cisty kod, obvykle ho lze psat tak, aby bez
velkych bolesti sel rovnou kompilovat nejen na ruznych distribucich,
ale i na ruznych klonech unixu.

> Je nutné pro každou distribuci vytvářet jiný typ balíčku?

Neni.

> Proč? 

Kazdemu vyhovuje neco jineho. Proc nenechat zit nekolik ruznych
variant?

> Jak moc jsou určité věci ve všech distribucích standardizovány?

Hledejte na internetu "LSB" "FHS" apod. V posledni dobe to az na par
kosmetickych problemu s kompatibilitou distribuci celkem ujde.

> Existuje jedno místo, kde jsou závazné standardy pro Linux popsány, které se
> Linux do budoucna zaváže respektovat?

LSB

> Tímto nemyslím nic jiného, než že Linux je složitý projekt, jehož
> složitost s časem roste.

To je velice relativni.
Zkuste si nainstalovat 7 let stary slackware a pul roku stary
Mandrake. Co vam prijde slozitejsi? :)

-- 
         Martin Mačok                 http://underground.cz/
   martin.macok na underground.cz        http://Xtrmntr.org/ORBman/


Další informace o konferenci Linux