Таким образом, bash находится в /bin каталоге. Это очень ограниченная команда для поиска, так как она ищет только в вашем PATH. whereis Команда whereis(1) работает аналогично программе which, но в дополнение к последней, так же ищет man страницы и исходники программ. Результат выполнения whereis для bash будет следующий:
Эта команда не только говорит, где находится программа, но так же указывает, где находится её онлайн документация. Но она всё ещё весьма ограничена. Что если вам необходимо найти определённый конфигурационный файл? which или whereis тут вам не помогут. find Команда find(1) может быть использована для поиска всего, чего угодно. Я хочу задать поиск файла xinitrc во всей системе.
find потребует много времени для поиска, так как эта команда пролистает всё дерево каталогов для поиска. И если вы выполните команду, как обычный пользователь, то на экран, вероятно, неоднократно будут выведены сообщения об ошибке доступа к некоторым из каталогов (к тем, которые может просматривать только root). Но find нашла наш файл. Уже хорошо. Если бы только она работала чуточку быстрее... locate Команда locate(1) производит поиск по всей файловой системе, в точности как и find, но она просматривает свою базу данных вместо того, чтобы пролистать все каталоги. База данных настроена так, что она автоматически обновляется в 4:40 утра. Вы так же можете вручную выполнить updatedb(1), для обновления этой базы данных (перед запуском её вручную вам следует выполнить su nobody). Вот пример использования locate:
Мы получили больше, чем нам было необходимо и очень быстро в то же время. С этими командами вы можете найти всё, что угодно в Linux системе.
Каталог /etc/rc.dФайлы, выполняемые системой при её инициализации, хранятся в каталоге /etc/rc.d. Slackware использует расположение сценариев инициализации в стиле BSD. Каждое задание или runlevel (уровень загрузки) имеет свой rc файл. Таким образом, получается организованная структура, которой легко пользоваться. Есть несколько категорий сценариев инициализации. Начальная загрузка системы, уровни загрузки, инициализация сети и System V совместимые. По традиции, мы отнесём всё остальное к категории ''других''.
Начальная загрузка системыПервая программа, запускаемая в Slackware после ядра Linux -это init(8). Эта программа читает /etc/inittab(5) файл, чтобы узнать, как загружать систему. Запускает /etc/rc.d/rc.S сценарий для подготовки перед переключением на выбранный runlevel. rc.S файл активизирует виртуальную память, подключает файловые системы, очищает определённые log каталоги инициализирует Plug and Play устройства, загружает модули ядра, настраивает PCMCIA устройства, активизирует последовательные порты и запускает System V загрузочные сценарии (если таковые присутствуют). rc.S выполняет много задач самостоятельно, но так же до завершения своей работы, он вызовет ниже перечисленные сценарии из каталога /etc/rc.d:
Инициализационные сценарии runlevelПосле того, как инициализация системы завершена, init переходит к инициализации runlevel. Runlevel описывает, в каком режиме ваш компьютер будет работать. Звучит загадочно? Ну, runlevel сообщает init-у, будете ли вы в многопользовательском (multiuser logins) режиме, или только в одно-пользовательском (single user), хотите ли вы сетевые сервисы и будете ли вы использовать X Window или agetty(8), для управления входом в систему (logins). Файлы, приведённые ниже определяют разные runlevels в Slackware Linux.
Инициализация сетиУровни загрузки 2, 3 и 4 запустят сетевые сервисы. Следующие файлы ответственны за инициализацию сети:
Совместимость с System VСовместимость с System V была предоставлена в Slackware 7.0. Много других Linux дистрибутивов используют этот форматом вместо BSD формата. В этом стиле каждому уровню загрузки предоставляется каталог для сценариев, а в BSD-стиле каждому уровню загрузки соответствует только один сценарий. rc.sysinit сценарий произведёт поиск всех System V init сценариев в /etc/rc.d каталоге и выполнит их, если уровень загрузки соответствующий. Это полезно, если вы пользуетесь коммерческим программным обеспечением, которое устанавливает System V init сценарии, в то же время, вы можете пользоваться и BSD сценариями.
Другие файлыСценарии, описанные ниже - это все остальные загрузочные сценарии. Они обычно выполняются одним из вышеперечисленных основных сценариев, таким образом, всё что вам необходимо сделать для изменения настроек, это отредактировать содержание соответствующих файлов.
Для активизирования сценария всё, что вам нужно сделать, это добавить ему разрешение на выполнение при помощи chmod программы. Чтобы выключить сценарий, удалите разрешение на выполнение соответствующего файла. Для получения дополнительной справки по chmod, смотрите раздел 5.2.2.
4.1.2 Выбор ядраЯдро это та часть операционной системы, которая обеспечивает доступ к аппаратному обеспечению компьютера, управление процессами и контроль за работой всей системы. Ядро содержит поддержку аппаратных устройств, так что выбор ядра для вашей системы - очень важный шаг при установке.Slackware предоставляет около 60-ти прекомпилированных ядер. Так что перед вами открывается широкий выбор. Каждое из ядер включает в себя набор стандартных драйверов, плюс дополнительные специфические драйвера. Вы можете использовать одно из прекомпилированных ядер, или вы можете самоcтоятельно откомпилировать ядро для вашей системы. В любом случае, вам следует убедиться в том, что используемое вами ядро содержит поддержку аппаратных устройств, присутствующих в системе.
Каталог /kernels на Slackware CD-ROMПрекомпилированные Slackware ядра доступны в каталоге /kernels на Slackware CD-ROM, а так же на FTP сайте в основном каталоге Slackware. С появлением новых версий дистрибутива, обновляются и ядра, так что документация в каталоге с ядрами - всегда наиболее полный источник информации по ним. Каталог /kernels содержит под-каталог для каждого из ядер. Имена под-каталогов совпадают с именами ядер. В каждом под-каталоге вы найдёте следующие фалы:
Чтобы установить ядро, скопируйте System.map и config в каталог /boot вашей системы, а образ ядра скопируйте в файл /vmlinuz. Запустите /sbin/lilo(8), чтобы установить LILO для нового ядра, а затем пере загрузите систему. Это всё что вам необходимо проделать для установки одного из прекомпилированных ядер в вашу систему. Ядра, заканчивающиеся на ''.i'' - это IDE ядра. Т.е. они не содержат SCSI поддержки в самом ядре. Ядра, заканчивающиеся с ''.s'' - это SCSI ядра. Они содержат поддержку IDE устройств точно так же, как и ''.i'' ядра, плюс поддержку SCSI.
Компилирование ядра из исходниковНовые пользователи часто спрашивают: ''Следует ли мне компилировать ядро для моей системы?''. Ответ, определённо: может быть. Большинству пользователей подойдёт одно из прекомпилированных ядер, с подгружаемыми модулями для устройств, не поддерживаемых самим ядром. Вы захотите откомпилировать ядро в случае, если вы обновляете его версию на более новое, которое мы ещё не предоставили в Slackware, или если вы наложили патч на исходник вашего ядра. Сборка своего собственного ядра не такой уж сложный процесс. Первым делом необходимо убедиться, что в вашей системе установлен исходный текст ядра. Убедитесь, что вы установили пакеты из раздела K во время установки. Вам так же понадобятся пакеты из раздела D, в частности компилятор C, GNU make и GNU binutils. В общем неплохо бы, чтобы весь раздел D был установлен, если вы собираетесь заниматься разработкой чего либо. Теперь мы готовы к сборке ядра:
Первым делом вернём исходный текст ядра к его первоначальному состоянию. Для этого выполним следующее:
Теперь вы можете настроить ядро под вашу систему. Современное ядро предлагает на ваш выбор три способа выполнения этой задачи. Первый метод - это оригинальная текстовая система вопрос-ответ. Вам будет заданно много вопросов, а после этого будет создан конфигурационный файл. Проблема с этим способом в том, что если вы ошиблись, то вы должны начать всё сначала. Метод, предпочитаемый большинством пользователей - метод, основанный на системе меню. Ну и наконец. последний - X-ориентированный инструмент настройки ядра. Выберите, какой вам больше нравится, и наберите соответствующую команду:
Для новых пользователей, вероятно, menuconfig покажется наиболее простой в использовании. Вы можете найти экраны с помощью, которые объяснят предназначение каждой части ядра. После настройки ядра, выйдите из программы настройки. Она создаст необходимые конфигурационные файлы. Теперь мы можем подготовить дерево исходников ядра к сборке:
Следующий шаг - компиляция ядра. Вначале попробуйте задать команду zImage. Это не пройдёт, если ваше ядро слишком большое. Не волнуйтесь, вы всё ещё можете попробовать bzImage.
В зависимости от скорости процессора, этот процесс может быть достаточно долгим. Во время процесса сборки вы увидите на экране команды компилятора. После сборки образа ядра вы захотите собрать все те части ядра которые вы указали загружаемыми, как модули.
Теперь мы можем установить свеже-скомпилированное ядро и модули. Чтобы установить ядро в Slackware системе, необходимо воспользоваться следующими командами:
Замените zImage на bzImage, если вам пришлось собрать большее ядро. Вероятно, вы захотите отредактировать /etc/lilo.conf файл и добавить соответствующий раздел для вашего старого ядра, на тот случай, если новое ядро не работает. После этого выполните /sbin/lilo, чтобы установить новый загрузочный блок. Теперь вы можете пере-загрузиться с новым ядром.
Использование модулей ядраМодули ядра, это другое название драйверов устройств, которые могут быть вставлены в запущенное ядро. Они позволяют вам расширить список аппаратных устройств, поддерживаемых ядром, без установки другого ядра, или пере-компиляции заново. Модули могут быть загружены или выгружены в любое время, даже во время работы системы. Это позволяет системным администраторам очень легко обновлять драйвера специфических устройств. Новый модуль может быть откомпилирован, старый выгружен, а новый загружен, и всё это без пере-загрузки компьютера. Модули хранятся в каталоге /lib/modules/<kernel version> вашей системы. Они могут быть загружены во время загрузки компьютера из rc.modules файла. В этом файле есть очень много комментариев и примеров для типичных устройств. Для просмотра загруженных модулей воспользуйтесь командой lsmod(1):
Как видно из примера, у меня загружен только модуль параллельного порта. Для выгрузки модуля используйте команду rmmod(1). Модули могут быть загружены командами modprobe(1) или insmod(1). modprobe обычно безопаснее, так как автоматически загрузит модули, необходимые для модуля, который вы пытаетесь загрузить. Большинство пользователей никогда не загружают или выгружают модули вручную. Они пользуются загрузчиком ядра для менеджмента модулей. Всё что вам надо сделать, это раз-комментировать строчку /sbin/kerneld(8) в /etc/rc.d/rc.modules и автозагрузчик запустится. Он позаботится о загрузке и выгрузке модулей по мере надобности. Автозагрузчик определяет, что нужно загрузить модуль по обращению к устройству, для которого в данный момент модуль не загружен. Вы можете найти больше информации в man страницах для каждой из команд, а так же в rc.modules файле.
4.1.3 ИтогДолжно быть, вы теперь знакомы с командами для поиска в файловой системе, с устройством файловой системы, а так же с файлами настроек в каталоге /etc. Эти знания будут вам крайне полезны при более подробном изучении системы. В добавок к этому, вы должны были узнать, как настроить и компилировать ядро из исходников.
File translated from TEX by TTH, version 2.89. On 24 Apr 2001, 16:43. |