IZONE- http://www.izcity.com/- бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

Linux быстрее мысли

Сергей Яремчук

Конфигурация моего домашнего компьютера по нынешним временам далеко не самая продвинутая: Intel Celeron 300A 64 Mб ОЗУ. В принципе, мне хватает — ни обработкой звука ни серьезной графикой я не занимаюсь да и шотган свой я практически зачехлил, вон в углу стоит. А как увеличить производительность, спросите Вы? А очень легко необходимо убрать лишние приложения с оперативной памяти. В MS Windows все просто до безобразия — даже неинтересно: Пуск > Выполнить набираем msconfig и наслаждаемся, в смысле, выключаем все, чего душа пожелает. Но все дело в том что Linux сейчас в моем сердце. IMHO, эта ОС при равной с Windows нагрузке — 2-3 PDF-файла по 3-4 мега 2-3 документа наподобие Word не считая Web-сервера Apache со всеми модулями наподобие Perl + MySQL и, конечно же, какой-нибудь музыкальный проигрыватель типа WinAmp — производительней будет. Как же решить проблему повышения производительности в Linux?

В чем только ни упрекали эту операционную систему: и в недостатке программ для нее, и в том, что производители оборудования не поддерживают ее (см. статью Петра «Roxton’а» СЕМИЛЕТОВА «Линукс — в каждый дом!», МК № 17—18 (188—189)), но по крайней мере в одном никто не может упрекнуть Linux — в гибкости настройки. Да, иногда попотеть придется, но потом… Если заинтересовались, то поехали.

