ЖУРНАЛ ХАКЕР

Оптимизация Линукса

StF (StF@mail.ru)

Спецвыпуск Хакера, номер #005, стр. 005-044-2


Mozilla M1* - 96 Mb, Kde & Gnome - 64 Mb, Netscape 4.x - 32Mb. Так что даже

не пытайся поставить староффис на пень с 32 мегами - встать-то он встанет,

но пока будет запускаться - успеешь кофе сварить :-(.

Ядро

Ядро, устанавливаемое по умолчанию, содержит в себе много ненужных для тебя опций, цель которых - заставить его работать почти на любой конфигурации. У

нас есть 2 задачи: выкинуть из него все лишнее совсем и выложить то, что нужно для твоего компа, в отдельные модули. Дело в том, что при работе Linux ядро - единственный кусок памяти, который не свапуется, поэтому логично сделать его меньше. Что же выкидывать из ядра? Тут сложно продвинуть конкретные рекомендации - все зависит от конфигурации твоего компа. Но несколько советов я могу дать:

- Установи семейство процессоров в PPro/6x86MX для Pentium II/III систем.

- Разреши MTRR для PentiumPro/II/III и AMD K6-2/3 систем.

- Запрети багофиксы для чипсетов, которых у тебя нет. Пример: CMD640 и RZ1000.

- Разреши Generic PCI bus-master DMA поддержку и использование DMA по

умолчанию (Use DMA be defaults).

- Разреши поддержку чипсета, который у тебя есть. Пример: VIA82C586 для VIA

VP2/3 и MVP3 материнских плат.

- Разреши ТОЛЬКО специфичные SCSI контроллеры, которые у тебя есть.

Пример: Adaptec AIC7xxx.

- Запрети ВСЕ сетевые устройства, поддержка которых тебе не нужна.

- Установи максимальное число Unix98 PTYs в 128.

- Установи 'persistant dma buffer' в конфигах звука.

- Запрети все файловые системы, за исключением: ISO 9660 CDROM,VFAT, Second

extended fs, /dev/pts и /proc поддержка.

- Запрети все сетевые файловые системы (NFS).

- Запрети все консольные драйвера. Исключение: VGA text console.

- Запрети Enhanced Real Time Clock поддержку.

- Запрети поддержку ISDN.

- Запрети поддержку IPv6.

- Запрети поддержку Amateur Radio.

- Запрети поддержку инфракрасных устройств (IrDA subsystem).

- Запрети поддержку джойстиков (Joysticks).

- Запрети все Ftape.

Попробуй другие вещи. Отредактируй /usr/src/linux/Makefile: найди

строку 'MAKE =make' и измени ее на 'MAKE =make -j5' - так будет использоваться несколько копий make, с которыми на некоторых системах будут быстрей компилироваться программы. Потом измени: 'CFLAGS

= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer' на 'CFLAGS

= -Wall -Wstrict-prototypes -O7 -fomit-frame-pointer -fno-exceptions', что

включит использование оптимизирующих фишек, которые могут работать или не

работать со всеми ядрами (оптимизация кода при компиляции).

Ядро желательно брать посвежее и стабильное, например, 2.2.17 - последний

стабильный релиз ядра из серии 2.2.* на данный момент.

Компиляция его осуществляется командами:

make menuconfig (или xconfig, если компилить из-под X [*] - данный параметр ядра будет скомпилирован встроенным в него [M], - означает, что он будет

откомпилирован в качестве отдельного модуля, загружаемого по необходимости)

make dep

make bzlilo

make modules

make modules_install

Необходимо также заметить, куда скомпилилось новое ядро (у меня это всегда корень), и добавить в файл /etc/lilo.conf строки, дающие возможность загрузить старую версию ядра, если эта криво скомпилена или просто глючит (и такое бывает!):

Назад на стр. 005-044-1  Содержание  Вперед на стр. 005-044-3