Глава 4 Конфигуриране на системата

Съдържание

4.1.0 Преглед
4.2.0 Избор на кернел

Преди да преминете към по-задълбочена конфигурация, добре ще е да научите как е организирана самата система, да се запознаете с някои по-важни команди и др. Добре е да знаете и как да компилирате собствено ядро, според нуждите Ви. Тази глава ще Ви запознае с организацията на системата и конфигурационните файлове. След което, вече ще можете да преминете към по-сложните настройки.

4.1.0 Преглед

Linux значително се различава от DOS, Windows и Macintosh (с изкл. на Unix-базираната Mac OS X), но не се притеснявайте. Секциите тук ще Ви покажат как да настроите Slackware, така че да посрещне вашите нужди.

4.1.1 Файлова система

Първото нещо, което ще забележите в (Slackware) Linux е файловата система. Тук не се използват букви за означението на устройствата, както в DOS / Windows. В Linux има една главна директория (нещо като C: в DOS), но всеки дял от твърдия диск е монтиран вътре в тази главна директория (нещо като D: вътре в C: (C: и D: общи)).

Главната директория се нарича root и се означава с наклонена черта (/). Тази концепция може да Ви изглежда странна, но впоследствие ще разберете, колко е удобна.

По-долу е представена таблица с главните директории в (от първо ниво) /.

binОсновните програми за нормалното функциониране на Linux се намират тук. Неща като shell-а и файлови команди (ls, cp и др.) са записани тук.

bootФайловете записани тук се използват от Linux Loader (LILO). Linux ядрото се намира тук.

devВсичко в Linux се третира под формата на файлове, дори хардуерните устройства, като серийни портове, твърди дискове, скенери и др. is treated as a file, even hardware devices like serial ports, hard disks, and scanners. За да получите достъп до тези устройства, трябва да е наличен специален файл (device node). Тези файлове се съхраняват тук.

etcДиректорията /etc съдържа конфигурационни файлове.

homeLinux е многопотребителска операционна система. Всеки потребител притежава акаунт и собствена директория - домашна директория. В /home по подразбиране се съхраняват потребителските директории.

libСистемните библиотеки, нужни за правилното функциониране на системата се съхраняват тук. Модулите на ядрото също са тук.

mntТази директория съдържа временни точки за монтиране, например за CD-ROM и флопи.

opt Тук са незадължителните софтуерни пакети. Идеята на тази директория е, че всеки софтуерен пакет се инсталира в /opt/software-package, което го прави лесен за последваща деинсталация. В Slackware тук се намира графичната среда KDE, както и някои други неща. Разбира се, Вие сте свободни да слагате, каквото прецените в тази директория.

proc Това е уникална директория. Тя не е точно част от файловата система, по-скоро е виртуална файлова система, предназначена за достъп до информация относно ядрото. Тази информация е достъпна отново чрез специални файлове.

root Системният администратор в Linux е root. Това е неговата домашна директория, причината тя да не е в /home/root е проста; представете си, че /home е на различен дял от / и поради проблем не може да се монтира, а единствено root може да отстрани проблема. Ето защо /root винаги трябва да е на един дял с /. Разбира се има още много причини /root да е извън /home, но засега няма да се впускаме в подробности.

sbin Основните програми използвани от root се съхраняват тук. Обикновените потребители по принцип не използват софтуера от тази директория.

tmpДиректория за временни файлове. Всички потребители имат права за четене и запис тук.

usr Това е най-голямата директория в Linux. Много неща се съхраняват тук, програми, документация, сорс кода на ядрото, X графичната система и др. В тази директория се инсталира по-голямата част от софтуера.

varСистемни log файлове, кеш данни, заключващи файлове и др. се съхраняват тук. Това е директорията с най-динамична промяна на информацията.

По-детайлна информация относно файловата система може да откриете в hier man страницата (man hier). Следващата секция ще Ви помогне да търсите определени файлове лесно.

4.1.2 Търсене на файлове

Сега вече знаете, в коя директория, какво има, но това не Ви помага особено за бързо и лесно търсене на файлове. Разбира се можете да прегледате съдържанието на директориите, но има и по-лесни начини. В Slackware са налични 4 основни команди за търсене.

4.1.2.1 which

Първата от тях е which. which обикновено се използва за бързо локализиране на дадена програма. Командата просто претърсва вашия PATH и връща първата инстанция, която открие. Погледнете този пример:


% which bash

/bin/bash

Тук виждате, че bash се намира в директория /bin. Имайте в предвид, че тази команда е доста ограничена, предвид това, че претърсва само вашият PATH.

4.1.2.2 whereis

Командата whereis работи подобно на which, но претърсва и за man страници, и сорс файлове. Търсене с whereis ще върне подобен резултат:


% whereis bash

bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz

Командата не само връща директорията, където се намира bash, но показва и къде е разположена документацията му. Но също като which, това търсене е ограничено. Ако искате да намерите даден конфогурационен файл, тези команди няма да Ви помогнат особено в повечето случаи.

4.1.2.3 find

Командата find претърсва файловата система. Тя предлага богат избор от опции за търсене. Потребителите могат да търсят с помощта на глобални символи (примерно * в името или разширението на файла означава, че знакът на зададената позиция и тези след нея до края на името, респ. на разширението, могат да бъдат произволни), по време на създаване и др. Примерно за да намерите файла xinitrc, може да ползвате следното:


% find / -name xinitrc

/var/X11R6/lib/xinit/xinitrc

