Что такое root system bin

1 Использование LILO или
LILOвая система.

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

LILO может быть также использована, как начальный загрузчик
для нескольких операционных систем, позволяя вам выбирать во
время загрузки, какую операционную систему (например, Linux или
MS-DOS) загружать. Когда вы загружаетесь с использованием LILO,
то загружается операционная система, установленная по умолчанию,
если вы не нажмете shift во время выполнения загрузки. Если вы
нажмете клавишу shift, или если в файле lilo.conf есть директива
prompt, вам будет выдана подсказка загрузчика, в ответ на которую вы
напечатаете имя операционной системы, которую надо загрузить (например,
«linux» или «msdos»). Если вы
нажмете tab в ответ на подсказку загрузчика, вам будет выдан перечень
доступных операционных систем.

Простой способ инсталлировать LILO: отредактировать файл
конфигурации /etc/lilo.conf. После чего команда:

# /sbin/lilo

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

Файл конфигурации LILO содержит записи для каждой операционной
системы, которую вы можете загрузить. Лучший способ
продемонстрировать это на примере конфигурационного файла LILO
config. Нижеприведенные установки для системы, которая имеет
корневой раздел Linux на /dev/hda1 и раздел MS-DOS на
/dev/hda2:

# Tell LILO to modify the boot record, on /dev/hda (the first
# non-SCSI hard drive). If you boot from a drive other than
# /dev/hda, change the following line
boot = /dev/hda

# Set a sane videomode
vga = normal

# Set the delay in milli-seconds. This is the time you have to
# press the 'SHIFT' hey to bring up the LILO prompt if you

# haven't specified the 'prompt' directive
delay = 50

# Name of the boot loader. No reason to modify this unless you're
# doing some serious hacking on LILO
install = /boot/boot.b

# This forces LILO to prompt you for the OS you want to boot
# A 'TAB' hey at the LILO prompt will display a list of the OSs
# available to boot according to the names given in the 'label='
# directives belov;
prompt

# Have LILO perform some optimisation
compact

# Stanza for Linux root partition on /dev1hda1
image = vmlinuz     # Location of kernel
label = linux       # Name of OS (for the LILO boot menu)
root = /dev/hda1    # Location of root partition
read-only           # Mount read only

# Stanza for MSDOS partition on /dev/hda2
other = /dev/hda2   # Location of partition
table = /dev/hda2   # Location of partition table for /dev/hda2
label = msdos       # Name of OS (for boot menu)

Записи первой операционной системы в файле config это та
ОС, которую LILO загружает по умолчанию. Вы можете выбрать другую
ОС во время загрузки в ответ на подсказку LILO, как это уже
обсуждалось ранее. Помните, что каждый раз, когда вы изменяете образ ядра
на диске, вы должны заново выполнить /sbin/lilo, чтобы
изменения отразились в загрузочном секторе вашего диска. Имейте также в виду,
что если вы используете здесь строку «root=», нет смысла
использовать rdev для установки корневого раздела в образе ядра.
LILO установит его сам во время загрузки.

Установщик Microsoft Windows ’95 стирает менеджер загрузки LILO. Если Вы
собираетесь устанавливать Windows ’95 на вашей системе после установки LILO,
создайте сначала диск начальной загрузки (см.
раздел 4.2). С диском начальной
загрузки, Вы сможете загрузить Linux и повторно установить LILO после того,
как поставите Windows ’95. Это делается просто: скомандуйте как root
/sbin/lilo. Разделы с Windows ’95 могут быть конфигурированы
для загрузки через LILO с использованием тех же записей в lilo.conf,
что и для загрузки с раздела MS-DOS.

Linux FAQ (см. Приложение A)
дает дополнительную информацию по тому, как использовать LILO при
загрузке через Boot Manager OS/2.

1 Аккаунт root.

Обычные пользователи в общем случае ограничены так, что они
не могут причинить вред кому-либо другому в системе (включая саму
систему), кроме самих себя. Права доступа к файлам в системе
организованы таким образом, что простой пользователь не может
удалить или изменить файл, файл в каталогах, которые
пользователи используют совместно (такие как /bin и
/usr/bin).
Большинство пользователей также защищают свои собственные файлы
так, что не могут их изменить, а иногда и вообще добраться до
них.

Но все эти ограничения не распространяются на пользователя root.
Пользователь root может читать, модифицировать или удалять любой файл
системы, изменять его права доступа или менять его владельца. Он
(root) может также выполнять специальные (привилегированные)
программы, такие как разбитие диска на разделы или создание файловой системы.
Основная идея состоит в том, что некто (их может быть несколько), кто
выполняет регистрацию пользователей (и носит имя root), должен,
когда это необходимо, иметь возможность выполнять работы, которые не могут
быть выполнены обычным рядовым пользователем. Поскольку root может делать
все, что угодно, ему легко совершить какую-то ошибку, приводящую к
катастрофическим последствиям.

Например, если вы как обычный пользователь случайно
попытаетесь удалить файл в /etc, система не разрешит вам
это сделать. Но, если вы вошли как root, система даже не
пикнет, выполняя все, что прикажете. Легко уничтожить систему, пребывая в
системе в качестве root. Лучший способ избежать неприятностей, это:

  • Посидеть на собственных ладошках, прежде чем нажать
    Enter для выполнения команды, которая может быть причиной
    катастрофы. Например, если вы собираетесь очистить
    каталог, перед нажатием Enter перечитайте всю команду
    и убедитесь, что она написана правильно.
  • Не привыкайте использовать root. Чем более комфортно вам
    будет в роли root, тем больше вы будете путать ваши
    привилегии с привилегиями нормального пользователя.
    Например, вы можете подумать, что вы сейчас находитесь в
    системе как larry, хотя на самом деле будете неудержимым
    root.
  • Используйте отличающуюся подсказку для root. Для этого
    следует внести изменения в root-овский .bashrc или
    .login файл для того, чтобы сделать подсказку для
    root отличной от других. Например, многие используют символ
    «$» в подсказках обычных пользователей и оставляют символ
    «#» для подсказки root.
  • Входите под именем root только тогда, когда это абсолютно
    необходимо. И, как только вы закончите работу root,
    выйдите (выведите root из системы). Чем меньше используете
    root, тем меньше навредите системе.

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

Мы детально обсудим системное администрирование чуть
позже.

2 Резервирование на Zip
диски.

 
Резервирование на Zip диски ничем не отличается от резервирования на
дискеты, но поскольку Zip диски имеют емкость 100 мегабайт, на дискету
помещается меньше. Как правило, архив может быть целиком выгружен на один
Zip диск.

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

SCSI и PPA интерфейсы Zip дисков используют SCSI интерфейс и соглашения
об именах SCSI устройств, которые описаны
здесь.

