Мини-HOWTO: Малый объем памяти версия 0.1

Todd Burgess, tburgess@uoguelph.ca

Перевод: Павел Гашев, ASPLinux

Введение

В этом документе описывается, как запустить Linux на машинах с небольшим объемом оперативной памяти. Предположим, что в вашем случае установка дополнительной памяти не представляется возможной. В любом случае, есть много способов уменьшить использование памяти в Linux.

Большинство дистрибутивов Linux рассчитаны на большой размер оперативной памяти. Они запускают много сервисов и предлагают множество возможностей, которые могут и не понадобиться. Снимая большинство таких сервисов, вы можете реально освободить несколько мегабайт памяти.

Я работаю на машине 486DX2-66 с 12Мб оперативной памяти и разделом подкачки в 12Мб. Машина работает вполне нормально уже три года и проработает еще несколько лет. :)

Ядро Linux

Все ядра Linux, которые поставляются вместе с дистрибутивами, раздуты и поддерживают множество возможностей, которые нам могут никогда не понадобиться. Если вы еще не пересобирали ядро, то я настоятельно рекомендую это сделать. В этом документе содержатся рекомендации по сборке ядра. Впрочем, существуют множество прекрасных книг и руководств по Linux, которые также рассказывают об этом.

Если вы пересобираете ядро, запомните, что совсем не надо использовать все возможности ядра. Например, как часто вы включаете поддержку PLIP в ядро? Как часто вы будете это использовать? Маленькое ядро требует меньше времени для загрузки, меньше памяти и меньше загружает процессор.

Другая важная вещь - модули. Лично я не использую их, так как считаю, что они слишком громоздки. Рекомендация проста: если хотите действительно раздуть ядро, то используйте модули.

Виртуальные консоли

Виртуальные консоли - это прекрасный путь освободить память. Большинство дистрибутивов Linux запускают около 6 виртуальных консолей. В среднем, использование 6 консолей требует около 4 Мб памяти. Если убрать пару консолей, можно освободить пару мегабайт памяти.

Большинство пользователей используют только 3-4 консоли. Сколько консолей вы уберете - это ваше личное дело. Просто запомните, что чем меньше виртуальных консолей вы используете, тем больше памяти остается для работающих приложений.

Количество используемых консолей описывается в файле /etc/inittab . Для того, чтобы убрать виртуальную консоль:

  1. Загрузите /etc/inittab в текстовый редактор
  2. Найдите строки, похожие на:
    c1:12345:respawn:/sbin/getty tty1 38400 linux
    c2:12345:respawn:/sbin/getty tty2 38400 linux
    Начиная с наибольшего номера (например c6), закомментируйте строку, поставив знак '#' в начале строки. Повторите этот шаг столько раз, сколько вам нужно. Запомните, каждая закомментированная строка убирает одну виртуальную консоль.
  3. Перезапустите систему, чтобы изменения вступили в силу.
  4. Демоны

    Большинство дистрибутивов Linux запускают множество демонов, которые никогда не используются. Чаще всего они запускаются через скрипты. Где находятся скрипты и какие из них запускаются, зависит от дистрибутива. В Slackware они находятся в /etc/rc.d/rc.* .

    Прежде чем продолжить, вам было бы неплохо уметь писать скрипты. Если же вы этого не умеете, могу предложить краткое введение в написание скриптов.

    Возьмем следующий скрипт:

    #!/bin/sh
    echo "Привет!"
    # echo "Пока!"

    В результате, на экран будет выведена строка "Привет!". Скрипт должен начинаться со строки "#!/bin/sh", после которой каждая строка запускается командным интерпретатором так, как будто она была введена с клавиатуры (так что скрипт - не что иное, как простые макросы клавиатуры).

    Строки, начинающиеся с '#', являются комментариями и не исполняются. Большинство скриптов запуска демонов выглядят следующим образом:

    if условие then
    что-то
    fi

    Все, что мы хотим сделать - это закомментировать строки, между if и fi.

    Для того чтобы найти скрипт, в котором запускается демон, нужно поискать скрипт, на предмет наличия в нем названия демона. Если я хочу найти, где запускается inetd в Slackware, то должен сделать следующее:

    1. cd /etc/rc.d
    2. grep -n inetd rc.*

 inetd

inetd поддерживает такие вещи, как telnet, ftp и talk. Если вы не используете свою машину как сервер или не хотите иметь удаленный доступ к своей машине, то можете убрать inetd.

lpd

lpd используется для печати файлов на принтере командой lpr. Если вы не пользуетесь печатью на своей машине, то можете убрать lpd. Если, тем не менее, у вас есть принтер HP Deskjet, я настоятельно рекомендую установить пакет dj-printcap доступный на ftp://sunsite.unc.edu/pub/Linux/system/Printing/dj-printcap.tar.gz

nfsd и mountd

Это два демона, образующие NFS сервер. Если вы не используете свою машину как NFS сервер, то можете спокойно убрать эти два демона.

portmap

Демон portmap используется для поддержки сервиса RPC. Если вы не используете NFS или любую другую программу, использующую RPC, то можете убрать portmap.

sendmail

sendmail - это еще один демон, требующий достаточно много памяти. Если вы не используете свою машину в качестве почтового сервера, то можете убрать sendmail. Если вы пользуетесь электронной почтой, то программу чтения почты можно настроить на другой почтовый сервер.

другие

Могут быть также другие демоны в системе, которые вам не нужны. Удалите их, если они не нужны. Вы должны обязательно оставить только два демона. Это syslogd и klogd.

Выводы

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

Удачи!
Todd Burgess
tburgess@uoguelph.ca
http://eddie.cis.uoguelph.ca/~tburgess


Авторские права

Авторские права на русский перевод этого текста принадлежат © 2000 ASPLinux Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу, приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: <linux-howto@metalab.unc.edu> или к координатору русского перевода Linux HOWTO компании ASPLinux по адресу <linux-howto@asplinux.ru>

 

Hosted by uCoz