Търсенето с find може да отнеме известно време, понеже трябва да претърси цялата файлова система. Също така, ако тази команда се изпълни от обикновен потребител, ще изведе съобщения за грешки, понеже достъпът до някои директории е позволен само за root. Но find откри нашият файл, така че всичко е наред. Само ако можеше това да стане по-бързо...

4.1.2.4 slocate

Командата slocate претърсва цялата файлова система, също като find, но тя използва предварително изготвена база данни, като по този начин ускорява търсенето (прави го почти моментално). Станадартно базата данни се обновява всяка сутрин, така че разполагате с пресен списък на файловете. Можете да обновите базата данни и ръчно, с помощта на командата updatedb (трябва да сте root, за да направите това). Нека видим slocate в действие:


% slocate xinitrc

/var/X11R6/lib/xinit/xinitrc
/var/X11R6/lib/xinit/xinitrc.fvwm2
/var/X11R6/lib/xinit/xinitrc.openwin
/var/X11R6/lib/xinit/xinitrc.twm

Получихме дори повече от това, което търсихме. И то много бързо. С помощта на тези команди ще намерите всичко, което търсите във вашата система.

4.1.3 Директорията /etc/rc.d

В тази директория се съхраняват файловете за системна инициализация. Slackware използва BSD-стил на инициализация, който е противоположен на System V инициализацията. В BSD скриптовете, всеки runlevel (работно ниво) е представен, като rc файл. В System V, всеки runlevel притежава собствена директория, съдържаща скиптовете.

Съществуват няколко категории инициализиращи файлове. Предназначени са за системно стартиране, работно ниво (режим) (runlevel), мрежова инициализация и System V съвместимост.

4.1.3.1 Системно стартиране

Първата програма (след ядрото), която се стартира в Slackware е init. Тази програма прочита /etc/inittab файла, за да разбере как да стартира системата. Зарежда /etc/rc.d/rc.S скрипта, за подготовка на системата преди да влезете в предпочетения runlevel. rc.S подготвя виртуалната памет (swap), монтира файловите системи, почиства някои log директории, стартира Plug and Play устройствата, зарежда кернел модулите, конфигурира PCMCIA устройствата, настройва серийните портове и зарежда System V инициализиращите скриптове (ако има такива). Очевидно rc.S върши доста работа, но в /etc/rc.d има скриптове, които се използват от rc.S. Нека да ги разгледаме:

rc.s Това всъщност е системният инициализиращ скрипт.

rc.modules Зарежда модулите на ядрото. Няща като мрежови карти, PPP поддръжка и други се зареждат тук. Ако този скрипт открие rc.netdevice, ще зареди и него.

rc.pcmcia Проверява за (и евентуално настройва) PCMCIA устройства. Това е полезно най-вече за преносими компютри, които обикновено са снабдени с PCMCIA модем или мрежова карта.

rc.serial Configures your serial ports by running the appropriate setserial commands.

rc.sysvinit Търси System V инициализиращи скриптове и ако намери ги изпълнява. Това е обяснено по-долу.

4.1.3.2 Runlevel инициализиращи скриптове

След като системната инициализация е приключила, init стартира runlevel инициализация. runlevel-а всъщност е работния режим на машината. Файловете по-долу обясняват различните работни нива в Slackware Linux:

rc.0Спиране на системата (runlevel 0). По подразбиране, rc.6 сочи към този файл.

rc.4Многопотребителски режим (runlevel 4), използва се графичен вход (login) към системата, чрез login менъджер (KDM, GDM или XDM).

rc.6Рестартиране на системата (runlevel 6).

rc.KРежим с един потребител (single user mode) (runlevel 1).

rc.MМногопотребителски режим (runlevels 2 и 3), но със стандартен текстов вход (login) към системата. Това е стандртния работен режим в Slackware.

4.1.3.3 Мрежова инициализация

Работни нива 2, 3 и 4 ще стартират мрежовите устройства. Тези файлове отговарят за мрежовата инициализация:

rc.inet1Създаден с netconfig, този файл отговаря за действителното конфигуриране на мрежовия интерфейс.

rc.inet2Зарежда се след rc.inet1, стартира основни мрежови услуги.

rc.atalkСтартира AppleTalk услуги.

rc.httpdЗарежда Apache уеб сървъра. Както още някои rc скриптове, този може да бъде използван за стартиране / спиране / рестартиране на услугата. Примерно rc.httpd stop ще спре сървъра. Валидни аргументи са stop, start или restart.

rc.newsСтартира news сървър.

4.1.3.4 System V Съвместимост

rc.sysvinit скрипта ще потърси за System V инициализиращи скриптове в /etc/rc.d и ако открие такива, ще ги стартира. Това е полезно при някои комерсиални продукти, които изискват System V инициализация.

4.1.3.5 Други файлове

Скриптовете описани по-долу са другите инициализиращи скриптове. Те обикновено се зареждат от някои главни скриптове (описани по-горе).

rc.gpmСтартира услуга, позволяваща Ви да работите с мишка в конзолата. Ако използвате Х тази услуга вероятно не Ви е нужна, също така могат да възникнат проблеми с X, ако тази услуга е стартирана.<

rc.fontЗарежда собствени шрифтове за конзолата.

rc.localСъдържа програми, които се изпълняват при стартиране на системата. Този файл първоначално е празен, в него можете да сложите програмите, които искате да се стартират в началото. Скрипта се изпълнява последен, след като всички гореописани скриптове завършат.

За да разрешите скрипта, трябва само да му дадете права за изпълнение с chmod командата. За да забраните изпълнението му, просто му отнемете правата за стартиране. Повече информация относно chmod ще откриете в секция 9.2.


Valid XHTML 1.0 Strict