LINUX.ORG.RU
ФорумTalks

[мерялка]размер ядра


0

1

Прошу накидать статистических данных по размеру ядра. Формат примерно такой:

я, Вася Пупки, ядро дистрибутивное сам, все драйвера в модулях, initramfs вкомпилена в ядро, размер ядра 5.02 Мб, суммарный размер модулей 6.3 Мб

я, Глеб Мизгирь, ядро конпелял сам, монолитное, initrd внешний, ядро веси 15 Мб, initrd ещё 4.

И так далее.

UPD: Очень хотелось бы увидеть тут тех, у кого запущенные кеды и тормозилла всего сто метров памяти отожрали.

UPD2: если у вас суммарный размер этого добра (ведро+модули) меньше 4 Мб , можете похвастаться, как оптимизировали

persephone:~> du /boot/vmlinuz-3.2.0-0.bpo.1-amd64 
2.7M	/boot/vmlinuz-3.2.0-0.bpo.1-amd64
persephone:~> du -c /lib/modules/3.2.0-0.bpo.1-amd64/ | tail -n1
123M	total
persephone:~> du /boot/vmlinuz-2.6.32-5-amd64 
2.4M	/boot/vmlinuz-2.6.32-5-amd64
persephone:~> du -c /lib/modules/2.6.32-5-amd64/ | tail -n1
112M	total

Дистрибутивные.

GotF ★★★★★ ()

Я, убунта 12-04, дефолтная. Ядро 4.9 Мб, initrd = 19.8 MB, модулей на 150 Мб.

Deleted ()

Я, Алексей <фамилию не скажу>, ядро самосборное

vmlinuz - 2,5 Mb
/lib/modules/2.6.39.4/kernel - 1,3 Mb

initramfs/initrd не использую.

AX ★★★★★ ()
Ответ на: комментарий от buddhist

В наш век фотошопа и порносайтов спрашивать подобный пруф просто не этично, да и в галерею все равно не поместят

kombrig ★★★ ()
$ sudo mount /boot && ls -l /boot
итого 25573
lrwxrwxrwx 1 root root       1 Окт  2  2009 boot -> .
-rw-r--r-- 1 root root     512 Окт  2  2009 boot.0300
-rwxr-xr-x 1 root root     276 Янв 19 07:57 gensplash.sh
drwxr-xr-x 3 root root    1024 Янв 19 12:45 grub
drwxr-xr-x 3 root root    4096 Окт 13 00:20 grub2
-rw-r--r-- 1 root root 3521470 Май 21  2011 initramfs-genkernel-x86-2.6.38.5-zen
-rw-r--r-- 1 root root 3437161 Июл  8  2011 initramfs-genkernel-x86-2.6.38-gentoo-r5
-rw-r--r-- 1 root root 6014466 Янв 26 23:57 initramfs-genkernel-x86-3.2.1-gentoo
-rw-r--r-- 1 root root 3000768 Ноя 23 05:53 kernel-genkernel-x86-2.6.38.5-zen
-rw-r--r-- 1 root root 3118272 Июл  8  2011 kernel-genkernel-x86-2.6.38-gentoo-r5
-rw-r--r-- 1 root root 3080832 Янв 26 23:56 kernel-genkernel-x86-3.2.1-gentoo
drwx------ 2 root root   12288 Окт  2  2009 lost+found
drwxr-xr-x 2 root root    1024 Янв  7 15:03 memtest86plus
-rw-r--r-- 1 root root 1285662 Ноя 23 05:53 System.map-genkernel-x86-2.6.38.5-zen
-rw-r--r-- 1 root root 1264497 Июл  8  2011 System.map-genkernel-x86-2.6.38-gentoo-r5
-rw-r--r-- 1 root root 1323850 Янв 26 23:56 System.map-genkernel-x86-3.2.1-gentoo
drwxr-xr-x 2 root root    1024 Янв 19 12:01 ubuntu
KRoN73 ★★★★★ ()

