LINUX.ORG.RU
 

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


0

1

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

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

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

И так далее.

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

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

СКАЖИ СВОЕМУ КОМПЬЮТЕРУ, ЧТОБЫ ЗАПЕР ДВЕРЬ

любительская автоматизация; устройство с открытой прошивкой
исходные тексты всех программ, открытые библиотеки
http://www.unicontrollers.com/products/unc01x

[#]  
GotF
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

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

***** ()
[#] Ответ на: комментарий от stevejobs 03.02.2012 16:57:14  
toney

Где очки потерял?

* ()
[#] Ответ на: комментарий от stevejobs 03.02.2012 16:57:14  

Беспонтовая хезня
Подросла. Что за ***ня?!?

()
[#]  
kombrig

А у меня член 25 см

* ()
[#] Ответ на: комментарий от kombrig 03.02.2012 17:00:04  
kombrig

Ну и ядря большие и упругие

* ()
[#] Ответ на: комментарий от kombrig 03.02.2012 17:00:34  
cipher

И одно больше другого.

* ()
[#]  

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

* ()
[#]  
AX

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

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

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

**** ()
[#] Ответ на: комментарий от buddhist 03.02.2012 17:02:22  
kombrig

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

* ()
[#] Ответ на: комментарий от buddhist 03.02.2012 17:02:22  
kombrig

Да, это я диаметр указал

* ()
[#]  
KRoN73
$ 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
***** ()
[#]  
Novell-ch

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

*** ()
[#]  

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

** ()
[#] Ответ на: комментарий от gentoo_root 03.02.2012 17:19:13  
daemonpnz
>>-----Цитата---->>

gentoo_root

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

<<-----Цитата----<<

fixed

**** ()
[#]  
amorpher

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:~$ И так далее.

**# ()
[#]  

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

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

** ()
[#]  

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

$ 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
**** ()
[#]  
alfix

Нате:

$ 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 03.02.2012 18:11:34  
>>-----Цитата---->>

Жду приз.

<<-----Цитата----<<

Ну, ты пока не чемпион )))

** ()
[#] Ответ на: комментарий от daemonpnz 03.02.2012 17:28:36  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

** ()
[#] Ответ на: комментарий от gentoo_root 03.02.2012 18:13:25  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

** ()
[#]  
bsdfun
>>-----Цитата---->>

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

<<-----Цитата----<<

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

*** ()
[#] Ответ на: комментарий от bsdfun 03.02.2012 18:14:13  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

** ()
[#]  
megabaks
[ 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 03.02.2012 18:21:16  
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 ] ~ $ 

** ()
[#] Ответ на: комментарий от gentoo_root 03.02.2012 18:13:25  
GotF

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

***** ()
[#] Ответ на: комментарий от name_no 03.02.2012 18:14:05  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

** ()
[#] Ответ на: комментарий от megabaks 03.02.2012 18:22:40  
megabaks

и вот

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

** ()
[#] Ответ на: комментарий от buddhist 03.02.2012 17:02:22  
ttnl
>>-----Цитата---->>

Пруф

<<-----Цитата----<<

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

**** ()
[#]  

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

** ()
[#]  
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
* ()
[#] Ответ на: комментарий от GotF 03.02.2012 18:22:52  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

** ()
[#] Ответ на: комментарий от Artificial_Thought 03.02.2012 18:33:58  
>>-----Цитата---->>

rwxrwxrwx

<<-----Цитата----<<

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

** ()
[#] Ответ на: комментарий от megabaks 03.02.2012 18:21:16  

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

** ()
[#] Ответ на: комментарий от Dark_SavanT 03.02.2012 18:29:01  
>>-----Цитата---->>

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

<<-----Цитата----<<

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

** ()
[#] Ответ на: комментарий от name_no 03.02.2012 18:39:52  
megabaks
[ megabaks@desktop ] ~ $ zcat /proc/config.gz | wgetpaste
Your paste can be seen here: http://paste.pocoo.org/show/545206/
[ megabaks@desktop ] ~ $ 
** ()
[#] Ответ на: комментарий от alfix 03.02.2012 18:11:34  
>>-----Цитата---->>

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.

** ()
[#]  
fragment
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 # 

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

()
[#]  

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

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

()
[#] Ответ на: комментарий от nepank 03.02.2012 19:11:59  

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

()
[#]  
Shtsh
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

** ()
[#]  
exception13

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/

*** ()
[#] Ответ на: комментарий от gentoo_root 03.02.2012 18:13:25  
daemonpnz

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

**** ()
[#] Ответ на: комментарий от daemonpnz 03.02.2012 19:28:08  
>>-----Цитата---->>

Что-то из-за 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 03.02.2012 19:53:25  
daemonpnz

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

**** ()
[#]  
daemonpnz
du -hs /boot/kernel-3.2-pf 
2.2M    /boot/kernel-3.2-pf
**** ()