Во-первых, давайте выключим всех лишних демонов, так называются программы, которые висят в оперативной памяти. Чтобы сделать это, Вы должны обладать правами root. Если у Вас нет сети — ни локальной ни Интернета (а бывает и такое — сочувствую) выключаем:

  • dhcpd — автоматическое распределение адресов TCP/IP в сети;
  • named — ceрвер DNS — определение IP-адреса компьютера по его доменному имени);
  • network — управление сетевыми функциями;
  • nfs — монтирование файловых систем в сети;
  • portmap — обеспечение поддержки удаленного вызова процедур для различных протоколов NFS;
  • routed — использование таблиц маршрутизации c использованием RIP;
  • ruserd rwall snmpd, sshd — удаленное администрированиe;
  • sendmail — запуск демона электронной почты;
  • smb — доступ к файлам на компьютерах под управлением MS Windows;
  • squid — proxy-сервер;
  • httpd — web- сервер Apache
  • gated — маршрутизация;
  • ypbind yppasswd ypserv — распределение файлов в UNIX.

    Если нет принтера, то выключаем демоны cups, lpd. Если не нужны базы данных, то — postgresqld mysqld msqld. Не используете задания, которые выполняются по расписанию — anacron, atd, crond. Нет устройств, подключенных к порту USB — тогда usb и usbd. Кстати, если непонятно, для чего предназначен демон, попробуйте: man название. Ну, хватит, по-моему, уже и так ничего не работает. Чтобы демон не загружался в современных дистрибутивах, достаточно выбрать (привожу пример для клонов Linux Mandrake) DrakConf > BootService (стартовые сервисы) и снять галочку с переключателя Boot, или попробуйте К > Настройка > Загрузка стартовые сервисы > Редактор SysV-init. Для тех, у кого нет данной фичи, могу предложить следующий вариант. Для начала необходимо сделать пару отступлений.

    Во-первых, Linux загружается следующим образом :

  • ядро запускает программу init, находящуюся в каталоге /sbin;
  • init запускает сценарий (именно сценарий — потом можно посмотреть, что к чему) /etc/rc.d/rc.sysinit;
  • rc.sysinit устанавливает различные системные переменные и выполняет реинициализацию системы;
  • init запускает все сценарии, определенные для уровня запуска по умолчанию;
  • init запускает сценарий (опять же сценарий!) /etc/rc.d/rc.local;

    Второе — уровни запуска Linux:

  • — останов (halt);
  • — однопользовательский режим
  • — многопользовательский режим без NFS (то же, что и «3», но без сети);
  • — полностью многопользовательский режим;
  • — не используется;
  • — X-Window;
  • — перезагрузка (reboot);

    Какой отсюда можно сделать вывод? Что нам нужно — отключить загрузку демона при загрузке определенного уровня ( «5» c X-Window или «3» в командной консоли) или остановить его в скрипте /etc/rc.d/rc.local? Сначала второй вариант. Здесь все очень просто, добавьте только в конец файла строку /etc/rc.d/init.d/demon_name stop (вместо demon_name — я думаю, Вы поняли: необходимо вписать название демона, которого Вы хотите остановить), соответственно, если возникнет необходимость в запуске, то можно будет просто закомментировать данную строку.

    Ну, а теперь перейдем к первому варианту. Посмотрите в каталог /etc/rc.d/rc5.d/ (каталоги rc1.d — rc6.d соответствуют своим уровням запуска). Там мы видим ссылки на файлы в каталоге /etc/init.d/ (то есть как раз на демонов, запускающихся на данном уровне), форма этих ссылок такова: @S10network, @K02usbd. Символ @ вначале показывает, что это ссылка, следующий символ — S (start) или K (kill), дальше следует число из двух цифр, которое показывает последовательность запуска сценариев, и последним идет, как Вы уже догадались, название соответствующего демона. Теперь, я думаю, все понятно: чтобы демон не загружался, необходимо просто заменить букву S на K — и все.

    Следующий шаг: выключаем лишние виртуальные консоли (это те что под X-Window переключаются комбинацией Ctrl+Alt+F№) — для этого заходим в /etc/inittab и ставим знак комментария в строках

    Примечание: я ставлю два ## в строке, чтобы не делать резервную копию файла («тут за день так накувыркаешься») чтобы помнить что именно подверглось изменению (рекомендую вообще записывать ВСЕ изменения, которые Вы вносили в файлы конфигурации, — на бумагу или в файл). Этот шаг позволяет сэкономить по 0.5 Mб на каждом терминале. Напоминаю что по умолчанию терминалов запускается шесть, плюс седьмой под X-Window — оставляйте, сколько реально надо. Я, как видите, оставил два (из жадности).

    Далее, если Вы любите слушать музыку в фоне (для рабочего настроения) то «навіщо платити більше» — запустите mpg123 вместо XMMS. Звук такой же классный а памяти занимает меньше.

    Следующий шаг. Я думаю, Вы уже знаете что X-Window не связана жестко с конкретным диспетчером окон. Поэтому есть возможность в любой момент запустить тот, который полегче. Вот некоторые из них: KDE (>11.1 Mб), Gnome (>9.6 Mб) Enlightenment (6.2 Mб), IceWM (4.8 Mб), Xfce (4.3 Mб), fvwm2 (2.3 Mб), fvwm1 (1.7 Mб), Sawfish (5.6 Mб) и т. д. Как видите, список большой, и я думаю, что это тема для отдельного разговора. Примечание: в скобках указано примерное количество оперативной памяти, занимаемой диспетчером а первые четыре — мои любимые.

    Но в чем особенная прелесть Linux’а это в том что система распространяется в исходных кодах. А потому можно заново собрать ядро, чтобы удалить лишние модули. Да-да! А в Windows системными файлами занимаются только вирусы (и программисты Microsoft, естественно :-)).

    Поехали. Для начала почитайте последнюю версию Kernel-HOWTO и Kerneld. Далее необходимо определиться что за ядро будем ставить, — или более новое или то которое было но без лишних модулей или же более старый релиз если в Вашем ядре есть ненужные параметры. Например общепризнанно что ядра серий 2.2.х немного быстрее 2.4.х. Выбор за Вами. У меня стоят параллельно ядро серии 2.4.10 и облегченный вариант 2.2.8 и в зависимости от планируемой работы я загружаю то, которое мне нужно.

    Исходные тексты ядра в находятся в /usr/src/linux/, в Интернете ядра можно найти на ftp://ftp.kernel.org в каталоге /pub/linux/kernel/. Договоримся: будем перекомпилировать имеющееся. Переходим в каталог под root: cd/usr/src/linux/. Там же находится конфигурационный файл /usr/src/linux/.config. Параметры будущего ядра могут быть сконфигурированы с помощью любой из трех команд: make config, make menuconfig, make xconfig. Первая — для отчаянных парней; в этом случае в командной строке необходимо будет ответить более чем на 200 вопросов. Вернуться к предыдущему пункту возможности нет. Следующая предоставляет более приятный пользовательский интерфейс. Основное достоинство в том, что нет необходимости проходить по всем параметрам, можно изменить только необходимые. Все построено на системе меню. Но если у Вас установлена система X-Windows, то можете воспользоваться командой make xconfig. Появится меню с красивой графической прорисовкой. При выборе пунктов меню могут быть выбраны следующие пункты: Y — параметр встраивается в ядро, M — будет компилироваться в виде подключаемого модуля и загружаться по требованию, N — параметр не выбирается. Итак, переходим в каталог с исходными текстами и набираем make xconfig.

    Все параметры перечислять не буду, Вам наверняка станет скучно, да и многое здесь зависит от конкретной конфигурации. К тому же при выборе двух последних команд доступен отличный HELP (на англицком, естественно). Поговорим об общих принципах:

  • Решите, будете ли Вы собирать целое ядро или модульное. Модули загружаются только по требованию — если собираетесь работать с модулями, то ответьте Y на соответствующие вопросы (CONFIG_MODULES CONFIG_KERNELD);
  • Выберите тип Вашего процессора;
  • Если у Вас нет SCSI-устройств, отключите все, что со словом «SCSI», или оставьте только нужные устройства;
  • Отключите все сетевые устройства, поддержка которых Вам не нужна;
  • Запретите поддержку инфракрасных устройств (IrDA subsystem);
  • Разрешите поддержку и использование generic PCI bus-master DMA;
  • DMA по умолчанию (Use DMA be defaults);
  • Отключите поддержку сетевой файловой системы (NFS);
  • Запретите все консольные драйвера, за исключением VGA text console;
  • Отключите SAMBA (CONFIG_SMB_FS) — он предназначен для работы c Windows-компьютерами в сети (если нет необходимости, естественно);
  • Запретите все Ftape;
  • Запретите поддержку файловых систем, за исключением ISO 9660 CDROM, second extended fs (CONFIG_EXT2_FS) — куда же без нее — и (CONFIG_FAT_FS) — без Windows тоже никуда, — наконец, /dev/pts, и /proc;
  • Запретите поддержку ISDN и IPv6;
  • Отключите ленточные устройства (CONFIG_BLK_DEV_IDETAPE) PCMCIA-устройства (CONFIG_BLK_DEV_IDE_PCMCIA) — вряд ли они у Вас есть;
  • Запретите поддержку джойстиков;
  • Отключите Amateur Radio (все АХ-25);
  • Отключите все драйвера звуковых карт, которые Вам не нужны (почитайте Sound-HOWTO для настройки);
  • включите поддержку драйвера Вашей мыши (по названию фирмы и\или разъема).

    Закончив вносить изменения, нажмите кнопку Save and Exit для сохранения и выхода из программы.

    Теперь, когда настройка выполнена, приступаем к компиляции ядра. Наберите следующие команды:

    Затем, если Ваша система поддерживает сжатые ядра, наберите

    ну, а если не получается, то просто: make zImage

    В принципе, в целях безопасности, чтобы root не висел в списке задач, рекомендуется вместо последней команды набрать nohup make bzImage & и выйти, а ядро будет компилироваться в фоне. В зависимости от выбранных параметров и производительности Вашего компьютера, процесс компиляции займет время от нескольких минут до нескольких часов — у меня на это ушло около часа).

    После того как завершится компиляция, необходимо скопировать новое ядро в загрузочный сектор /boot

    и изменить загрузчик LILO. Чтобы иметь возможность загружаться с новым ядром, добавьте следующие строки в файл /etc/lilo.conf:

    После изменения обновите LILO командой: /sbin/lilo -v. Теперь после перезагрузки можно выбрать новое ядро.

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

    В заключение хочу сказать, что при перекомпиляции ядра Вам все равно не отвертеться от чтения документации (по секрету скажу, что ее, документацию, я прочитал после первого опыта сборки ядра, хоть я при этом и не особенно хулиганил). Но после всех мучений Вы получите легкую, быструю и гибкую в настройках систему. К тому же можно будет небрежно бросить в разговоре с друзьями: «Да я вот сегодня в Linux ядро пересобрал — так, ничего особенного». Остается только пожелать успехов и … Linux forever.

    Источник: http://www.mycomp.com.ua/

     


  • Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com