Здравствуйте, меня завут Кирил
ядро компелял не сам, ядро гибридное ntoskrnl.exe - 2,08 MB

Novell-ch ★★★★★ ()

Почти монолит 3.7 метров на нетбуке. Почти монолит 2 метров на десктопе + initramfs на 800 килобайт (я ССЗБ, у меня /usr отдельным разделом). Уменьшал, насколько можно, не теряя при этом функциональности. Оба ядра сжал lzo, чтобы распаковывалось быстрее, поэтому ядра такие большие. initramfs такая большая, потому что в ней glibc, чтобы работал fsck.ext4 без пересборки с uClibc, initramfs сжата gzip'ом.

gentoo_root ★★★★★ ()
Ответ на: комментарий от gentoo_root

gentoo_root

initramfs на 800 килобайт (я ССЗБ, у меня /usr отдельным разделом и systemd, который его не осиливает)

fixed

daemonpnz ★★★★★ ()

amorpher@xxx:~$ du /boot/vmlinuz-3.1.0-1-686-pae
2568 /boot/vmlinuz-3.1.0-1-686-pae
amorpher@xxx:~$ du -c /lib/modules/3.1.0-1-686-pae | tail -n1
95420 итого
amorpher@xxx:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux testing (wheezy)
Release: testing
Codename: wheezy
amorpher@xxx:~$ И так далее.

amorpher ★★★★★ ()

5.7M /boot/kernel-3.2.1-gentoo-seraphim

модулей нет, инитрд нет.

iSage ★★★★ ()

Я Васисуалий Лоханкин, и мне лень собирать ещё и ядро:

$ du -sh /boot/vmlinuz-generic-smp-2.6.37.6-smp
2,7M	/boot/vmlinuz-generic-smp-2.6.37.6-smp
$ du -sh /boot/initrd.gz
3,3M	/boot/initrd.gz
$ du -sh /lib/modules/2.6.37.6-smp
84M	/lib/modules/2.6.37.6-smp
Cancellor ★★★★☆ ()

Нате:

$ du /boot/vmlinuz-2.6.30.10 /lib/modules/2.6.30.10/ -sh&&cat /boot/config-2.6.30.10|grep INITRD
1,3M	/boot/vmlinuz-2.6.30.10
19M	/lib/modules/2.6.30.10/
# CONFIG_BLK_DEV_INITRD is not set

Жду приз.

alfix ()
Ответ на: комментарий от daemonpnz

systemd, который его не осиливает

Ты забыл ещё glibc, udev, udisks, cups, libatasmart, alsa, dbus, usbmuxd, pulseaudio, NetworkManager, которые не осиливают /usr отдельным разделом.

gentoo_root ★★★★★ ()
Ответ на: комментарий от gentoo_root

которые не осиливают /usr отдельным разделом.

Это почему это они так?

name_no ★★ ()

4,1M /boot/kernel-3.2.2-gentoo
13M /lib/modules/3.2.2-gentoo/

Особо «оптимизировать» не старался.

bsdfun ★★★★★ ()
Ответ на: комментарий от bsdfun

Особо «оптимизировать» не старался.

Если честно, я до сегодняшнего дня думал, что ведро не больше пяти метров весит со всеми модулями... Пока не проверил у себя. Как проверил — решил статистику пособирать.

name_no ★★ ()
[ megabaks@desktop ] ~ $ ls -lh /boot/3.2.1-r2-pf 
-rw-r--r-- 1 root 0 1,9M янв.  28 04:03 /boot/3.2.1-r2-pf
[ megabaks@desktop ] ~ $ du -sh /lib/modules/3.2.1-pf/
31M	/lib/modules/3.2.1-pf/
[ megabaks@desktop ] ~ $[ megabaks@desktop ] ~ $ lsmod
Module                  Size  Used by
fuse                   52472  3 
nvidia              10387280  54 
[ megabaks@desktop ] ~ $ 
megabaks ★★★★ ()
Ответ на: комментарий от megabaks

ах да

