>>Насколько я помню, там, где ты нашел vmlinux, есть каталог archive или >>как-то так. В нем лежит vmlinuz, полученный путем сжатия vmliinux :) >> >Это файл arch/i386/bzImage. На ядре 2.4.х файл vmlinux у меня выходил в >10 раз меньше - 2 с лишним МБ. Обычный несжатый ЕЛФ >бинарник. Чего он так разросся в 2.6.9??? ты же сам себе ответил...- обычный несжатый бинарник.. пояснение на пальцах - в С : int arr[65535]; в elf`е отнюдь не занимает 256K, там просто содержится инструкция, что при загрузке на исполнение надо зарезервировать еще 4*64К в сегменте данных для arr. с ядром подругому, там загрузчик очень простой, поэтому все что возможно делается на этапе компиляции, и ваша программа 'потяжелеет' на это 256K. Собственно сей факт - то есть наличие больших неинициализованных, точнее инициализованных константами, таблиц (читай массивов/областей памяти) делает ядро таким большим и таким 'жмущимся' - нормальный elf, то есть бинарник, не жмется ни одним пакером даже в 2 раза.. (иначе разработчикам процессора надо было бы делать операцию a-la хороший танцор)
|