RUTHAN: kernel se ti stara o spravu pameti a zarizeni na te nejnizsi urovni, takze ostatni programy a knihovny uz jedou nad urcitou abstrakci a nemusi resit technicke detaily jednotlivych karet a tak, proste nekam otevrou spojeni a poslou packet a prectou si odpoved, nebo tak neco.
V principu muzes udelat kernel, ktery obsluhuje VSECHNA zarizeni, ale pak bude zbytecne obludne velky a vetsinu z toho nikdy nepouzijes (plus se obcas muzou vyskytnout problemy s kompatibilitou, napriklad starsi a novejsi verze protokolu, HW, ktery ma vic verzi, co se ale navenek nelisi, jen se jinak obsluhuji, optimalizace...) . Nebo muzes udelat, ze pouziva moduly a kdyz zdetekuje dane zarizeni tak si nahraje pro nej porislusny modul - zabere to min pameti, zase mas milion modulu na disku a stejne mas problem s detekci. Nebo si udelas nejak analyzu sam (ci s pomoci buildovaciho programu), ze mas A,B,C (coz se jeste zjistit da) a obcas budes chtit pripojit i D,E,F (to uz musis vedet sam, nebo vzit nejakou obecnou predvarenou mnozinu, co vyhovi x% uzivatelu a doufat, ze tam spadas) a do kernelu (a modulu) si to zkompilovat, cmz ziskas mensi kernel a pritom ti nebude nic chybet.
Plus kompilator muze na zaklade znalosti tveho systemu pouzit ruzne sady instrukci (stylem - kdyz mas koprocesor, tak ho nechat pocitat v plovouci carce, kdyz nemas, dotakhnout knihovny, co to pomaleji spoctou samy).
Tech moznych kombinaci je tolik, ze nema cenyu pro kazdou delat zvlast binarni obraz, casto ani pro kazdou skupinu - vyber toho spravneho by byl slozitejsi, nez si v 'make menuconfig' zaskrtat volby a nechat to prelozit na miru. Distribuce vetsinou nabizeji nejake obecne sady, co toho pokryjou celkem dost, i kdyz neoptimalne a nekdy ne zcela.
Problem je, ze se kernel vyvyji a moduly taky a casem se mezi nima muze zmenit rozhrani, treba ze pribyde parametr ve volani, nebo je potreba jiny postup pri inicializaci - pak stary kernel s novymi moduly (ci naopak) nebude komunikovat spravne/vubec. Narazil jsem na to u neudrzovanych modulu pro proprietalni HW, chvili jsem si ty moduly upravoval podle zmen v kernelu sam, pak jsem naopak stopnul verzi kernelu (kdyz uz to zacalo byt moc slozite) a jel novy system se starym kernelem a pak jsem musel stopnout i nektere veci mimo, protoze uz s tak starym kernelem zacinaly mit potize. Ale v principu se to da, jen to neni pro zacatecnika to prave orechove.