Zip отформатированы производителем в файловой системе a MS-DOS. Вы
можете использовать имеющуюся файловую систему MS-DOS, которая должна
поддерживаться Вашим ядром Linux kernel, или использовать mke2fs
для создания на диске файловой системы Linux.

Zip диск, который смонтирован на первом SCSI устройстве, называется
/dev/sda4.

# mount /dev/sda4 /mnt

Для доступа к диску нужна отдельная точка монтирования, например,
/zip. Чтобы ее создать скомандуйте от имени root:

# mhdir /zip
# chmod 0755 /zip

Теперь Вы можете использовать /zip для монтирования файловой системы
с Zip диска.

Запись архива на Zip диск аналогично записи на дискету. Для архивации и
сжатия каталога /etc на смонтированный Zip диск скомандуйте:

# tar zcvf /zip/etc.tgz /etc

Данная команда может быть выполнена из произвольного каталога, поскольку
указывает полное имя файла. Архив будет назван etc.tgz, если на Zip
диске файловая система MS-DOS, в которой имя файла должно соответствовать
соглашениям MS-DOS 8+3, в противном случае имя файла будет обрезано.

Для распаковки данного архива, скомандуйте:

# cd /
# tar zxvf /zip/etc.tgz

Для создания, например, файловой системы ext2 на Zip диске, скомандуйте
(на размонтированном Zip диске):

# mke2fs /dev/sda4

Смонтировав Zip диск с файловой системой ext2, можно зарезервировать все
файловые системы одной командой:

# tar zcvf /zip/local.tar.gz /usr/local

Заметьте, что резервирование программой tar все еще
предпочтительнее, чем архивация командой cp -a, поскольку
tar сохраняет время модификации файлов.

3 Выключение системы.

Выключить Linux не так просто. Не забывайте,
что никогда нельзя просто выключить питание или нажать кнопку
«reset» во время работы системы. Ядро отслеживает диск при вводе-выводе с
помощью буферов. Если вы перезагружаете систему, не дав шанса ядру переписать
буфера на диск, вы можете попортить файловые системы. Тем не менее,
переводчик лично знает прекрасных и обаятельных ребят, которые работая
системными администраторами одного университета, выключают систему именно
так. Должен заметить, что тот факт, что их сервер до сих пор работает,
говорит не об квалификации, а о высокой устойчивости Linux, а то, что они до
сих пор работают системными администраторами говорит только о том, что они
нравятся администрации ВУЗа, а не об их знаниях.

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

Простейший способ выключения, это использование команды
shutdown. Формат команды:

shutdown time warning-message

Здесь time задает время выключения системы (в формате hh:mm:ss
или на русском чч:мм:сс
), а warning-message задает сообщение,
выдаваемое на терминалы всех пользователей перед выключением. Вы можете
просто указать время (time) как «now», что приведет к
безотлагательному выключению. Опция -r приведет к перезагрузке
после выключения.

Например, выключить систему в 8:00 вечера можно командой:

# shutdown -r 20:00

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

ВНИМАНИЕ! На выключайте электропитание и не перезагружайте
ее, пока не увидите на консоли сообщение:

The system is halted.

Важно cделать выключение «чисто», используя команды shutdown
или halt. В некоторых системах нажатие ctrl-alt-del
будет перехвачено системой и приведет к ее выключению, но в других
системах использование «затычки для вулкана» приведет к немедленной
перезагрузке системы и может быть причиной крупных неприятностей.

Страница руководства man hier

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

11 Что делать при ЧП.

  
В некоторых случаях администратор системы будет сталкиваться
с проблемой выкарабкивания из абсолютной катастрофы, такой
например, как забытие пароля root или крах файловой системы.
Лучший совет: без паники! Все делают глупые ошибки: это лучший
способ освоить системное администрирование, хотя и тяжелый.

Дополнительно:  Не включается MacBook — почему и что делать?

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

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

Директория для изменяемых данных /var

Файлы заранее неизвестного размера, такие, как файлы журналов, файлы кэша и файлы очереди печати должны сохраняться в директории /var.

Директория /var/log выполняет функции центрального хранилища всех файлов журналов.

[paul@RHEL4b ~]$ ls /var/log
acpid           cron.2    maillog.2   quagga           secure.4
amanda          cron.3    maillog.3   radius           spooler
anaconda.log    cron.4    maillog.4   rpmpkgs          spooler.1
anaconda.syslog cups      mailman     rpmpkgs.1        spooler.2
anaconda.xlog   dmesg     messages    rpmpkgs.2        spooler.3
audit           exim      messages.1  rpmpkgs.3        spooler.4
boot.log        gdm       messages.2  rpmpkgs.4        squid
boot.log.1      httpd     messages.3  sa               uucp
boot.log.2      iiim      messages.4  samba            vbox
boot.log.3      iptraf    mysqld.log  scrollkeeper.log vmware-tools-guestd
boot.log.4      lastlog   news        secure           wtmp
canna           mail      pgsql       secure.1         wtmp.1
cron            maillog   ppp         secure.2         Xorg.0.log
cron.1          maillog.1 prelink.log secure.3         Xorg.0.log.old

Стандартным файлом, к которому следует обратиться в первую очередь при диагностике дистрибутива от компании Red Hat (и производных дистрибутивов), является файл /var/log/messages. По умолчанию данный файл должен содержать информацию о событиях, которые происходят в рамках системы. Файл, выполняющий аналогичные функции в дистрибутивах Debian и Ubuntu, носит имя /var/log/syslog.

[root@RHEL4b ~]# tail /var/log/messages
Jul 30 05:13:56 anacron: anacron startup succeeded
Jul 30 05:13:56 atd: atd startup succeeded
Jul 30 05:13:57 messagebus: messagebus startup succeeded
Jul 30 05:13:57 cups-config-daemon: cups-config-daemon startup succeeded
Jul 30 05:13:58 haldaemon: haldaemon startup succeeded
Jul 30 05:14:00 fstab-sync[3560]: removed all generated mount points
Jul 30 05:14:01 fstab-sync[3628]: added mount point /media/cdrom for...
Jul 30 05:14:01 fstab-sync[3646]: added mount point /media/floppy for...
Jul 30 05:16:46 sshd(pam_unix)[3662]: session opened for user paul by... 
Jul 30 06:06:37 su(pam_unix)[3904]: session opened for user root by paul

Директория /var/cache может содержать кэшированные данные некоторых приложений.

paul@ubu1010:~$ ls /var/cache/
apt      dictionaries-common    gdm       man        software-center
binfmts  flashplugin-installer  hald      pm-utils
cups     fontconfig             jockey    pppconfig
debconf  fonts                  ldconfig  samba

Директория /var/spool обычно содержит поддиректории для хранения файлов с сообщениями электронной почты и данными задач cron, причем она также может быть родительской директорией для других файлов очередей (например, файлов очередей печати).

