Друзья! почему если скомпилировать ядро на вышеозначенной системе, то получается файл vmlinux размером более 26 МБ!!! Я просто в растерянности... с чего вдруг он такой здоровый?
>Друзья! почему если скомпилировать ядро на вышеозначенной системе, то получается файл vmlinux
>размером более 26 МБ!!! Я просто в растерянности... с чего вдруг
>он такой здоровый?надо было
make bzimage;
вы очевидно, получили несжатый образ ядра
Вообще-то сжатый обычно зовется не vmlinux, а vmlinuz :)
Я следовал рекомендациям в файле РЕАДМЕ, заупстив одну лишь команду make. Конечно попробую стандартный путь через make dep bzImage modules etc etc etc Только вот остаётся вопрос, отчего такая ерунда допускается.
Насколько я помню, там, где ты нашел vmlinux, есть каталог archive или как-то так. В нем лежит vmlinuz, полученный путем сжатия vmliinux :)
>Насколько я помню, там, где ты нашел vmlinux, есть каталог archive или
>как-то так. В нем лежит vmlinuz, полученный путем сжатия vmliinux :)
>
Это файл arch/i386/bzImage. На ядре 2.4.х файл vmlinux у меня выходил в 10 раз меньше - 2 с лишним МБ. Обычный несжатый ЕЛФ бинарник. Чего он так разросся в 2.6.9???
>>Насколько я помню, там, где ты нашел 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 хороший танцор)
>>>Насколько я помню, там, где ты нашел 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 хороший танцор)опечатался ;( прошу читать char arr вместо int arr - sorry, ночь..
>ты же сам себе ответил...- обычный несжатый бинарник..Спасибо за пояснение, я конечно кое-что вставил от себя в ядро, но не настолько много, чтобы это увеличило его больше чем на 20 МБ. И всё-таки никто ещё не ответил на мой вопрос: почему то же самое на ядре 2.4.х даёт ядро vmlinux ок. 3 МБ, а в 2.6.х - 25-26 МБ?
>Спасибо за пояснение, я конечно кое-что вставил от себя в ядро, но
>не настолько много, чтобы это увеличило его больше чем на 20
>МБ. И всё-таки никто ещё не ответил на мой вопрос: почему
>то же самое на ядре 2.4.х даёт ядро vmlinux ок. 3
>МБ, а в 2.6.х - 25-26 МБ?Собрал ядро потому-что через одно место, через которое все дерается в России (кроме клизмы). 2.6.11 ядро весит откомпиленое 2.5 метра (это статикой собраное полностью, а если бы я модули заюзаные в нем наружу вытащил то килобайт до 900 бы утопталось). Ядра 2.6.5, 2.6.9 и 2.6.10 отличаются незначительно, плюс-минус десяток килобайт.