[ glamoc @ 30.03.2012. 15:46 ] @
Skoro sam prvi put izbildovao linux kernel i kad sam hteo da ga dodam u /boot poceo sam da istrazujem kako da to uradim.
Posao je dosta jednostavan ali mi je ostalo dosta nejasnoca. Sta zapravo prestavlja image u vidu fajla vmlinuz?
Citao sam po netu i tamo pise poreklo imena i sve ostalo ali mi nije jasno da li je to zapravo izbildovani kernel.
Taj fajl je velik oko 5 MB i zvuci mi neverovatno da je to ceo kernel i kako moze da bude toliko mali.
Sta ja zapravo dobijem kad pokrenem komandu make bzImage.
[ maksvel @ 30.03.2012. 19:20 ] @
To mu dođe komprimovan kernel.
[ glamoc @ 31.03.2012. 00:02 ] @
Pa meni deluje da je 5MB malo za kernel pa bio on i komprimovan.
Kako je moguce da je ceo kernel tako mali?
[ madcama @ 31.03.2012. 06:44 ] @
To sam i ja pomislio kada je iD software objavio kod za Doom3. Isto je bilo par megabajta. Kada sam pitao jednog programera, u čije znanje nemam razloga da sumnjam, on me je pitao: "Znaš li ti koliko je to linija koda?". Kad sam malo bolje razmislio i setio sam se za koliko se puta smanji recimo javascript fajl kada se komprimuje.
[ Panta_ @ 31.03.2012. 08:10 ] @
Citat:
Pa meni deluje da je 5MB malo za kernel pa bio on i komprimovan.
Kako je moguce da je ceo kernel tako mali?

Veliko ti je to :).
Code:
ls -lsh /boot | grep kernel
2.5M -rw-r--r-- 1 root root 2.5M Mar 22 11:26 kernel-3.3.0.img

Kernel slika je mala zbog toga sto drajveri (kernel moduli) nisu ukljuceni u istu jer bi tako bila suvise velika da se pokrene na racunarima sa ogranicenim kapacitetom memorije. Na nekim distribucijama je prikazan i sam proces raspakivanja pri pokretanju sistema, mislim da je tako na Slackwareu.

Kernel moduli se nalaze u /lib/modules direktorijumu:
Code:
du -sh /lib/modules/3.3.0-custom-ARCH
35M    /lib/modules/3.3.0-custom-ARCH

[ Tyler Durden @ 31.03.2012. 10:13 ] @
Već smo ih jednom mjerili :)

Code:
-rw-r--r-- 1 root root 1.8M Sep  3  2011 /boot/kernel-2.6.39-r3


A modula imam vrlo malo. Mreža, zvuk i to je to manje više...
[ glamoc @ 31.03.2012. 13:57 ] @
Meni i dalje deluje neverovatno da npr. git zauzme vise prostora na disku od kernela
[ Srđan Pavlović @ 31.03.2012. 16:48 ] @
Imas kernel source kompletan mozes da pregledas koliko zauzima
sta u samom source-u od delova kernela (delovi samog koda rasporedjenog
po fajlovima), a kad radis make menuconfig tamo pre kompajliranja kernela,
onda vidis sta je ukljuceno u kernel, sta si stavio da bude kao modul, i sta nije
ukljuceno uopste, tj. nece ni biti kompajlirano.

Naravno da pravis konfiguraciju prema svojim potrebama.

Evo Tyler-u je kernel 1,8MB, meni obicno bude kad sam kompajliram oko
3mb, to mi je neki balanas izmedju desktop upotrebljivosti i ne-preteranog
bloatovanja istog.

I 5 mb nije malo, odakle ti da je to "malo"? :)
[ glamoc @ 31.03.2012. 17:00 ] @
Pa u pravu si nije malo, ali kad pomislim da je program kakav je git veci od celog kernela operativnog sistema to mi deluje neverovatno.
[ niceness @ 31.03.2012. 17:15 ] @
Panta_ je vec objasnio, procitaj ponovo sta je napisao.

i evo jos jedan primer (default 3.3 kernel na fedori 16):
$ du -sh /boot/vmlinuz-3.3.0-4.fc16.x86_64 /lib/modules/3.3.0-4.fc16.x86_64/
4.5M /boot/vmlinuz-3.3.0-4.fc16.x86_64
105M /lib/modules/3.3.0-4.fc16.x86_64/

Jel ovih 110MB i dalje malo :)
[ Srđan Pavlović @ 31.03.2012. 17:52 ] @
http://elinux.org/Kernel_Size_Tuning_Guide#Measuring_the_kernel