Директория /var/lib содержит файлы с данными состояния приложений.

Дистрибутив Red Hat Enterprise Linux, к примеру, хранит файлы, относящиеся к менеджеру пакетов rpm, в поддиректории /var/lib/rpm/.

Директория /var также содержит файлы с идентификаторами процессов в поддиректории /var/run (которая в недалеком будущем будет заменена на директорию /run), временные файлы, которые не должны удаляться при перезагрузке, в поддиректории /var/tmp, а также файлы блокировок в поддиректории /var/lock. Далее в данной книге будут приведены дополнительные примеры использования директории /var для хранения данных.

Директории для хранения файлов конфигурации

Директория /boot содержит все файлы, необходимые для загрузки компьютера. Эти файлы не изменяются очень часто. В системах Linux в данной директории обычно можно обнаружить поддиректорию /boot/grub. Директория /boot/grub содержит файл /boot/grub/grub.cfg (на более старых системах также может использоваться файл /boot/grub/grub.conf), в рамках которого описывается меню загрузки, отображаемое перед загрузкой ядра ОС.

Все специфичные для машины конфигурационные файлы должны быть расположены в директории /etc. Изначально имя директории /etc была образовано от слова etcetera (и так далее), но сегодня люди часто расшифровывают его как Editable Text Configuration (директория с редактируемыми текстовыми файлами конфигурации).

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