[ megabaks@desktop ] ~ $ ls -lh /lib/modules/3.2.1-pf/video/nvidia.ko 
-rw-r--r-- 1 root 0 12M февр.  1 04:54 /lib/modules/3.2.1-pf/video/nvidia.ko
[ megabaks@desktop ] ~ $ 

megabaks ★★★★ ()
Ответ на: комментарий от gentoo_root

Как будто где-то эти сервисы запускаются до монтирования ФС из /etc/fstab.

GotF ★★★★★ ()
Ответ на: комментарий от name_no

Это почему это они так?

Потому что они используют файлы, лежащие в /usr, поэтому их нельзя запускать до монтирования /usr. Монтирование /usr до запуска настоящего init'а (в моём случае systemd) решает проблему. Вообще, надо у себя, наверное, заменить initrd на скрипт в корневой файловой системе, который будет делать то же самое, что сейчас делает у меня initrd. А когда /bin, /sbin и /lib полностью перенесут в /usr, нужные для этого скрипта программы буду держать в отдельном каталоге на ФС. Как вариант, тогда можно сделать каталог /preinit и хранить в нём то же самое, что сейчас у меня в initrd. А пока не перенесли /bin, /sbin и /lib в /usr, нужные программы и так лежат на доступной корневой ФС.

gentoo_root ★★★★★ ()
Ответ на: комментарий от megabaks

и вот

-rw-r--r-- 1 root 0 11M янв. 28 04:04 /lib/modules/3.2.1-pf/kernel/fs/xfs/xfs.ko
но ты меня игноришь всё равно же :3

megabaks ★★★★ ()
Ответ на: комментарий от buddhist

Пруф

Тебе это не надо. Хочется надеяться.

ttnl ★★★★★ ()

Монолитное ядро, 1.19 мегабайта. Компилирую сам, выпилено всё лишнее, поддержки модулей нет.

Dark_SavanT ★★★★★ ()
C:\Users\ArtifTh>ls -lh c:\Windows\System32\ntoskrnl.exe
-rwxrwxrwx  2 ArtifTh 0 3,8M 2011-06-23 08:33 c:\Windows\System32\ntoskrnl.exe
Artificial_Thought ★★★★ ()
Ответ на: комментарий от GotF

Как будто где-то эти сервисы запускаются до монтирования ФС из /etc/fstab.

Вот именно, им приходится ждать, поэтому время загрузки увеличивается. И да, они таки используются: udev запускается до монтирования локальных ФС и куча его правил не сработают правильно из-за недоступности баз данных pci id, usb id. На поддержку локалей в glibc в программах, запущенных на этом этапе, в принципе, можно забить, но это тоже проблема. Я считаю, что там, где не нужно, не надо делать /usr отдельным разделом, а там, где нужно, надо адаптировать скрипты, монтирующие его к данной конкретной системе, чтобы они не зависели от udev.

gentoo_root ★★★★★ ()
Ответ на: комментарий от Artificial_Thought

rwxrwxrwx

Нефиговенькие права на ядро, да. Пойду сделаю rm c:\Windows\System32\ntoskrnl.exe.

gentoo_root ★★★★★ ()
Ответ на: комментарий от Dark_SavanT

Монолитное ядро, 1.19 мегабайта. Компилирую сам, выпилено всё лишнее,

Покажи конфиг, не стесняйся ))

name_no ★★ ()
Ответ на: комментарий от name_no
[ megabaks@desktop ] ~ $ zcat /proc/config.gz | wgetpaste
Your paste can be seen here: http://paste.pocoo.org/show/545206/
[ megabaks@desktop ] ~ $ 
megabaks ★★★★ ()
Ответ на: комментарий от alfix

1,3M /boot/vmlinuz-2.6.30.10

19M /lib/modules/2.6.30.10/

Жду приз.

Лол, за 20,3-мегабайтное ядро? Это далеко не самое маленькое здесь и далеко не самое большое.

Я вот порылся и откопал у себя ядро на 896 килобайт для роутера и 2.1 метр модулей к нему (архитектура — mips). А ещё у меня была дискета, на которой стояло ядро 2.6.32 на 650 килобайт и busybox, причём это уже было x86.

gentoo_root ★★★★★ ()
localhost joker # du /boot/vmlinuz-3.2.2-gentoo 
3292    /boot/vmlinuz-3.2.2-gentoo
localhost joker # du -c /lib/modules/3.2.2-gentoo/ | tail -n1
69048   итого
localhost joker # 

Ядро самосборное, монолитное.

fragment ()

ну вот как-то так:

nepank@blahblah ~ $ du -h /boot/vmlinuz-3.2.2-pf 
2,7M	/boot/vmlinuz-3.2.2-pf
nepank@blahblah ~ $ du -ch /lib/modules/3.2.2-pf/ | tail -n1
29M	insgesamt
nepank@blahblah ~ $ du -h /lib/modules/3.2.2-pf/video/nvidia.ko 
17M	/lib/modules/3.2.2-pf/video/nvidia.ko

Deleted ()
Ответ на: комментарий от Deleted

UPD: забыл написать, ведро конпилял сам, без initrd, все что использую часто - в ядре, а все остольное - модулями

Deleted ()
shtsh-gentoo ~ # du -sh /boot/vmlinuz-3.2.2-pf 
4,9M    /boot/vmlinuz-3.2.2-pf
shtsh-gentoo ~ # du -sh /lib/modules/`uname -r`
3,3M    /lib/modules/3.2.2-pf

Из них

shtsh-gentoo ~ # du -sh /lib/modules/`uname -r`/net/wireless/wl.ko
3,1M    /lib/modules/3.2.2-pf/net/wireless/wl.ko

Shtsh ★★★★ ()

serge@exception13:~$ cat /etc/debian_version
wheezy/sid
serge@exception13:~$ du -sh /boot/vmlinuz-3.2.0-1-amd64 /boot/initrd.img-3.2.0-1-amd64 /lib/modules/3.2.0-1-amd64/
2,7M /boot/vmlinuz-3.2.0-1-amd64
9,8M /boot/initrd.img-3.2.0-1-amd64
108M /lib/modules/3.2.0-1-amd64/

exception13 ★★★★★ ()
Ответ на: комментарий от gentoo_root

Что-то из-за systemd и отдельного /usr раздела есть проблемы, а из-за перечисленного тобой - нет.

daemonpnz ★★★★★ ()
Ответ на: комментарий от daemonpnz

Что-то из-за systemd и отдельного /usr раздела есть проблемы, а из-за перечисленного тобой - нет.

Не-а. У systemd вообще нет никаких проблем с отдельным /usr. Его можно собрать как с префиксом /usr, так и с префиксом /, и в последнем случае он будет работать. SysVinit также собирается с префиксом /, поэтому в сборке systemd с префиксом / нет ничего костыльного.

А всё перечисленное мной имеет проблемы при запуске с недоступным /usr. В случае glibc это недоступность локалей, в случае udev это его правила, читающие базы данных pci id и usb id, находящиеся в /usr и недоступные; всё остальное вообще хранит основные бинарники в /usr. Большинство из перечисленного мной можно запустить после монтирования локальных ФС, но это потеря производительности и увеличение длительности загрузки. udev же либо надо дважды запускать (в общем случае): перед монтированием /usr, чтобы можно было его смонтировать (при этом лучше ограничить набор доступных правил) и после монтирования /usr на полном наборе правил; либо сделать возможность смонтировать /usr, не запуская udev, что, собственно, и делает моя initramfs или же может делать preinit-скрипт на корневой ФС.

gentoo_root ★★★★★ ()
Ответ на: комментарий от gentoo_root

Ещё раз тебя спрашиваю, почему система с systemd и отдельным /usr не загружается, а это серьёзная проблема. А без systemd, но с glibc/udev всё прекрасно грузится и очень даже шустро?!

daemonpnz ★★★★★ ()
du -hs /boot/kernel-3.2-pf 
2.2M    /boot/kernel-3.2-pf
daemonpnz ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.