paul@laika:~$ ls /etc/*.conf
/etc/adduser.conf        /etc/ld.so.conf       /etc/scrollkeeper.conf
/etc/brltty.conf         /etc/lftp.conf        /etc/sysctl.conf
/etc/ccertificates.conf  /etc/libao.conf       /etc/syslog.conf
/etc/cvs-cron.conf       /etc/logrotate.conf   /etc/ucf.conf
/etc/ddclient.conf       /etc/ltrace.conf      /etc/uniconf.conf
/etc/debconf.conf        /etc/mke2fs.conf      /etc/updatedb.conf
/etc/deluser.conf        /etc/netscsid.conf    /etc/usplash.conf
/etc/fdmount.conf        /etc/nsswitch.conf    /etc/uswsusp.conf
/etc/hdparm.conf         /etc/pam.conf         /etc/vnc.conf
/etc/host.conf           /etc/pnm2ppa.conf     /etc/wodim.conf
/etc/inetd.conf          /etc/povray.conf      /etc/wvdial.conf
/etc/kernel-img.conf     /etc/resolv.conf
paul@laika:~$ 

В директории /etc также можно обнаружить большое количество других важных файлов.

Во многих дистрибутивах Unix/Linux имеется директория /etc/init.d, которая содержит сценарии для запуска и остановки демонов. Эта поддиректория может исчезнуть в процессе перехода дистрибутивов Linux на системы инициализации, которые заменят старую систему инициализации init, используемую для запуска всех демонов.

Управление системой вывода графики осуществляется средствами программного обеспечения от организации X.org Foundation (а именно, сервера оконной системы X Window System или просто X). Файл конфигурации для вашего сервера оконной системы носит имя /etc/X11/xorg.conf.

Содержимое директории каркаса /etc/skel копируется в домашнюю директорию при создании учетной записи пользователя. Она обычно содержит такие скрытые файлы, как сценарий .bashrc.

Данная директория, не упомянутая в спецификации FHS, содержит большое количество файлов конфигурации компонентов дистрибутива Red Hat Enterprise Linux. Впоследствии мы будем более подробно рассматривать некоторые из этих файлов. В примере ниже приведен список файлов директории /etc/sysconfig дистрибутива RHELv4u4 в случае установки всех связанных с данной директорией программных компонентов.

paul@RHELv4u4:~$ ls /etc/sysconfig/
apmd         firstboot     irda              network      saslauthd
apm-scripts  grub          irqbalance        networking   selinux
authconfig   hidd          keyboard          ntpd         spamassassin
autofs       httpd         kudzu             openib.conf  squid
bluetooth    hwconf        lm_sensors        pand         syslog
clock        i18n          mouse             pcmcia       sys-config-sec
console      init          mouse.B           pgsql        sys-config-users
crond        installinfo   named             prelink      sys-logviewer
desktop      ipmi          netdump           rawdevices   tux
diskdump     iptables      netdump_id_dsa    rhn          vncservers
dund         iptables-cfg  netdump_id_dsa.p  samba        xinetd
paul@RHELv4u4:~$

Файл /etc/sysconfig/firstboot сообщает агенту настройки дистрибутива Red Hat о том, что он не должен запускаться после загрузки системы. В том случае, если вы желаете использовать агент настройки дистрибутива Red Hat после следующей перезагрузки, вам следует просто удалить данный файл и выполнить команду chkconfig --level 5 firstboot on. Агент настройки дистрибутива Red Hat позволяет устанавливать последние обновления системы, создавать учетные записи пользователей, пользоваться функциями портала Red Hat Network, а также выполнять другие действия. После запуска он снова создаст файл /etc/sysconfig/firstboot.

paul@RHELv4u4:~$ cat /etc/sysconfig/firstboot 
RUN_FIRSTBOOT=NO

Файл /etc/sysconfig/harddisks содержит дополнительные параметры настройки жестких дисков. Формат файла описан в самом файле.

Вы можете ознакомиться с описанием программного обеспечения, обнаруженного утилитой kudzu, которое сохраняется в файле /etc/sysconfig/hwconf. Kudzu является приложением от компании Red Hat, предназначенным для автоматического обнаружения и настройки аппаратного обеспечения.

Тип клавиатуры и таблица соответствия символов устанавливаются в файле /etc/sysconfig/keyboard. Для получения дополнительной информации о настройках клавиатуры в консоли следует обратиться к следующим страницам руководств keymaps(5), dumpkeys(1), loadkeys(1), а также к содержимому директории /lib/kbd/keymaps/.

root@RHELv4u4:/etc/sysconfig# cat keyboard 
KEYBOARDTYPE="pc"
KEYTABLE="us"

Файлы для настройки сетевых устройств из данной директории будут обсуждаться в главе, посвященной настройке сети.

2 Имена устройств.

Таблица 4.2: Имена IDE устройств.

CD-ROM и стриммеры, использующие IDE/ATAPI интерфейс, также используют
данные имена устройств.

Таблица 4.3: Имена SCSI устройств.

SCSI CD-ROM и стриммеры именуются не так, как жесткие диски на SCSI.
Сменные SCSI средства, например Iomega Zip drive, следуют соглашениям
наименования для несменных дисков SCSI. Использование Iomega Zip drive для
резервирования описано ниже.

Стриммеры с поддержкой форматов магнитной ленты QIC-02, QIC-40 и QIC-80
имеют собственный набор имен устройств, который описан
ниже.

Гибкие диски используют другую схему
именования устройств.

Корневая директория /

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

[paul@RHELv4u3 ~]$ ls /
bin   dev  home  media  mnt  proc  sbin     srv  tftpboot  usr
boot  etc  lib   misc   opt  root  selinux  sys  tmp       var

3 Резервирование на
стриммер.

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

Таблица 4.5: Имена устройств стриммера.

Некоторые стриммеры используют контроллер дискет и управляются ftape
драйвером, который описан ниже. Инсталляция модуля драйвера ftape описана
здесь. Имена SCSI стриммеров перечислены
а таблице 4.3.

Для архивации каталога /etc на стриммер с применением
tar скомандуйте:

# tar cvf /dev/qftO /etc

Для распаковки файлов с ленты, скомандуйте:

# cd /
# tar xvf /dev/qftO

Ленты, как и дискеты, перед использованием должны быть отформатированы.
Драйвер ftape может форматировать ленты под Linux. Для форматирования ленты
формата QIC-40 скомандуйте:

# ftformat -format-parameter qic40-205ft -mode-auto --omit-erase -discard-header

Другие стриммеры имеют свой софт для форматирования. Посмотрите документацию
на стриммер или на связанный с ним драйвер устройства.

Перед извлечением ленты из стриммера ее надо перемотать и записать на
ленту буфера ввода-вывода. Это аналог размонтирования файловой системы на
дискете перед ее извлечением, поскольку стриммер также буферизуется в памяти.
Стандартной командой UNIX для управления стриммером является mt.
Ваша система может и не поддерживать эту команду. Ftape драйвер имеет
подобную команду, ftmt, которая используется, чтобы управлять
операциями с лентами.

Для перемотки ленты перед ее извлечением, скомандуйте:

# ftmt -f /dev/qftO retension

Конечно, впишите правильное имя стриммера для вашей системы.

Чтобы получить состояние стриммера с отформатированной лентой в нем,
используйте команду:

# ftmt -f /dev/qftO status

Директории в оперативной памяти

Файлы устройств из директории /dev выглядят как обычные файлы, но на самом деле не являются обычными файлами, размещенными на жестком диске. Директория /dev заполняется файлами в процессе определения устройств средствами ядра операционной системы.

Стандартные физические устройства

Стандартные устройства, такие, как жесткие диски, представлены файлами устройств в директории /dev. В примере ниже приведен список файлов устройств SATA ноутбука, а также устройств IDE настольного компьютера. (Подробное описание назначения этих файлов устройств будет приведено ниже.)

#
# Устройства SATA или SCSI или USB
#
paul@laika:~$ ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb  /dev/sdb1  /dev/sdb2

#
# Устройства IDE или ATAPI
#
paul@barry:~$ ls /dev/hd*
/dev/hda  /dev/hda1  /dev/hda2  /dev/hdb  /dev/hdb1  /dev/hdb2  /dev/hdc

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

Файлы устройств /dev/tty и /dev/pts

К примеру, файл устройства /dev/tty1 представляет терминал или консоль, соединенную с системой. (Не стоит ломать голову над точными значениями терминов ‘терминал’ или ‘консоль’, так как в данном случае имеется в виду интерфейс командной строки системы.) При вводе команд в эмуляторе терминала, поставляемом в составе такого графического окружения рабочего стола, как Gnome или KDE, ваш терминал будет представлен файлом устройства /dev/pts/1 (вместо числа 1 может использоваться другое число).

Файл устройства /dev/null

В Linux вы можете обнаружить и другие файлы специальных устройств, такие, как файл устройства /dev/null, которое может рассматриваться как черная дыра; хотя соответствующее устройство и имеет неограниченную емкость, после записи из него не могут быть прочитаны никакие данные. Говоря техническим языком, любые записанные на представленное файлом /dev/null устройство данные будут просто отброшены. Представленное файлом /dev/null устройство может быть использовано для отбрасывания ненужного вывода различных команд. Помните о том, что представленное файлом /dev/null устройство не является удачным местом для хранения ваших резервных копий данных 😉.

Директория /proc и взаимодействие с ядром ОС

Директория /proc является другой специальной директорией, которая содержит файлы, кажущиеся на первый взгляд обычными файлами, но не занимающие места на диске. На самом деле содержимое данной директории является представлением ядра ОС, а точнее, используемых ядром ОС структур данных и предназначено для непосредственного взаимодействия с ядром ОС. В директорию /proc монтируется специальная файловая система procfs.

paul@RHELv4u4:~$ mount -t proc
none on /proc type proc (rw)

При выводе содержимого директории /proc можно обнаружить множество директорий с именами, представленными числовыми значениями (в любой системе Unix), а также некоторые интересные файлы (в Linux).

mul@laika:~$ ls /proc
1      2339   4724  5418  6587  7201       cmdline      mounts
10175  2523   4729  5421  6596  7204       cpuinfo      mtrr
10211  2783   4741  5658  6599  7206       crypto       net
10239  2975   4873  5661  6638  7214       devices      pagetypeinfo
141    29775  4874  5665  6652  7216       diskstats    partitions
15045  29792  4878  5927  6719  7218       dma          sched_debug
1519   2997   4879  6     6736  7223       driver       scsi
1548   3      4881  6032  6737  7224       execdomains  self
1551   30228  4882  6033  6755  7227       fb           slabinfo
1554   3069   5     6145  6762  7260       filesystems  stat
1557   31422  5073  6298  6774  7267       fs           swaps
1606   3149   5147  6414  6816  7275       ide          sys
180    31507  5203  6418  6991  7282       interrupts   sysrq-trigger
181    3189   5206  6419  6993  7298       iomem        sysvipc
182    3193   5228  6420  6996  7319       ioports      timer_list
18898  3246   5272  6421  7157  7330       irq          timer_stats
19799  3248   5291  6422  7163  7345       kallsyms     tty
19803  3253   5294  6423  7164  7513       kcore        uptime
19804  3372   5356  6424  7171  7525       key-users    version
1987   4      5370  6425  7175  7529       kmsg         version_signature
1989   42     5379  6426  7188  9964       loadavg      vmcore
2      45     5380  6430  7189  acpi       locks        vmnet
20845  4542   5412  6450  7191  asound     meminfo      vmstat
221    46     5414  6551  7192  buddyinfo  misc         zoneinfo
2338   4704   5416  6568  7199  bus        modules

Давайте обратим внимание на свойства файлов из директории /proc. При рассмотрении даты и времени изменения данных файлов можно отметить, что эти параметры соответствуют текущим значениями даты и времени, из чего можно сделать вывод, что содержимое данных файлов постоянно обновляется (для предоставления доступа к актуальному содержимому используемых ядром ОС структур данных).

Дополнительно:  Kingo root вирус или нет

paul@RHELv4u4:~$ date
Пн янв 29 18:06:32 EST 2007
paul@RHELv4u4:~$ ls -al /proc/cpuinfo 
-r--r--r--  1 root root 0 ноя 29 18:06 /proc/cpuinfo
paul@RHELv4u4:~$ 
paul@RHELv4u4:~$  ...через некоторое время...
paul@RHELv4u4:~$ 
paul@RHELv4u4:~$ date
Пн янв 29 18:10:00 EST 2007
paul@RHELv4u4:~$ ls -al /proc/cpuinfo 
-r--r--r--  1 root root 0 ноя 29 18:10 /proc/cpuinfo

Размер большинства файлов из директории /proc равен 0 байт, но при этом файлы из данной директории содержат данные, а иногда большие объемы данных. Вы можете ознакомиться с этими данными, использовав команду cat по отношению к таким файлам, как файл /proc/cpuinfo, который содержит информацию о центральном процессоре.

paul@RHELv4u4:~$ file /proc/cpuinfo 
/proc/cpuinfo: empty
paul@RHELv4u4:~$ cat /proc/cpuinfo 
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 43
model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 4600+
stepping        : 1
cpu MHz         : 2398.628
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge...
bogomips        : 4803.54
paul@pasha:~$ cat /proc/cpuinfo
cpu : TI UltraSparc III (Cheetah)
fpu : UltraSparc III integrated FPU
promlib : Version 3 Revision 2
prom : 4.2.2
type : sun4u
ncpus probed : 2
ncpus active : 2
Cpu0Bogo : 498.68
Cpu0ClkTck : 000000002cb41780
Cpu1Bogo : 498.68
Cpu1ClkTck : 000000002cb41780
MMU Type : Cheetah
State:
CPU0: online
CPU1: online 

Большая часть файлов из директории /proc предназначена исключительно для чтения, причем для чтения некоторых из них требуются привилегии пользователя root; в некоторые файлы могут записываться данные, причем в директории /proc/sys таких файлов большинство. Давайте поговорим о некоторых файлах из директории /proc.

В системе архитектуры x86 в файле /proc/interrupts содержится информация о запросах прерываний.

paul@RHELv4u4:~$ cat /proc/interrupts 
           CPU0       
  0:   13876877    IO-APIC-edge  timer
  1:         15    IO-APIC-edge  i8042
  8:          1    IO-APIC-edge  rtc
  9:          0   IO-APIC-level  acpi
 12:         67    IO-APIC-edge  i8042
 14:        128    IO-APIC-edge  ide0
 15:     124320    IO-APIC-edge  ide1
169:     111993   IO-APIC-level  ioc0
177:       2428   IO-APIC-level  eth0
NMI:          0 
LOC:   13878037 
ERR:          0
MIS:          0

При использовании машины с двумя центральными процессорами данный файл выглядит следующим образом.

paul@laika:~$ cat /proc/interrupts 
          CPU0      CPU1       
  0:    860013        0  IO-APIC-edge     timer
  1:      4533        0  IO-APIC-edge     i8042
  7:         0        0  IO-APIC-edge     parport0
  8:   6588227        0  IO-APIC-edge     rtc
 10:      2314        0  IO-APIC-fasteoi  acpi
 12:       133        0  IO-APIC-edge     i8042
 14:         0        0  IO-APIC-edge     libata
 15:     72269        0  IO-APIC-edge     libata
 18:         1        0  IO-APIC-fasteoi  yenta
 19:    115036        0  IO-APIC-fasteoi  eth0
 20:    126871        0  IO-APIC-fasteoi  libata, ohci1394
 21:     30204        0  IO-APIC-fasteoi  ehci_hcd:usb1, uhci_hcd:usb2
 22:      1334        0  IO-APIC-fasteoi  saa7133[0], saa7133[0]
 24:    234739        0  IO-APIC-fasteoi  nvidia
NMI:        72       42 
LOC:    860000   859994 
ERR:         0

Физическая память представлена файлом /proc/kcore. Не пытайтесь использовать команду cat по отношению к этому файлу; вместо этого при необходимости исследования содержимого оперативной памяти используйте отладчик. Размер файла /proc/kcore совпадает с объемом вашей оперативной памяти плюс четыре байта.

paul@laika:~$ ls -lh /proc/kcore 
-r-------- 1 root root 2.0G 2007-01-30 08:57 /proc/kcore
paul@laika:~$

Директория /sys для работы с системой горячего подключения устройств ядра Linux 2.6

Директория /sys была создана в процессе разработки версии 2.6 ядра Linux. С момента выпуска версии 2.6 ядро Linux использует файловую систему sysfs для реализации механизма горячего подключения устройств, использующих шины usb и IEEE 1394 (FireWire). Обратитесь к страницам руководств udev(8) (данная подсистема пришла на смену подсистеме devfs) и hotplug(8) для получения дополнительной информации (или посетите ресурс http://linux-hotplug.sourceforge.net/).

По существу, директория /sys содержит файлы с информацией об используемом аппаратном обеспечении.

Директория системных ресурсов Unix /usr

Директория /usr/bin содержит множество реализаций команд.

paul@deb508:~$ ls /usr/bin | wc -l
1395

(В системе Solaris директория /bin является символьной ссылкой на директорию /usr/bin.)

Директория /usr/include содержит общедоступные заголовочные файлы для языка программирования C.

paul@ubu1010:~$ ls /usr/include/
aalib.h        expat_config.h      math.h           search.h
af_vfs.h       expat_external.h    mcheck.h         semaphore.h
aio.h          expat.h             memory.h         setjmp.h
AL             fcntl.h             menu.h           sgtty.h
aliases.h      features.h          mntent.h         shadow.h
...

Директория /usr/lib содержит разделяемые библиотеки, которые не используются непосредственно пользователями или сценариями.

paul@deb508:~$ ls /usr/lib | head -7
4Suite
ao
apt
arj
aspell
avahi
bonobo

Директория /usr/local может использоваться системным администратором для локальной установки программного обеспечения.

paul@deb508:~$ ls /usr/local/
bin  etc  games  include  lib  man  sbin  share  src
paul@deb508:~$ du -sh /usr/local/
128K    /usr/local/
paul@deb508:~$ ls /usr/share/ | wc -l
263
paul@deb508:~$ du -sh /usr/share/
1.3G    /usr/share/
paul@deb508:~$ ls /usr/share/man
cs  fr            hu            it.UTF-8  man2  man6  pl.ISO8859-2  sv
de  fr.ISO8859-1  id            ja        man3  man7  pl.UTF-8      tr
es  fr.UTF-8      it            ko        man4  man8  pt_BR         zh_CN
fi  gl            it.ISO8859-1  man1      man5  pl    ru            zh_TW
paul@ubu1010:~$ ls /usr/share/games/
openttd  wesnoth

Директория /usr/src является рекомендуемой директорией для хранения файлов исходного кода ядра ОС.

paul@deb508:~$ ls -l /usr/src/
итого 12
drwxr-xr-x  4 root root 4096 2011-02-01 14:43 linux-headers-2.6.26-2-686
drwxr-xr-x 18 root root 4096 2011-02-01 14:43 linux-headers-2.6.26-2-common
drwxr-xr-x  3 root root 4096 2009-10-28 16:01 linux-kbuild-2.6.26

5 Использование своп-файла.

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

Если у вас есть инсталлированная система Linux, вы можете
использовать следующие команды для создания файла свопинга. Ниже
мы собираемся создать файл свопинга размером в 8208 блоков (около 8 Мбайт):

# dd if=/dev/zero of=/swap bs=1024 count=8208

Эта команда создает файл свопинга /swap. Замените
«count=» размером файла свопинга в блоках:

# mhswap /swap 8208

Эта команда инициализирует swap-файл; вновь замените имя и
размер своп-файла соответствующими значениями:

# sync
# swapon /swap

Теперь в свопинге будет задействован файл /swap, который мы
создали, после синхронизации командой sync, которая гарантирует, что
файл был записан на диск.

Главная неприятность, связанная с использованием swap-файлов,
состоит в том, что доступ к ним происходит через файловую систему. Это
означает, что блоки, составляющие swap-файл могут быть не смежными на диске.
То есть скорость свопинга при использовании swap-файла ниже, чем при
использовании swap-раздела, для которой блоки всегда смежны (последовательны)
и запросы на ввод/вывод происходят прямо к устройству.

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

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

Для того, чтобы избавиться от файла свопинга, вначале
используйте swapoff:

# swapoff /swap

А теперь вы можете смело удалить файл:

# rm /swap

Корректная процедура выполнения практического задания

ls /bin/cat ; file /bin/cat
ls /bin/dd ; file /bin/dd
ls /bin/echo ; file /bin/echo	

2. Каков общий объем файлов ядра Linux (vmlinu*) в директории /boot?

3. Создайте директорию ~/test. После этого выполните следующие команды:

cd ~/test
dd if=/dev/zero of=zeroes.txt count=1 bs=100
od zeroes.txt

Утилита dd осуществит копирование одного блока (count=1) размером в 100 байт (bs=100) из специального файла /dev/zero в файл ~/test/zeroes.txt. Какие пояснения вы можете дать относительно возможностей специального файла /dev/zero?

Файл /dev/zero является специальным файлом устройства Linux. Он может рассматриваться как источник нулевых байт. Вы не можете записать какие-либо данные в файл /dev/zero, но вы можете читать нулевые байты из него.

4. А теперь выполните следующую команду:

dd if=/dev/random of=random.txt count=1 bs=100 ; od random.txt

Утилита dd осуществит копирование одного блока (count=1) размером в 100 байт (bs=100) из специального файла /dev/random в файл ~/test/random.txt. Какие пояснения вы можете дать относительно возможностей специального файла /dev/random?

Файл /dev/random выступает в качестве генератора случайных чисел вашей машины, работающей под управлением Linux.

5. Выполните две следующие команды и обратите внимание на первый символ вывода каждой из команд.

ls -l /dev/sd* /dev/hd*
ls -l /dev/tty* /dev/input/mou*

С помощью первой команды будет выведен список файлов блочных устройств, с помощью второй — список файлов символьных устройств. Что вы можете сказать по поводу различий между символьными и блочными устройствами.

Данные всегда записываются на блочные устройства (или читаются с них) блоками. В случае жестких дисков размер блоков обычно равен 512 байтам. Символьные устройства работают как источники или приемники потоков символов (или байт). Мышь и клавиатура являются типичными символьными устройствами.

6. Используйте команду cat для вывода содержимого файлов /etc/hosts и /etc/resolv.conf. Что вы думаете по поводу предназначения данных файлов?

Файл /etc/hosts содержит имена узлов с соответствующими им IP-адресами
Файл /etc/resolv.conf должен содержать IP-адреса серверов имен DNS.

7. Хранятся ли какие-нибудь файлы в директории /etc/skel/? Не забудьте проверить наличие скрытых файлов.

Выполните команду «ls -al /etc/skel/». Да, в данной директории должны храниться скрытые файлы.

8. Выведите содержимое файла /proc/cpuinfo. Машину какой архитектуры вы используете для работы с Linux?

Данный файл должен содержать как минимум одну строку с названием модели центрального процессора производства компании Intel или какой-либо другой компании.

9. Выведите содержимое файла /proc/interrupts. Каков размер этого файла? Где хранится данный файл?

10. Можете ли вы перейти в директорию /root? Есть ли в этой директории файлы (в том числе скрытые)?

Попытайтесь выполнить команду «cd /root». Директория /root не доступна для чтения обычными пользователями в большинстве современных дистрибутивов Linux.

11. Существуют ли бинарные файлы ifconfig, fdisk, parted, shutdown и grup-install в директории /sbin? По какой причине эти бинарные файлы размещены в директории /sbin, а не в директории /bin?

Да. Так как данные бинарные файлы должны использоваться исключительно системными администраторами.

12. Является ли /var/bin файлом или директорией? Как насчет /var/spool?

По обоим путям расположены директории.

Терминал: tty-terminal: echo Hello > /dev/tty1
Эмулятор терминала: pts-terminal: echo Hello > /dev/pts/1

14. Прочитайте страницу руководства random и попытайтесь на основе полученной информации объяснить разницу между специальными файлами /dev/random и /dev/urandom.


Если вам понравилась статья, поделитесь ею с друзьями:


6 Работа с пользователями.

Вне зависимости от того, много у вас пользователей или нет,
важно понять проблему работы с пользователем Linux. Даже если вы
единственный пользователь вы должны иметь различные account для
root и для себя.

Каждый человек, использующий систему, должен иметь свой
собственный account (быть индивидуально зарегистрированным в
системе). Редко может быть целесообразно, чтобы несколько человек
входили в систему под одним именем. Здесь дело не только в
безопасности, но account используется для идентификации
пользователя в системе. Необходимо иметь возможность проследить,
кто что делает.

3 Можно вместе.

Чтобы заархивировать и сжать группу файлов, вы можете
использовать команды:

# tar cvf backup.tar /etc
# gzip -9 backup.tar

Результат будет backup.tar.gz. Для распаковки этого файла
используйте обратную последовательность команд:

# gunzip backup.tar.gz
# tar xvf backup.tar

Разумеется, всегда следует убедиться перед распаковкой
файла, что вы в нужном каталоге.

Вы можете опереться на некоторую сообразительность UNIX,
позволяющего сделать это одной командной строкой:

# tar cvf - /etc|gzip -9c>backup.tar.gz

Здесь мы посылаем tar-файл, сформированный из
/etc, в файл «-», который представляет
стандартный вывод. Результат по конвейеру поступает на ввод команды
gzip, которая сжимает этот файл и результат сохраняет в
backup.tar.gz. Опция -c команды gzip
говорит, что вывод команды gzip посылает результат на
стандартный вывод, который перенаправляется на backup.tar.gz.

Единственная команда для распаковки этого архива:

Дополнительно:  Rozen root

# gunzip -c backup.tar.gz|tar xvf -

Опять, команда gunzip рассжимает содержимое файла
backup.tar.gz и посылает результирующий файл на стандартный
вывод. Он по конвейеру передается команде tar, которая
читает файл «-», что в данном случае олицетворяет
стандартный вывод.

К счастью, команда tar также содержит опцию
z, автоматически сжимая-расжимая файлы, используя алгоритм
компрессии gzip.

# tar cvf backup.tar.gz /etc

# tar cvf backup.tar /etc
# gzip backup.tar

Как и команда:

# tar xvf backup.tar.Z

может быть использована вместо:

# uncompress backup.tar.Z
# tar xvf backup.tar

За дополнительной информацией обратитесь к man-руководству по
tar и gzip.

2 Добавление драйвера
устройства к ядру.

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

Вы должны сформировать и поставить заказное ядро Linux kernel,
как описано в предыдущем разделе.

Выбор устройства устройства Zip ppa требует ответа Y на
соответствующие вопросы на шаге конфигурации, когда Вы определяете
конфигурацию заказного ядра. В частности, устройство ppa требует
ответа «Y» на три вопроса:

SCSI support? [Y/n/m] Y
SCSI disk support? [Y/n/m] Y
IOMEGA Parallel Port Zip Drive SCSI support? [Y/n/m] Y

После успешного выполнения make config выполните
make dep, make cleanи make zImage для создания
ядра, Вы должны сообщить ядру, как установить драйвер. Это делается через
командную строку LILO. Как описано в разделе
4.2.1
, файл настройки LILO, /etc/lilo.conf имеет секции для
каждой ОС, которую он знает и директивы для запроса параметров у пользователя
при начальной загрузке машины.

Есть директива «append=», которая позволяет добавлять при
загрузке информацию для различных драйверов устройств в командной строке. В
данном случае, драйвер Iomega Zip ppa требует свободного адреса
I/O port и свободного прерывания. Это аналогично определению отдельных
устройств принтера LPT1: и LPT2: под MS-DOS.

Например, если Ваш принтер использует шестнадцатеричный (основание 16)
адрес порта 0x378 (см. руководство по Вашей карте параллельных
портов, если адрес неизвестен) и опрашивается (то есть не требуется линия
IRQ, обычная конфигурация Linux), Вы должны вписать в /etc/lilo.conf
строку:

append="lp=0x378,0"

Стоит заметить, что Linux автоматически распознает один порт /dev/lp
при загрузке, но в специальных конфигурациях параметры загрузки необходимы.

«0» после адреса порта сообщает, чтобы ядро не
использовало IRQ (запрос прерывания) для принтера. Это обычно применяется
потому, что принтеры намного медленнее, чем CPU, более медленный метод
обращения к устройствам ввода-вывода, известен как polling, где ядро
периодически проверяет состояние принтера, что позволяет компьютеру не
отставать от принтера.

Однако, устройства которые функционируют на более высоких скоростях,
подобно последовательным линиям и дискам, требуют IRQ, или линию
запроса прерывания. Это аппаратный сигнал, посылаемый устройством процессору
всякий раз, когда устройство требует внимания процессора; например, если
устройство имеет данные для передачи на процессор. Процессор останавливает
любой процесс и обрабатывает запрос прерывания от устройства. Диск Zip
ppa требует свободного прерывания, которое должно соответствовать
прерыванию, которое установлено на плате принтера, к которой подключен Zip.
В настоящее время драйвер устройства Linux ppa не поддерживает
формирование цепочки устройств параллельного порта, так что для Zip
ppa и разных принтеров должны использоваться отдельные порты.

Определить, какие прерывания уже используются в Вашей системе, можно
командой:

# cat /proc/interrupt

Она отображает список устройств и линий IRQ, которые они используют. Однако,
Вы также должны быть внимательным, чтобы не использовать автоматически
конфигурируемое прерывание последовательного порта, которое не может быть
перечислено в файле /proc/interrupt. Linux Documentation Project
Serial HOWTO, доступное на сайтах, перечисленных в
приложении A, подробно описывает
конфигурацию последовательных портов.

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

Типичный файл /proc/interrupt выглядит примерно так:

0  6091646 timer
1  40690   keyboard
2  0       cascade
4  284686  + serial
13 1       math error
14 192560  + ideO

Нам интересен первый столбец. Он перечисляет номера линий IRQ, которые
использованы в Вашей системе. Для ppa драйвера мы хотим выбрать
линию, которая здесь еще не перечислена. IRQ 7 часто хороший выбор,
поскольку она редко используется в заданных по умолчанию конфигурациях
системы. Мы также должны определить адрес порта, который использует
устройство ppa. Этот адрес должен быть физически сконфигурирован на
плате интерфейса. Параллельным портам ввода-вывода назначены специфические
адреса, так что Вы должны почитать документацию для вашей платы параллельного
порта. В этом примере, мы используем порт ввода-вывода, адрес которого
0x278, который соответствует LPT2: порт принтера под MS-DOS.

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

append="lp=0x378.0 ppa=0x278.7"

Эти инструкции добавятся к параметрам запуска ядра при начальной загрузке.
Они гарантируют, что любой принтер, подключенный к системе не сталкивается с
Zip диском. Конечно, если ваша система не имеет принтера, директива
«lp=» может и должна быть опущена.

После того, как Вы установили заказное ядро как описано в
разделе 4.2.1, прежде, чем Вы перезагрузите
систему, убедитесь, что выполнили команду:

# /sbin/lilo

для установки в загрузочный сектор жесткого диска новых настроек LILO.

3 Удаление пользователей.

Если вы пожелаете временно «отключить» пользователя от
системы, (без удаления его аккаунта), вы можете просто приписать
звездочку («*») в поле пароля в файле пароля
/etc/passwd. Например, изменение пароля у kiwi в
файле /etc/passwd:

kiwi:*Xv80981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bash

закроет для kiwi вход в систему.

2 gzip и
compress.

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

# gzip -9 backup tar

сожмет backup.tar и оставит вас наедине с
backup.tar.gz, сжатой версией файла. Опция -9
говорит команде gzip, что следует использовать максимально
возможную компрессию.

Команда gunzip может быть использована для расжатия сжатого
файла. С аналогичным эффектом вы можете использовать команду
«gzip -d».

gzip сравнительно новый инструмент в кругах, приближенных
к UNIX. Долгие годы вместо этого использовалась команда
compress. Однако, по нескольким причинам (тут и патентные
проблемы относительно алгоритма, и то, что gzip значительно
эффективнее) compress оказался не у дел.

Обработанные командой compress файлы заканчивались
расширением .Z. Например, backup.tar.Z это сжатая
compress версия файла backup.tar, а
backup.tar.gz сжатая gzip версия. Чтобы еще надежнее
запутать дело, для обозначения gzip файлов некоторое время
использовалось расширение .z (маленькая «z»).
В настоящее время официальное расширение .gz. Команда uncompress
используется для развертывания файла, который был обработан командой
compress. Функционально она равнозначна команде
compress -d. Но команда gunzip тоже знает, как
обращаться с такими файлами.

8 Использование дискет и
осуществление резервирования.

  
 
Дискеты часто используются как средство резервирования. Если
у вас нет (стриммера), можно использовать дискеты (хотя они
медленнее и, в некотором смысле, менее надежны).

Как упоминалось выше, дискеты должны быть отформатированы программами
MS-DOS FORMAT.COM или Linux fdformat.

Некоторые имена устройств и доступные в Linux форматы дискет приведены в
таблице 4.4.

Floppy device driver   Format

/dev/fd0d360           Double density 360Kb 5.25
/dev/fd0h1200          High density 1.2 MB 5.25
/dev/fd0h1440          High density 1.44 MB 3.5

Таблица 4.4: Форматы дискет в Linux.

Устройства начинаются с fd0, что соответствует первому дисководу
для дискет, который называется A: в системе MS-DOS. Имя второго
дисковода fd1. Вообще, ядро Linux может определить формат дискеты,
которая уже отформатирована: можно просто указать /dev/fd0 и
оставить определение формата на долю системы. Но когда вы используете еще не
отформатированную дискету, такой фокус не пройдет.

Полный перечень устройств и их имен в Linux опубликован в Linux
Allocated Devices,
, автор H. Peter Anvin (см.
приложение A).

Вы можете использовать дискеты также для хранения отдельных файловых
систем, в этом случае вы должны смонтировать (mount)
дискету для получения доступа к ее данным. Подробности в
разделе 4.8.4.
разделе 4.8.4.

Директории для хранения бинарных файлов

Бинарные файлы являются файлами, содержащими скомпилированный исходный код (или машинный код). Бинарные файлы могут исполняться на компьютере. Иногда бинарные файлы также называются исполняемыми файлами.

Директория /bin содержит бинарные файлы, которые могут использоваться всеми пользователями. В соответствии со спецификацией FHS, директория /bin должна содержать исполняемые файлы /bin/cat и /bin/date (помимо других исполняемых файлов).

paul@laika:~$ ls /bin
archdetect       egrep             mt               setupcon
autopartition    false             mt-gnu           sh
bash             fgconsole         mv               sh.distrib
bunzip2          fgrep             nano             sleep
bzcat            fuser             nc               stralign
bzcmp            fusermount        nc.traditional   stty
bzdiff           get_mountoptions  netcat           su
bzegrep          grep              netstat          sync
bzexe            gunzip            ntfs-3g          sysfs
bzfgrep          gzexe             ntfs-3g.probe    tailf
bzgrep           gzip              parted_devices   tar
bzip2            hostname          parted_server    tempfile
bzip2recover     hw-detect         partman          touch
bzless           ip                partman-commit   true
bzmore           kbd_mode          perform_recipe   ulockmgr
cat              kill              pidof            umount
...

Другие директории /bin

Вы можете обнаружить поддиректорию /bin во многих других директориях. Например, пользователь с именем serena может разместить свои собственные приложения в поддиректории /home/serena/bin.

Файлы некоторых приложений, обычно в случае установки путем непосредственной сборки из исходного кода, устанавливаются в директорию /opt. К примеру, при установке сервера samba для хранения бинарных файлов может быть использована поддиректория /opt/samba/bin.

Директория /sbin содержит бинарные файлы, предназначенные для настройки операционной системы. Многие из бинарных файлов для настройки системы требуют наличия привилегий пользователя root для выполнения определенных задач.

paul@ubu1010:~$ ls -l /sbin/ifconfig /sbin/fdisk /sbin/mkfs.ext4
-rwxr-xr-x 1 root root 97172 2011-02-02 09:56 /sbin/fdisk
-rwxr-xr-x 1 root root 65708 2010-07-02 09:27 /sbin/ifconfig
-rwxr-xr-x 5 root root 55140 2010-08-18 18:01 /sbin/mkfs.ext4

Бинарные файлы из директорий /bin и /sbin обычно используют разделяемые библиотеки, расположенные в директории /lib. В примере ниже приведен список некоторых файлов из директории /lib.

paul@laika:~$ ls /lib/libc*
/lib/libc-2.5.so     /lib/libcfont.so.0.0.0  /lib/libcom_err.so.2.1    
/lib/libcap.so.1     /lib/libcidn-2.5.so     /lib/libconsole.so.0      
/lib/libcap.so.1.10  /lib/libcidn.so.1       /lib/libconsole.so.0.0.0  
/lib/libcfont.so.0   /lib/libcom_err.so.2    /lib/libcrypt-2.5.so

Обычно ядро Linux загружает модули из директории /lib/modules/$версия-ядра/. Содержимое этой директории будет подробно описано в главе, посвященной ядру Linux.

Директории /lib32 и /lib64

На данный момент осуществляется медленная миграция с 32-битных на 64-битные системы. По этой причине вы можете обнаружить в своей системе директории с именами /lib32 и /lib64, которые указывают на размеры регистров, использованные в процессе компиляции расположенных в этих директориях разделяемых библиотек. 64-битный компьютер может содержать некоторые 32-битные бинарные файлы и библиотеки, используемые для достижения совместимости с устаревшими приложениями. В примере ниже утилита file используется для демонстрации описанных различий между разделяемыми библиотеками.

paul@laika:~$ file /lib32/libc-2.5.so 
/lib32/libc-2.5.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, stripped
paul@laika:~$ file /lib64/libcap.so.1.10 
/lib64/libcap.so.1.10: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), stripped

Формат ELF (формат исполняемых и компонуемых файлов — Executable and Linkable Format) используется практически во всех Unix-подобных операционных системах с момента выпуска System V.

Директория /opt предназначена для хранения вспомогательного программного обеспечения. В большинстве случаев данное программное обеспечение устанавливается не из репозитория дистрибутива. В многих системах директория /opt пуста.

При установке пакета программного обеспечения большого объема файлы из него могут копироваться в поддиректории /bin, /lib, /etc директории /opt/$имя-пакета/. Например, в том случае, если пакет программного обеспечения носит имя wp, файлы из него будут устанавливаться в директорию /opt/wp, при этом бинарные файлы будут устанавливаться в поддиректорию /opt/wp/bin, а файлы страниц руководств — в поддиректорию /opt/wp/man.

Оцените статью
Master Hi-technology
Добавить комментарий