> Это виртуальный размер экрана. Если вы работали с пакетами Word for Windows или холтя бы рисовали картинки каким-либо графическим редактором, то понятие виртуального экрана вам знакомо. Числа обозначают разрешение, которое определяется объемом видеопамяти. Для видеоплаты Trident 8900 одного мегабайта достаточно как раз для хранения образа экрана 1024*1024. Платы с ускорителями расходуют память куда более агрессивно, а поэтому, если вы рассчитываете на действительно выдающиеся результаты, подумайте над расширением видеопамяти плат класса S3 хотя бы до 2 МБайт.
ViewPort 0 0

Начальное смещение рабочего окна относительно левого верхнего угла виртуального экрана. Оставляйте как есть.

Modes

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

DisplaySize 800 600

означает, что X-сервер инициализирует (вне зависимости от текущего разрешения) адресуемую область экрана 800 на 600.

Chipset

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

А вот следующая строка выглядит жутковато. Цифры, на первый взгляд, совершенно непонятные. Означают они настройки временных параметров видеоадаптера и изменяются от платы к плате. Но, несмотря на непонятность, получить эти "тайные знаки" можно относительно просто. Для этого вы должны "обрезать" Xconfig по строку Clocks (ликвидировав последнюю) и запустить следующую команду:


X -probeonly

Система просмотрит все диапазоны возможных значений настроек таймеров видеоадаптеров и выдаст на экран список чисел, которые вы должны в том же порядке перенести в файл Xconfig. Не беда, если они займут несколько строк. А кроме того, обратите внимание на максимальную пропускную полосу монитора. На хороших моделях она достигает 90 MHz. Это абстрактное значение имеет для нас очень важное значение. Но позвольте вначале некбольшое лирическое отступление.

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

Вы смотрите телевизор? Не задавались ли вы вопросом, почему иногда изоб ражение на дисплее, который вы видите на телевизионном экране стоит как влитое, а иногда по нему бегут какие-то полосы? И почему изображение на экране стоит столь редко?

Да, я слышал о популярных вариантах ответа. Но позвольте предложить вам свое решение. Во-первых, вспомните школьный курс физики, а именно - фигуры Лиссажу. То что мы видим на экране, это тоже разновидность биений, возникающая в тех случаях, когда кадровая развертка монитора компьютера близка или сопоставима к кадровой развертке видеокамеры. Так вот, пусть глаз не замечает смены кадров на мониторе, видеокамера безжалостно демонстрирует нам низкую частоту развертки вашего компьютера. Кстати, почему экраны рабочих станций Sun или DEC получаются на ТВ вполне прилично? Да потому, что в этих мониторах частота смены кадров выше 70 Гц, в то время как видеокамера делает около 30 кадров в секунду!

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

Что из этого следует? А вот что! Увеличение частоты кадровой развертки при сохранении заданного разрешения способствует:

а) максимально полному использованию возможностей ваших аппаратных средств;

б) повышает стабильность изображения на экране.

К счастью X-windows предоставляет вам уникальные возможности в оптимизации настроек аппаратных средств. А для этого нам потребуется настроить параметры видеорежимов.

Но сказать легче, чем сделать. Вначале необходимо попробовать пойти режимом минимального сопротивления. Обратите ваше внимание на каталог /usr/X11/lib/X11/etc. И прежде всего - на файл modeDB.txt. А посмотреть его содержимое можно командой:


cat modeDB.txt | less

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

Этот файл представляет собой базу данных, составленную любителями Linux со всего мира, и состоит из записей следующего вида:


# Monitor:              Seiko CM 1440

# Contributor:          Jeff Jennings [jennings@stortek.com]
# Last Edit Date:       12/9/91
#
# name         clock  horizontal timing     vertical timing      flags
 "1024x768i"    45    1024 1064 1224 1264    768  777  785  817  Interlace
 "1152x900i"    45    1152 1184 1288 1360    900  898  929  939  Interlace

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

Вообще говоря, не стоит проявлять излишней самодеятельности. Взгляните на таблицу 4, в которой перечислены общие режимы, которые поддерживают почти все мониторы. Но не поленитесь, откройте книжечку, поставляемую вместе с вашим. Возможны два варианта. Если вы не экономили, то у вас окажется монитор класса Multisync, поддерживающий любую частоту кадровой и строчной развертки в заданном диапазоне. А если ваш компьютер приобретен на "распродаже", у вас окажется доступными только несколько режимов из которых и придется выбирать. Полный список настроек видеорежимов (частоты развертки и настройки таймеров для горизонтальной и вертикальной разверток вы сможете найти в файле /usr/X11/lib/X11/etc/README.Config. А если вы все же решитесь заняться оптимизацией вручную, то имеет смысл обратиться к файлу Videomodes.doc, в том же каталоге. Кроме того, полезную информацию вы сможете найти и в каталоге /usr/doc/faq/howto. Для просмотра файлов без их распаковки вы можете воспользоваться командой :


zcat <имя файла > | less

(Команда zcat осуществляет копирование сжатого входного файла на

устройство стандартного вывода с автоматический распаковкой).

Таблица 4. Стандартные видеорежимы

Режим Частота кадров Синхронизация строк Эквивалентная полоса Черезстрочная развертка? Поддержка VESA?
640x48060Hz 31.5k25.175M НетНет
640x48060Hz 31.5k25.175M НетНет
640x48063Hz 32.8k28.322M НетНет
640x48070Hz 36.5k31.5M НетНет
640x48072Hz 37.9k31.5M НетДа
800x60056Hz 35.1k36.0M НетДа
800x60056Hz 35.4k36.0M НетНет
800x60060Hz 37.9k40.0M НетДа
800x60060Hz 37.9k40.0M НетНет
800x60072Hz 48.0k50.0M НетДа
1024x768i43.5Hz 35.5k44.9M ДаНет
1024x76860Hz 48.4k65.0M НетДа
1024x76860Hz 48.4k62.0M НетНет
1024x76870Hz 56.5k75.0M НетДа
1024x76870Hz 56.25k72.0M НетНет
1024x76876Hz 62.5k85.0M НетНет
1280x1024i44Hz 51kHz80.0M ДаНет
1280x1024i44Hz 47.6k75.0M ДаНет
1280x102459Hz 63.6k110.0M НетНет
1280x102461Hz 64.24k110.0M НетНет
1280x102474Hz 78.85k135.0M НетНет

Тонкость N3 - запуск X-windows.

Теперь самое время попробовать, что получилось. Но запускать Xwindow необходимо с помощью либо openwin или startx. Перед вами появится почти чистый экран. Нажмите кнопку мышки. А теперь вторую. Перед вами появится меню, которое, кстати, вы можете отредактировать по своему усмотрению. Впрочем, как и системное меню, которое как и в MS Windows по умолчанию содержит команды Close, Restore, Kill и так далее.

Теперь вы можете заняться исследованием X-window, так же, как в свое время приступали к MS Windows. Поверьте, многое даже проще!

Тонкость N4 но не последняя - русификация.

Как я уже указывал выше, проблема русификации X-Windows решена г-ном Вакуленко. И с моей стороны было бы просто плагиатом перепечатывать его инструкцию к пакету xcyr. Тем более, что она написана на русском языке.

Но одна сложность все же есть. А именно - русификация Linux в текстовом режиме. Так вот, чтобы заставить Linux говорить по-русски вам потребуется загрузить ЙЦУКЕН-раскладку и знакогенераторы кириллицы с помощью программы Setup (Remap your keyboard), а затем выполнить следующую последовательность команд (которую можно оформить как скрипт-файл):


loadkeys /usr/lib/kbd/keytables/russian.map

mapscrn koi2alt
setfont Cyr_a8x16
printf "\033(K"
echo  Для включения кириллицы нажмите правый <Alt>

Отметим, что начиная с версии 1.2.13 в состав дистрибутива Slackware включен набор дисков cyr1, который содержит все необходимое для руссификации программное обеспечение - экранные шрифты, раскладки клавиатуры, шрифты и раскладки для X-Window, шрифты Postscript для принтера и скрипт-файлы, осуществляющие корректную установку шрифтов в системе.

Загрузка и разгрузка операционной системы

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

Настоящий материал, среди всего прочего, базируется на одной из книг Linux Documentation Project - System Administration Guide. К сожалению, в комплект поставки Linux эта книга не включается, и вам придется искать ее в Internet самостоятельно.

Процесс загрузки системы

Вопреки бытующему мнению о неподъемности и монстрообразии UNIX-систем вы можете загрузить Linux как с жесткого диска, так и с дискеты. Причем в последнем случае вы можете поместить в 1 МБ и ядро системы, и ряд прикладных программ или утилит. Работали же когда-то люди на ЕС-1840 или ДВК-2!

При включении машины ПЗУ BIOS выполняет различные тесты, которые позволяют оценить степень исправности аппаратных средств, после чего начинается собственно загрузка системы. Как вы вероятно помните из классики, вначале обычно опрашивается привод гибких магнитных дисков, а затем винчестер. В любом случае, BIOS загружает в строго определенное место памяти начальный загрузчик (собственно поэтому и сектор называется загрузочным). Ну а в случае жесткого диска - главный загрузочный сектор (Master Boot Record - MBR).

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

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

Винчестер. Ситуация изменяется радикально. Код из MBR анализирует содержимое таблицы разделов (partition table), которая, кстати, находится в этом же секторе, в поисках активного раздела, с которого разрешена загрузка. После этого из выбранного раздела считывается его загрузочный сектор (который есть у каждого из разделов - это важно!), которому передается управление. Ну а дальше история повторяется: код из сектора загрузки раздела загружает в оперативную память образ системы и передает ей управление.

Вот здесь уже возможны варианты. Но, как правило, глупо создавать специальный раздел для хранения одного только ядра системы (напомним, что никакой файловой системы загрузчик не понимает). Один из выходов - использование LILO (Linux Loader), который вы, скорее всего, уже использовали.

Мы не будем сейчас описывать LILO, а лишь отметим, что этот загрузчик не ограничен значением флага загрузки и позволяет загрузить любую систему (не обязательно Linux), из числа указанных в списке.

Конечно же, есть и другие загрузчики. Но поскольку LILO была написана специально для Linux, она имеет ряд весьма примечательных особенностей, как например, возможность передачи аргументов ядру на этапе загрузки, что позволяет изменить установки ряда параметров системы "на лету".

Вообще говоря, LILO является своеобразным стандартом и альтернативные загрузчики, такие как bootlin или bootactv постепенно вытесняются и уходят в прошлое.

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

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


Uncompressing Linux.....

Скорее всего, ваш компьютер оснащен SVGA-адаптером. В этом случае, в зависимости от конфигурации ядра системы, вам может быть предоставлена возможность установить один из нестандартных режимов видеоадаптера, например 100 символов на 40 строк. Зачем это надо? Дело в том, что далеко не все терминалы имеют разрешение 80*25. Напомню, что количество символов в строке ведет свою историю от 80-колоночных перфокарт, но ведь ветераны помнят, что были еще и 132-"дырочные" карты! Поэтому вы имеете возможность настроить свою систему таким образом, чтобы программное обеспечение, рассчитанное на работу с конкретным терминалом, корректно выполнялось на вашей машине.

Затем Linux проверяет состав аппаратных средств, подключенных к машине (гибкие магнитные диски, винчестеры, сетевые адаптеры и звуковые карты) и конфигурирует некоторые из них. Причем процесс конфигурирования отображается на экране, а также записывается в одном из служебных файлов. А команда /bin/dmesg позволяет вам просмотреть все сообщения во время загрузки. Это оказывается удобно в тех случаях, когда какая то из команд инициализации возвращает сообщение об ошибке, которое вы не успеваете просмотреть.

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


Console: colour EGA+ 80x25, 8 virtual consoles

Serial driver version 3.99a with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16450
tty01 at 0x02f8 (irq = 3) is a 16450
tty02 at 0x03e8 (irq = 4) is a 16550A
lp_init: lp1 exists, using polling driver
snd2 <SoundBlaster Pro 4.5> at 0x220 irq 10 drq 1
snd6 <SoundBlaster 16 4.5> at 0x220 irq 10 drq 5
snd7 <SoundBlaster MPU-401> at 0x330 irq 10 drq 0
snd1 <Yamaha OPL-3 FM> at 0x388 irq 0 drq 0
Sony I/F CDROM : SONY     CD-ROM CDU33A    Rev 1.0d with tray load mechanism
using 16384 byte buffer, capable of audio playback
Calibrating delay loop.. ok - 7.98 BogoMips
Memory: 6992k/8192k available (532k kernel code, 384k reserved, 284k data)
Floppy drive(s): fd0 is unknown type 0, fd1 is 1.44M
Swansea University Computer Society Net2Debugged [1.30]
IP Protocols: ICMP, UDP, TCP
PPP: version 0.1.2 (4 channels)
TCP compression code copyright 1989 Regents of the University of California
PPP line discipline registered.
SLIP: version 0.7.5 (4 channels)
CSLIP: code copyright 1989 Regents of the University of California
Linux version 1.0.8 (root@mntr) #3 Sun Nov 13 21:19:51 boot ibcs init 1994
Partition check:
hda: hda1 hda2
hdb: hdb1 < hdb5 > hdb2 hdb3 hdb4
VFS: Mounted root (ext2 filesystem) readonly.

Но! Linux при загрузке не проверяет правильность установки настроек драйверов. В частности, Sound Blaster настроен на IRQ7, но когда-то сгенерированный под IRQ10 драйвер так и смущает меня каждый день! А вот на сообщение о типах микросхем коммуникационного порта советую обратить внимание. В этих строчках может крыться объяснение того факта, почему ваш замечательный Zyxel не работает со скоростями выше 9600.

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

А вот теперь наступает пора файловой системы. Ядро пытается смонтировать root filesystem (смотри последнюю строчку в протоколе загрузки). Точка монтирования системы устанавливается командой rdev).

Тип монтируемой системы опредеяется автоматически, важно только, чтобы она поддерживалась ядром. Имейте в виду, что если смонтировать файловую систему не удается, Linux ударяется в панику (так и называется - panic mode) и "насмерть завешивает машину".

Затем ядро стартует фоновую задачу /etc/init (PID=1), которая считывает конфигурационный файл /etc/inittab, отрабатывает его, а затем запускает скрипт-файл оболочки /etc/rc. Этот скрипт запускаает все фоновые задачи (они же демоны), которые обязаны заботиться об обслуживании периферийных устройств, очередей запросов на печать и прочей рутиной. Кстати, в зависимости от режима запуска системы вызываются различные варианты скрипт-файлов /etc/rc.

Это, между прочим, совсем не простой процесс и его стоит рассмотреть подробнее. Вот фрагмент типового файла /etc/inittab:


# автоматический старт (уровень 5).

id:5:initdefault:
# Инициализация системы при загрузке
si:S:sysinit:/etc/rc.d/rc.S
# запуск однопользовательского режима
su:S:wait:/etc/rc.d/rc.K
# Инициализация многопользовательского режима
rc:123456:wait:/etc/rc.d/rc.M
# Реакция на комбинацию из трех пальцев
ca::ctrlaltdel:/sbin/shutdown -t3 -rf now
# Реакция на отказ блока питания (разгрузка системы в
# однопользовательском режиме)
pf::powerfail:/sbin/shutdown -f +5 "THE POWER IS FAILING"
# Откат разгрузки системы, если питание восстановлено
pg:0123456:powerokwait:/sbin/shutdown -c "THE POWER IS BACK"
# Если питание восстановлено в однопользовательском режиме -
# запустить многопользовательский режим (он же уровень 5)
ps:S:powerokwait:/sbin/init 5

Формат записей в файле /etc/inittab вы можете получить, обратившись к системе подсказок man, а я хочу обратить ваше внимание на следующее:

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


# /etc/rc/rc.S

#
# Системные настройки, выполняемые при загрузке системы
# Вся настройка пользователя должна осуществляться в rc.local
PATH=/sbin:/usr/sbin:/bin:/usr/bin
# разрешаем свопинг
#/sbin/swapon -a  # для всех разделов подкачки
swapon /dev/hdb2  # только для конкретного
# Проверяем, не смонтирована ли корневая система как read-only
READWRITE=no
if echo -n >> "Testing filesystem status"; then
rm -f "Testing filesystem status"
READWRITE=yes
fi
# Проверяем целостность всех файловых систем
if [ ! $READWRITE = yes ]; then
/sbin/fsck -A -a
# В случае ошибок переход в однопользовательский режим
# Все сообщения по-английски, поскольку русификаторы пока не
# загружены
if [ $? -gt 0 ] ; then
echo
echo
echo "**************************************"
echo "fsck returned error code - REBOOT NOW!"
echo "**************************************"
echo
echo
/bin/login
fi
# Переключение файловой системы в режим read-write
echo "Remounting root device with read-write enabled."
/sbin/mount -w -n -o remount /
else
#
# При включении ядро системы находилось в режиме read-write, что
# не позволяет проверить целостность системы. Выдаем рекомендации
# по устранению этого дефекта
#
cat << EOF
*** Root partition has already been mounted read-write. Cannot check!
For filesystem checking to work properly, your system must initially mount
the root partition as read only. Please modify your kernel with 'rdev' so that
it does this. If you're booting with LILO, type:
rdev -R /vmlinuz 1
(^^^^^^^^  ... or whatever your kernel name is.)
If you boot from a kernel on a floppy disk, put it in the drive and type:
rdev -R /dev/fd0 1
This will fix the problem *AND* eliminate this annoying message. :^)
EOF
sleep 10
fi

# удаляем блокировочные файлы, которые создаются служебными программами
/bin/rm -f /etc/mtab* /etc/nologin /etc/utmp
# И создаем новые версии.
cat /dev/null >> /etc/utmp
# монтируем файловые системы, приведенные в /etc/fstab
# за исключением NFS, поскольку TCP/IP еще не установлен
/sbin/mount -avt nonfs
# Настройка системных часов
if [ -x /sbin/clock ]; then
/sbin/clock -s
fi
# Установка содержимого файлов /etc/issue и /etc/motd
# Это обычные текстовые файлы, содержащие текущие новости из жизни
# системы (/etc/issue) и так называемую "мысль дня" (/etc/motd)
#
# Вы можете без колебаний заменить приведенные ниже строки на
# собственные варианты. Например, выбор случайной строки из текстового
# файла, содержащего пословицы и поговорки.
echo > /etc/issue echo Welcome to Linux `/bin/uname -a |
/bin/cut -d\  -f3`. >> /etc/issue echo >> /etc/issue
echo "`/bin/uname -a | /bin/cut -d\  -f1,3`. (Posix)." > /etc/motd
# Настройка коммуникационных портов
# Обратите внимание, что строка вызова скрипта настройки
# коммуникационных портов по умолчанию закрыта комментарием. Дело в том,
# что довольно часто загрузка прерывается в тех случаях, когда параметры
# настройки не соответствуют реальной конфигурации компьютера. Поэтому
# рекомендуется вначале отладить этот скрипт и лишь затем
# инициализировать его при загрузке.
#/bin/sh /etc/rc.d/rc.serial
# инициализируем сервер доменных имен
named
# Конец файла rc.S

#! /bin/sh

#
# Конфигурирование системы для работы в многопользовательском режиме
# Сообщаем пользователю о переходе в многопользовательский режим
echo "Going multiuser..."
# Запуск демона update в фоновом режиме
/sbin/update &
# Установка времени задержки выключения монитора (в минутах)
/bin/setterm -blank 15
# Инициализация сетевой поддержки
if [ -x /etc/rc.d/rc.inet1 ];
then
        /bin/hostname vvv           # имя хоста
        /bin/domainname rinet.ru    # и домена
/bin/sh /etc/rc.d/rc.inet1  # запуск конфигурационных скриптов
/bin/sh /etc/rc.d/rc.inet2
else
/sbin/hostname_notcp vvv    # если TCP/IP не установлен
/bin/domainname rinet.ru
echo
echo "Since you don't have TCP/IP installed, syslogd will complain when it first"
echo "starts. The warning can be ignored."
echo
/usr/sbin/syslogd
/usr/sbin/klogd
/usr/sbin/lpd
/usr/sbin/crond
fi
# удаление устаревших блокировочных файловв
/bin/rm -f /usr/spool/locks/* /usr/spool/uucp/LCK..* /tmp/.X*lock 1> /dev/null 2> /dev/null
# Отключение зависших сетевых гнезд
if [ -r /tmp/hunt -o -r /tmp/hunt.stats ]; then
echo "Removing your stale hunt sockets from /tmp..."
/bin/rm -f /tmp/hunt*
fi
# Обновление всех связей статических библиотек
/sbin/ldconfig
# И наконец, запуск локальной процедуры настройки
/etc/rc.d/rc.local
# Конец файла rc.M

Кроме того, inittab содержит команды инициализации виртуальных консолей и коммуникационных портов, которые позволяют подключить к Linux-системе удаленные терминалы или другие host-машины. Но к этому вопросу мы вернемся отдельно.

Вполне вероятно, что вам потребуется внести в процесс настройки какие-то свои дополнения (например, загрузить кириллические знакогенератор и раскладку клавиатуры) - не изменяйте упоминавшиеся выше файлы! Для этого существует специальный скрипт-файл - rc.local. А если вы подрабатываете системным администратором, и один из пользователей требует от вас какой-либо экзотической настройки, то не стоит портить и rc.local - достаточно внести необходимые команды в стартовый файл оболочки в пользовательском каталоге.

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

Разгрузка операционной системы

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

Дело в том, что с целью повышения производительности системы Linux работает с диском через кэш-систему, которая не выполняет физическую запись на диск по мановению пальца пользователя, а управляется собственным диспетчером, сносящим буферы записи через определенные интервалы времени (конечно, если емкость кэша будет исчерпана, снос данных будет осуществлен немеленно, но такая ситуация бывает довольно редко). В результате значительно сокращаются потери времени на обслуживание запросов к диску, но при этом возникает опасность потери данных при внезапном выключении системы - ведь в кэш-памяти могут оставаться не сохраненные на винчестере данные!

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

Именно поэтому вам необходимо аккуратно и качественно организовать процесс разгрузки операционной системы. Для этой цели в Linux предусмотрена специальная программа /bin/shutdown. Давайте рассмотрим, как ее использовать?

Прежде всего отметим, что вызов этой программы осуществляется при вводе клавишной комбинации "из трех пальцев"-Ctrl-Alt-Del. Поэтому изложенный ниже материал предназначен не для ежедневного использования, а для более глубокого понимания процесса разгрузки и разработки собственных механизмов.

Если вы являетесь единственным пользователем системы, то для выгрузки системы вы должны (во всяком случае, с точки зрения теории) остановить все текущие программы, закрыть виртуальные пользовательские консоли, зарегистрироваться в системе как root (а если вы уже работаете как root, то во избежание неприятностей перейдите в каталог /root ), а затем ввведите команду


shutdown -q now

Кстати, вместо now вы можете указать интервал времени (в минутах) через который система осуществит окончательную разгрузку. Необходимо отметить, что в первоначальных версиях системы (диски Release 2 и Release 3) код команды shutdown содержит ошибку, в результате которой таймер не работает и разгрузка осуществляется мгновенно в любом случае, впрочем, если вы владеете UNIX-машиной в гордом одиночестве, задержка вам вряд ли понадобится. А вот если вы строите сервер или многопользовательскую систему - воспользуйтесь дисками Release 4 или более поздними, в которых эта ошибка исправлена.

Вообще говоря, в многопользовательской системе выдача команды shutdown обычно сопровождается кратким сообщением о причине, по которой завершается работа с системой. Впрочем, это можно и не делать, если вы не слишком уважаете своих пользователей. В конце концов, через определенные промежутки времени, shutdown все равно будет терроризировать пользователей сообщениями типа : "до взрыва осталось 8 минут".

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

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

Иногда, как это ни прискорбно, система не хочет корректно разгружаться. Например, в том случае, если система запаниковала (panic mode) и пошла в разнос. Вы должны отдавать себе отчет, что любое нажатие клавиши может привести к непредсказуемым и непоправимым последствиям, а поэтому лучше закрыть глаза и тихонько нажать на клавишу Reset. Во всяком случае, у вас остается надежда, что программа fsck при повторной загрузке исправит (или попытается это сделать) ошибки на диске. Если же повреждения оказались менее серьезными (в SAG под этим подразумевается несколько ударов топором по клавиатуре), то имеет сысл использовать команду update для того, чтобы снести содержимое буферов на диск, и только после этого выключать питание.

Среди части системных программистов пользуется популярностью некое сложное заклинание, состоящее из трех команд sync, между которыми следует дождаться мигания светодиода доступа к винту, и лишь после этого считается позволительным выключать питание машины. Если в этот момент у вас нет никаких активных программ, то этот процесс, вообще-то, полностью эквивалентен команде shutdown. Но, поскольку вы не размонтировали файловые системы, то флажок clean filesystem для наиболее распространенной системы ext2fs (смотри [1]) сброшен не будет, что приведет к недовольному ворчанию fsck при повторном запуске программы.

Поэтому пользоваться подобными "открытиями" не стоит.

В то же время не стоит огульно охаивать опыт минувших поколений. Метод трех sync-ов ведет свое начало с тех времен, когда солнце светило ярче, а машины работали не так быстро. Поэтому промежуток между выполнениями трех раздельно введенных команд был вполне достаточным, чтобы успели выполниться все операции ввода/вывода с дисков.

Демоны и фоновые процессы

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

Демон (от английского demon или daemon-встречаются обе транскрипции!) представляет собой программу выполняющуюся в фоновом режиме, незаметно для пользователя и дополняющую операционную систему каким либо специальным сервисом. Происхождение названия не имеет ничего общего с ужасами потустороннего мира или игрой DOOM, и представляет собой акроним от "Disk And Execution MONitor". Основная идея, положенная в основу демонов, состоит в том, что эта программа не вызывается пользователем в явной форме, а спокойно ожидает в памяти какого-либо определенного события. Инициатор генерации события может и не подозревать, что в дебрях оперативной памяти его подстерегает голодный демон (а иногда программа может выдать квитанцию о выполнении той или иной операции только в том случае, если она передала информацию соответствующему демону). Характерный пример - работа с принтером, при котором программа LPR передает данные демону управления печатью LPD. При постановке задачи в очередь на печать LPR даже не интересуется наличием в памяти демона печати, а только помещает печатаемый файл в каталог спулинга.

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

Мы уже упоминали об одном демоне, к которому каждый UNIX-программист должен относится с почтением. Это /etc/update - программа выполняющая синхронизацию дисков (системный вызов sync) каждые тридцать секунд.

Есть и другие полезные демоны, которых вы можете обнаружить с помощью команды ps -ax (показать все процессы, в том числе и те, которые запущены другими пользователями). Это syslogd и crond. Первый из них ведет системный журнал, который помогает системному администратору разобраться в причинах сбоев и неполадок, а также обнаружить злоумышленников, пытающихся взломать защиту вашей системы, а второй...... Впрочем, чтобы выяснить это вы всегда можете воспользоваться он-лайновой системой помощи.

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

Демоны, как правило, стартуют сразу же после окончания загрузки системы и не нуждаются в присутствии активных пользователей. Поэтому вы можете организовать работу UNIX-системы без участия человека, например, создав FTP-сервер или BBS, которые запускаются в автоматическом режиме (об этом мы еще поговорим).

Более подробно о загрузчиках системы

LILO - Linux Loader

LOADLIN

Права доступа и регистрация в системе

Регистрация в системе

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

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

uugetty - стандартная программа регистрации на консоли (виртуальной линии);

uugetty_ps - программа, позволяющая зарегистрироваться, подключившись к последовательному порту через нуль-модем или (как бы его получше назвать) не-нуль-модем;

mgetty - программа регистрации, распознающая приходящие факсы.

Любая из этих программ выдает на ваш терминал подсказку

login:

ведущую свое происхождение от двух слов LOG IN (один из переводов - "шлагбаум на вьезде"). В ответ на подсказку вы должны ввести свой идентификатор, и, если это потребутся, пароль. В случае, если идентификатор пользователя и пароль присутствуют в файле /etc/passwd вы будете допущены в систему.

Если программа getty обнаружит файл /etc/nologin (совершенно неважно, что в нем находится) то регистрация в системе будет запрещена! Создается этот файл обычно программой shutdown или ее аналогами. Смысл мероприятия довольно прозрачен - не допустить внесения изменений в систему после завершения разгрузки. При запуске системы это файл должен автоматически ликвидироваться и проблем у вас возникать не должно. За исключением того случая, когда вы вручную создадите этот файл во время работы. Так что будьте бдительны!

Права доступа к файлам в системе UNIX

Основным понятием, определяющим все отношение к "правам и обязанностям пользователей" являются атрибуты файла. Напомню, что атрибуты файла, принятые в MS-DOS заимствованы из CP/M, а туда попали из UNIX. Насколько удачным оказалось использование "испорченного телефона" можно судить по большому количеству признаков, одним из которых является, например, количество вирусов. В этой области Microsoft есть чем гордиться - MS-DOS и впрямь впереди планеты всей. Но давайте вернемся к правам доступа. Начнем со знакомой вам (если вы уже установили Linux) программы распечатки каталогов ls. Обычно программа не балует пользователя избытком информации, но если вы воспользуетесь ключом -l, то получите следующее:


 	rw-rw-rw-     1       vovka      root       4067    Nov 5 13:12  caterpillar.tar.z

Что же нам сообщила система? Первая, непонятная на первый взгляд, последовательность символов как раз и представляет собой права доступа к этому файлов со стороны различных категорий пользователей. Затем (1) выводится количество синонимов, под которыми данный файл известен системе. Далее вам сообщается имя владельца файла (vovka), то есть идентификатор лица его создавшего, и группа, к которой он принадлежит (root). Ну а затем все как обычно - длина файла в байтах, дата и время его создания и собственно имя файла. Надеюсь, что пользователи DOS обратят внимание на тот факт, что в UNIX точка в имени файла лишена своего таинственного ореола-у файла может быть несколько расширений (Это не блажь. Несколько расширений используется для обозначения последовательности операций, которым подвергалась информация, записанная в файле. Так, в нашем примере, .tar-расширение устанавливаемое одноименной программой архивации, а .z добавляется программой упаковки gzip. В результате для распаковки архива вам потребуется вначале распаковать файл с помощью gunzip, а уже затем разархивировать с помощью tar. А вот если вам встретится архивный файл с расширением .tgz-придется воспользоваться программой tar и ее встроенным распаковщиком-прим.ред.).

Давайте рассмотрим, из чего складывается запись прав доступа. Первый символ показывает тип файла (обычный файл, каталог или файл, ассоциированный с устройством ввода/вывода). А вот за ним следует три группы из трех символов, определяющих права: владельца файла, его группы и всех прочих пользователей. Для каждой из этих категорий может быть установлен или запрещен доступ к файлу на чтение (r) , запись-то есть внесение модификаций и удаление (w) и на выполнение файла (x). Если соответствующая категория доступа разрешена, она отображается буквой, если нет-дефисом. Поэтому прочитать права доступа при просмотре записей каталога оказывается при наличии некоторых навыков очень легко.

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

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

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


ksh myscript

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


chmod {a,u,g,o} {+|-} {r,w,x} <имя файла>

Первая группа кодов указывает на категорию пользователей (a-все, u-владелец файла, g-группа, к которой принадлежит владелец, o-все прочие). Плюс или минус устанавливают или отменяют атрибут, который кодируется тем же символом, который появляется при выводе каталога.

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


chmod u+rwx prettysript

chmod g+rx prettyscript
chmod o+x prettyscript

А-а-а-а! -- воскликнет искушенный пользователь, -- а если текстовый редактор по умолчанию разрешает доступ на чтение и запись всем пользователям? Тогда придется каждый раз отдельно запрещать доступ по записи и приведенные выше примеры носят абстрактный характер!

Читатель, как всегда оказывается прав. Приведенный выше синтаксис chmod ориентирован больше на любителя, чем на настоящего UNIX-оида, который не боится использовать самые разные системы счисления. Дело в том, что впервые UNIX был реализован на компьютерах фирмы Digital, в которой в отличие от Intel была принята не шестнадцатиричная, а восьмиричная система счисления (каждый разряд числа, записанного в этой системе счисления соответствует не четырем, а трем двочным разрядам, а при записи чисел вполне хватает цифр от 0 до 7). Обратите внимание, что права доступа для каждой категории пользователей могут быть записаны с помощью одного восьмиричного числа. И chmod поддерживает этот формат.

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


chmod 751 prettyscript

Что означает сие непонятное число? Давайте расшифруем его биты и, как

говорится, "приведем в соответствие". Вот что мы имеем:

u7 g5 o1

1 1 1 1 0 1 0 0 1

r w x r w x r w x

В результате, при распечатке каталога мы получим вот такую запись прав доступа:

что в полной мере соответствует нашим ожиданиям. Кстати, в литературе и документации к системе обычно ссылка на права доступа дается именно в восьмиричном счислении, поэтому наткнувшись на предложение типа "установите права доступа для данного файла 640", не мудрствуйте, а просто выполните команду chmod 640 <имя файла>.

Кто варежку потерял?

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

Совершенно верно - к конфузам. Вот типовая ситуация. Суперпользователь (root), обладает всеми необходимыми полномочиями, чтобы установить, ну скажем, BBS RoCat (Roman Catacombs-диск LinuxWare 1.0). И совершенно спокойно создает дерево каталогов на пару мегабайт. После этого вы садитесь за чтение документации и с ужасом обнаруживаете, что и имя каталога должно быть вполне определенное (ну это-то просто, можно использовать либо команду mv -- чисто DOS-овский подход, либо воспользоваться командой ln, что предпочтительнее), да и владельцем файлов должен быть системный оператор с идентификатором BBS из группы BBS.

Но ведь не распаковав архив, вы не сможете узнать о необходимости использования вполне специфического идентификатора пользователя и группы! Как же быть? Стирать с диска только что распакованный каталог и повторять весь процесс установки с самого начала? Или можно каким-либо образом изменить имена владельцев файлов и групп?

Можно, и без проблем. Для этого вы можете воспользоваться командой chown, которая позволит изменить идентификатор владельца любого файла, каталога и даже дерева каталогов. Для изменения группы владельца файла вы можете использовать команду chgrp. А UNIX при попытке доступа к файлу сопоставит идентификатор пользователя и его группу с соответствующими полями в характеристиках файла и сделает соответствующие выводы.

Если оба идентификатора совпадают-вы законный владелец файла. Если совпадает только идентифкатор группы-вы можете пользоваться только теми правами, которые предоставляются члену группы. А уж если не совпал ни один из идентификаторов-вам доступны только права доступа класса "others".

Группы и пользователи

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

Отметим, что кличка нужна системе только для того, чтобы вы не путали UNIX-систему и концлагерь, самому же компьютеру, наоборот, удобнее использовать числовые идентификационные номера.

Как показала практика использования вычислительных машин, зачастую над одним проектом работает несколько пользователей. объединенных в так называемые группы. Группы пользователей имеют ряд общих данных (например, работая над одним проектом разумно пользоваться единой версией библиотек и готовить единый макет технической документации к проекту). И естественно, что для пользователей "своей" группы целесообразно сделать некоторые послабления.

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

Справочная информация о пользовательских группах обычно хранится в файле /etc/group, который носит чисто информационный характер и иногда даже не используется. А вот информация о пользователях жизненно необходима для нормального функционирования системы.

Пароли и профили пользователей

Концепция паролей традиционна для системы UNIX и поддерживается в практически неизменном виде вот уже более двух десятков лет. Идея проста-проверить, имеет ли пользователь право доступа к системе путем сравнения идентификатора и пароля, введенных пользователем с эталонами, хранящимися в файле паролей (обычно -- /etc/passwd).

Это обычный ASCII-файл, который вы можете отредактировать с помощью vi или Emacs. Как и большинство конфигурационных файлов UNIX, passwd состоит из записей, поля которых разделены двоеточиями. Вот пример одной из записей:


vovka:Xv75fs1Z521:102:0:Vladimir Vodolazkiy:/home/vovka:/bin/tcsh

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

Несколько полезных советов

В заключение позвольте поделиться с вами некоторыми нехитрыми приемами, которые позволяют более эффективно использовать парольную систему Linux-системы.

Как добавить пользователя?

Для этого вы должны выполнить несколько действий. Во-первых, необходимо создать регистрационную запись в /etc/passwd. Проще всего воспользоваться утилитой adduser, которая автоматически сформирует и добавит запись в файл /etc/passwd. Но при желании вы можете выполнить эту поерацию и вручную. Во-вторых, для того, чтобы пользователь мог войти в систему, необходимо, чтобы его "домашний каталог" был ему доступен (то есть, чтобы на момент регистрации соответствующий диск был смонтирован!). Если вы использовали упоминавшуюся выше программу, то можете не волноваться-каталог будет создан автоматически. Далее, вы должны позаботиться о том, чтобы в системе была установлена та оболочка, с которой будет работать пользователь. Если вы не уверены, поместите в это поле /bin/sh-уж эта-то программа найдется на диске всегда!

Как создать группу?

Для этого предназначена команда groupadd. Ее следует вызывать раньше, чем вы начнете создавать регистрационные записи пользователей. В противном случае вам придется в команде adduser вводить числовые идентификаторы GID (group ID). А вот если группа уже заведена, то вы можете на соответствующий вопрос команды adduser просто набрать на клавиатуре название группы, к которой хотите отнести нового пользователя.

Обязательно ли нужно грузить одну из оболочек?

Ну зачем же? Если ваш пользователь должен работать только с одной и той же прикладной программой (клиентской частью какой-нибудь мощной многопользовательской системы) укажите полное имя этой программы вместо оболочки! И при завершении работы с программой пользователь автоматически отключится от системы, а кроме того, физически не сможет поиграть в тетрис в рабочее время!

Как запретить регистрацию пользователя в системе, не изгоняя его из списков пользователей?

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

Как создать "гостевой вход" в систему, не требующий ввода пароля?

Для этого достаточно не указывать никакого пароля при добавлении пользователя с помощью adduser, или стереть пароль, сдела это поле пустым: vovka::102... Имейте в виду, что с системным пользователем (root) этот номер не пройдет!

"Ежовые рукавицы" или "свободная любовь"?

Конечно же, немаловажную роль в обеспечении эффективности системы защиты от несанкционированного доступа играет и политика системного администратора. Будете ли вы тираном, маленькоим, но свирепым, или же позволите пользователям своей системы "пожирать" друг друга, взирая на их мышиную возню с олимпийских высот привилегий суперпользователя - зависит только от вас. Но вот что вам необходимо сделать в любом случае, так это по крайней мере объяснить конечным пользователям, для чего в системы введена система паролей, если вы не пытаетесь противостоять козням ЦРУ.

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

1. Выбор пароля.

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

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

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

Вообще говоря, хороший пароль представляет собой смесь из нескольких слов со случайной сменой регистра символов. Примером продуманного подхода к подбору паролей может служить АО РелКом, предоставляющая пользователям своей системы достаточно эффективные пароли, например MYxND34MN. Использование цифр в произвольных позициях пароля только повышает его устойчивость к подбору.

Пароль не догма, и не имеет права на вечное существование. Периодически пользователь должен изменять пароль (либо самостоятельно, то есть по доброй воле, либо после дружеской подсказки системного администратора, то есть принудительно). Имеет смысл определить срок службы паролей, скажем в два-три месяца. Смену пароля можно выполнить с помощью команды passwd (использование ее очевидно).

2. О сохранности пароля

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

Пользователь не обязан никому сообщать свой пароль, вне зависимости от обстоятельств.

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

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

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

3. Файлы и каталоги

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

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

4. Особые файлы пользовательского каталога

Практически в каждом личном каталоге имеются специальные файлы, имена которых начинаются с точки, и называются по иностранному - дот-файлами. Эти файлы являются аналогами CONFIG.SYS и AUTOEXEC.BAT из мира DOS, но являются не общими для всей системы, а ориентированы только на конкретного пользователя. Это как раз те данные, для которых права доступа должны устанавливаться в соответствии с шаблоном 600. Вот их список:

.login, .logout, .cshrc, .bashrc, .kshrc, .xinitrc, .exrc, .dbxinit,

.profile, .sunview, .mwmrc, .twmrc.

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

5. Физическая безопасность

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

6. Предоставление счета в распоряжение третьих лиц

Жизнь, как известно, всегда вносит коррективы в наши планы. Поэтому, время от времени возникает необходимость предоставления доступа к вашему счету некоторых третьих лиц. Тем не менее, и в этом случае не следует забывать о мерах безопасности. Довольно часто идут по пути минимального сопротивления, передавая "соратникам" пароль или устанавливая для всех своих файлов шаблон доступа 777. Нужно ли говорить к каким пагубным последствиям все это может привести! Попытайтесь либо ограничить диапазон предоставляемых возможностей оластью рабочей группы, либо просто скопировать необходимые для вашего партнера файлы. Не оставляйте счет в системе без контроля.

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

Системные средства обеспечения безопасности системы

Программа поиска уязвимых мест в защите - CRACK

"Теневые пароли"

npasswd - генератор надежных паролей

Подключение принтера

Компьютер без принтера сегодня представляется каким-то полуфабрикатом. А резкое падение цен на матричные, струйные и лазерные принтеры в течение последних двух лет способствуют массовому распространению технологии "персональной печати". Конечно, первая мысль, ассоциируемая с принтером сегодня - это MS Word. Однако, как я постараюсь показать, Linux предоставляет пользователю более широкие возможности по управлению ресурсами принтера, чем мы привыкли видеть в Windows.

Первое подключение устройства печати

Прежде всего нам необходимо убедиться, что Linux видит ваш принтер. Как правило, принтер подключается к единственному параллельному порту компьютера, который размещается либо на плате устройств ввода/вывода, либо непосредственно на материнской плате компьютера. Но "по теории" IBM PC может поддерживать до четырех параллельных портов, и в Linux им соответствуют символьные устройства /dev/lp0 - /dev/lp3.

Поэтому первый ваш шаг состоит в проверке - есть ли в вашей системе соответствующие устройства. Если нет, их придется создать самостоятельно. Для этого учтем, что во-первых, устройства в UNIX являются просто специальными файлами, которые можно создать с помощью программы mknod, а во-вторых, за параллельными портами зарезервированы номера устройств - старшее 6 и младшие с 0 до 3 и соответствуют номеру устройства.

Вот синтаксис команд mknod для всех параллельных портов, поддерживаемых Linux (в скобках приведены базовые адреса портов ввода/вывода):

mknod /dev/lp0 c 6 0 (0x3BC)

mknod /dev/lp1 c 6 1 (0x378)

mknod /dev/lp2 c 6 2 (0x278)

mknod /dev/lp3 c 6 3 (0x......)

Обратите внимание на адреса портов! Как правило, в составе IBM PC входит порт с адресом 0x378, который соответствует не /dev/lp0, а /dev/lp1. И если вы по привычке будете соотносить "первый" порт DOS с "нулевым" портом UNIX, то искать причину неисправности вам придется довольно долго. Как же избежать этой ошибки?

Наиболее простой путь состоит в экспериментальной проверке конфигурации. Во-первых, вы можете воспользоваться утилитами из DOS типа sysinfo или MSD, а во-вторых, можете просто попытаться "выбросить на печать" текущий каталог, например:


ls -l > /dev/lp0

Если порта lp0 на вашей машине нет вы получите сообщение:

? /dev/lp0 unknown device

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


This is 1 line

This is 2 line
This is 3 line

Причина этого явления состоит в том, что ориентированные для работы в DOS принтеры требуют для завершения строки два символа - возврата каретки <CR> (0x13) и перевода строки <LF> (0x10). А вот UNIX традиционно обходится одним символом - <LF>.

Бороться с этим неприятным эффектом вы можете двумя способами - либо отключить режим раздельного управления <CR> и <LF> - в этом случае принтер будет распознавать приход любого из этих символов как команду перейти к новой строке. Этот режим поддерживает большинство современных моделей принтеров, но его целесообразно использовать лишь в том случае, если вы используете только Linux. Если же вам приходится время от времени обращаться к старушке DOS, целесообразно использовать специальные программы-фильтры, о которых речь пойдет ниже. А сейчас, после того, как мы убедились в работспособности принтера, мы организуем поддержку системных средств печати, общепринятых для UNIX.

Поддержка принтера в ядре Linux

Устанавливая систему вы наверняка позаботились о поддержке принтера. Если нет, то самое

Драйвер печати

Корректировка настроек принтера - tunelp

Системное управление принтером

lpd

lpq

lprm

lpc

lpr - cnfylfртная пограмма печати

/etc/printcap - конфигурирование принтера

Фильтры печати

Борьба с "лесенкой"

apsfilter - автоматический распознаватель типа входного файла

Подключение кириллических шрифтов Postsript

Установка звуковой платы

Подключение стримеров с FDD-интерфейсом

В этой главе мы поговорим только о стримерах, которые подключаются к порту приводов гибких магнитных дисков. Современные мощные модели, ориентированные на интерфейс SCSI и обеспечивающие хранение нескольких Гигабайт останутся вне нашего рассмотрения по двум причинам. Во-первых, это достаточно дорогие изделия, в комплект которых входят собственные драйеры для UNIX-систем. А как только вы инициализировали интерфейс SCSI в своем компьютере, вы всполне можете просто перекомпилировать поставляемый драйвер под Linux. Вторая причина - большая доступность и распространенность малогабаритных стримеров с FDD-интерфейсом, и их практическая невостребованность в мире DOS и Windows. При этом, несмотря на то, что объем ленты типового стримера - 120-250 МБайт на сегодняшний день уже заметно уступает емкости винчестеров, использование лент для ведения архивов оказывается достаточно удобным и доступным - стоимость стримера не превышает 150$, а лента емкостью до 250 Мбайт стоит на дороже 15$.

Стримеры, которые не будут работать в Linux-системе

Но прежде чем приступить к обсуждению работы со

Установка программного обеспечения FTAPE

Тестирование работоспособности стримера

Подготовка магнитной ленты стримера к работе

Форматирование

Инициализация

Создание и проверка тестового архива

Программное обеспечение для архивации

tar

mt

Практические приемы работы со стримером

Организация автоматической архивации в фоновом режиме

Стратегия архивации

Установка и работа с UPS

Подключение факс-модема

Эмулятор DOS

Эмулятор Windows

Эмулятор SCO UNIX

Устанавливаем собственную BBS

Поскольку Linux является многопользовательской и многозадачной операционной системой, на его основе оказывается достаточно просто создать вполне приличную BBS, поддерживающую одновременную работу практически неограниченного количества пользователей. В этой книге мы рассмотрим BBS Roman CATacombs - ROCAT, которую вы можете найти на CD-ROM TAE Linuxware 1.0 или в Internet по адресу: ......................... .

Распаковка архива с компакт-диска

Создание пользовательских счетов

Настройка пользовательских экранов

Подключение протоколов передачи файлов

Объединение в локальную сеть

Контроллеры Ethernet - что выбрать?

TCP/IP

Гетерогенные сети - Windows-Linux

Вход в Internet

Краткий путеводитель по CD-ROM с Linux

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

Так уж сложилось, что наиболее полно мне удалось познакомиться с дисками Trans-Ameritech Enterprises. Поэтому с них и начнем.

Диски Trans-Ameritech Enterprises

Volume 1

Первый диск с операционной системой Linux был выпущен компанией в сентябре 1993 года. Обычно говорят, что первый блин оказывается комом, но и этот диск вы можете найти интересным.

Вот краткое его содержание:

ARCHIVE_ и DOS_WIN_ - наборы архивов с одной из американских BBS. Содержат огромное количество полезных утилит и документации. Там, например, вы найдете исходные тексты программы просмотра TIFF-файлов и полное описание формата, коммуникационные программы для DOS и Windows, исходные тексты архиваторов LHARC и ARJ, библиотеки на ассемблере, несколько десятков shareware-игр и многое другое.

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

KERNELS - В этом каталоге вы найдете два ядра - для компьютера с приводом CD-ROM CDU31A и для привода, поставляемого в мультимедийных наборах Creative (Panasonnic).

LINUX - дистрибутив системы. Содержит два подкаталога: PACKAGES, в котором находится разбитая "подискетно" SLS-поставка системы и SOURCES, в котором вы найдете архивы с исходными текстами нескольких утилит UNIX. Среди них, между прочим, вы найдете немало интересного, в частности коммуникационные пакеты и средства передачи электронной почты.

LIVE102 - так называемая "живая система". В принципе вы можете установить на винчестере минимальную конфигурацию системы, а затем смонтировать привод CD-ROM и, внеся соответствующие изменения в пути поиска запускать все утилиты прямо с CD-ROM.

LIVE_99P - вспомогательный каталог, используемый программой установки

PICTURES - несколько сотен BMP и GIF файлов.

SLACKWAR и SLS103 - еще две версии дистрибутивов различных версий Linux. Вообще говоря, суть вещи эквивалентные. Выбирайте, какя больше понравится.

SOUNDS - как и следует из названия, содержит огромное количество WAV и ROL файлов.

К сожалению, программа установки, находящаяся в корневом каталоге диска, автоматически устанавливала какое-то экзотическое ядро системы. И догадаться, что надо воспользоваться каталогом KERNELS смогли не многие (я тоже, увы, в их число не вошел). Сегодня использовать страую версию Linux вряд ли имеет смысл, если только вы не ведете ожесточенную борьбу за минимизацию всех расходов. Но вот архивы DOS И Windows представляют определенную ценность и сегодня. Вот, например, содержание уже упоминавшегося каталога TIFF:


Directory MSDOS/TIFF/

Filename   Type Length   Date   Description
==============================================
DTIFF.ZIP     B  194039  900502  Displays TIFF files on screen, uses TACS
DVTIF1.ZIP    B   15198  900416  TIFF reader:PACKBITS compr/uncomp C src, ALDUS
TACS40.ZIP    B  116888  900425  TIFF Access/Create System - C source, TIFF 4.0
TFTOOL.ZIP    B   62503  900416  TIFF toolkit developer package C source, ALDUS
TIFF_50.ZIP   B   51127  891209  Tagged Image File Format specs, v5.0
TIFFAX.ZIP    B   41572  900416  TIFF FAX format definition/example, ALDUS

Впрочем, что это я о любителях DOS? Мы ведь ведем речь о Linux. Поэтому, позвольте перейти к рассказу о следующем диске - Linux Volume 2.

Volume 2

Этот диск появился в январе 1994 года и отличался прежде всего, корректным исполнением программы начальной установки Linux.

На втором диске вы также найдете альтернативную версию FreeBSD, которая размещена в каталогах BSD_USR_ ("живая" система), FREEBSD_ (дистрибутив с интсталлятором) и UPDATE_B, в котором находится "заплаточка" на начальный загрузчик системы.

Весь остальной диск посвящен Linux. Проанализировав все недостатки первого диска, фимрма TAE включила в комплект поставки несколько начальных загрузчиков, помещенных в каталог BOOT. Фактически, загрузчик представляет собой минимальную конфигурацию Linux, поддерживающую, тем не менее файловую систему ISO9600 (CD-ROM). Но поскольку различные типы приводов управляются по-разному, пришлось создать несколько образов дисков, каждый из которых ориентирован на свой привод. Создать загрузочную дискету вы сможете и без программы Install. Вам достаточно воспользоваться программой подорожечного копирования rawrite.exe (для получения справки воспользуйтесь ключом -h).

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

Даже если вы консерватор, не поленитесь заглянуть в каталог SLACKWA1. Потому что, начиная с этого тома, вы сможете обнаружить там "бонусы" - программы, которые в дистрибутив не входят, но могут оказаться весьма полезными. Вот содержание каталога EXTRA:

BASH_BIN - еще одна оболочка;

DOSEMU - эмулятор MS-DOS (вот вам и многозадачный MS-DOS на PC, вкедь никто не мешает вам запускать сразу несколько задач. Кстати, поддерживается и графика. Simcity строит, а F-19 летает!)

GAMES - сетевая многопользовательская игра, классика UNIX-систем: MultiUser Dungeons (MUD). Текстовая, но завлекательная. На одном терминале играть неинтересно. Но зато проходят Internet-чемпионаты!

GRAPHICS - содержит программ построения фотореалистичных изображений методом обратной трассировки лучей и набор программ для просмотра различных графических файлов - TIFF, TGA, JPEG и MPEG.

MATH - содержит программу Gnuplot 3.5, предназначенную для визуализации двух и трехмерных графиков с возможностью распечатки на любых типах принтеров (да и плоттеров) и поддержкой SVGA-режимов. Аналог хорошо знакомого BoeingGraph или Harvard Graphics. Впрочем, пользовательский интерфейс типично из Unix.

POSTGRES - настоящая СУБД, которая является духовным наследником Ingress. Не путайте ее, пожалуйста с Progress! Postgress содержит диалоговый монитор, кучу скриптов для выполнения отдельных операций на уровне shell-программирования, а также библиотеки для языка Си. Есть также вся необходимая для работы документация. К сожалению, это однопользовательская версия, но вы всегда можете обратиться к разработчикам. В Internet вы можете найти интерфейс для работы с Postgress из под X-window на языках TCL/TK.

SERIAL - весьма примечательный каталог. Содержит новую версию getty - программу доступа к системе с удаленного терминала, которая поддерживает режим обратного дозвона, а также позволяет оперативно переключать линию с передачи данных на разговор и обратно. Вторая версия - mgetty, позволяет использовать Linux-машины в качестве факс сервера, для автоматической рассылки факсов, а также их приема с последующей обработкой (формат Postscript). Согласитесь, что уже эта программка позволяет превратить ваш компьютер в средство зарабатывания денежек! Одна беда, mgetty предполагает использование факс модемов класса 2 и популярные модели US Robotics 14400 Sportster или Worldport оказываются несомвестимыми с ней. А вот USR 28800 вполне подойдет!

SECURITY - абсолютно необходимые вещи для системного администратора любой UNIX-системы. Это программа взлома входных паролей, которая использует довольно интересные эвристические алгоритмы, а также расширяемый словарь вероятных паролей. Проанализировав свой файл /etc/passwd вы сможете обнаружить бреши в обороне своей машины и заставить нерадивых пользователей сменить пароли.

SOUND - как и следует из названия, набор средств для работы со звуком. Содержит весь набор средств, поставляемых с любой звуковой платой. Впрочем, установка драйвера звуковой платы - отдельный процесс, который мы также осветим в специальной статье. А среди программ на этом диске вы найдете программу управления микшером, набор проигрывателей MIDI, WAV, MOD и AU (звуки из мира Sun) файлов, а также программу фонемного синтеза речи, которая умеет даже "озвучивать" текстовые файлы. И конечно же программу проигрывания музыкальных компакт-дисков.

TERMINAL - содержит набор программ, позволяющих с полной отдачей использовать внешний (или удаленный) терминал. Фактически, это просто удобные утилиты для настройки файла /etc/termcap и для облегчения жизни пользователя.

X11 - набор клиентов для X-Window. На этом диске вы найдете: ANDREW - глобальная разработка, сравнимая по масштабности разве что с EMAX, впрочем пока вы получите только библиотеки для работы с этим пакетом и всю необходимую документацию; FTPTOOL - оболочка для работы с FTP из X-Window; XFRACT - программка для синтеза фракталов, никакой особой ценности, но зато какой визуальный эффект!

И, наконец, XGopher - клиент для работы с Gopher-протоколом Internet. С его помощью вы сможете "прорыть тоннель" до самых окраин мира телекоммуникаций. Если сумеете подключиться к сети не через поднадоевшую bmail for DOS, а как нормальный UNIX-машинист. Впрочем и об этом мы поговорим с вами отдельно.

Как и на предыдущем диске, вы найдете "живую систему" в каталоге LIVE. Но и это еще не все. Специально для наших восточных друзей на диске находится расширение для японоговорящего народа (каталог JE_0_9). Но это к слову. Более полезен для вас набор справочных файлов, сосредоточенный в каталоге READ. Здесь и руководство по подключению принтера и руководство по подключению сетевых адаптеров и так далее и тому подобное.

И наконец, каталог SRC. В нем вы найдете еще несколько полезных вещей, причем с исходными текстами. Отметим только исходные тексты системы X-Window (Release 5), в которые включены не только X-сервер, но и около четырех десятков X-клиентов. Весьма приличный набор примеров работы в X.

Supplement

Следующий диск - Release 3 был выпущен небольшим тиражом, поскольку на подходе уже была следующая версия Release 4. И поскольку нашим читателям добыть этот диск не удастся, мы позволим себе опустить рассказ о нем. Но! В дополнение к Release 3 в июле 1994 года появился Supplement, который содержит много интересных вещей.

ARCHIVES - содержит несколько архивных файлов с различными утилитами, но самое важное - это полный дистрибутив Andrew 6.1 со всей документацией. И вновь вынужден обещать читателям рассказать об этом продукте отдельно, а пока могу сказать, что упакованные архивы занимают 19 МБайт. Кроме того, в этом архиве вы найдете заплатки к альфа-версии эмулятора MS Windows 3.1 в среде X-Window.

BOOT - как и в прошлый раз, содержит несколько минмиальных систем, поддерживающих различные типы приводов.

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

DOCS - вот с этого каталога и имеет смысл начинать. Здесь содержится порядка 25 файлов с рекомендациями, как решить ту или иную проблему. Например, как подключить стример или сетевой адаптер, будет ли Linux работать на компьютере с шиной PCI и так далее.

EXTRA - самые любопытные вещи. Вот что лежит в этом каталоге:

BOGO-1.2 - программа оценки реальной производительности вашего компьютера. Измеряет не в традиционных "попугаях" а в BogoMIPS, на которые вы найдете ссылки в огромном количестве литературы.

EBBS - полноценная BBS на Linux. Среди прочих возможностей поддерживает Zmodem (да и кто сейчас работает с другими протоколами) и режим IRC (Internet Relay Chat).

EFAX - отличная программ для работы с факсмодемами. И все это в XWindows. Из аналогов на ум приходит только Delrina WinFax Pro.

IMAGEMAG - ImageMagic, программа для просмотра и преобразования форматов графических изображений. Поддерживает более двадцати форматов, используемых на PC, Macintosh и Sun.

IMAZE - игра для XWindows на тему блуждания в лабиринтах. В духе Wolfenstein, но рассчитана на многомашинную сеть. На одиночной машине я ее запустить, к сожалению, не смог. Судя по всему необходимо запускать вначале сервер, а уже потом сажать клиентов

LINUXDOC.1 - к сожалению, это не полный комплект документации (есть такой международный проект - Linux Documentation Project - LDP). Это конвертер документов, позволяющий преобразовывать текстовые документы во входные файлы различных потоковых форматтеров, таких, как например, groff или tex. Заслуживают упоминания и такие форматы как HTML и SGML.

PLAN - планировщик для X-Window. Конечно, ему далеко по изяществу до Lotus Organizer, но ведь не все сразу! К тому же поставляется с исходным текстом

RIP - поддержка специализированного протокола передачи графических изображений. Программа предназначена для операторов BBS, желающих предоставить клиентам графический интерфейс. Довольно эффективная штучка- чертеж "Колумбии", знакомый всем, кто хоть раз видел Автокад, занимает всего 8 килобайт.

WINE9606 - А это сам эмулятор MS Windows, по состоянию разработки на июнь 1994 года. Конечно, работает в этой версии далеко не все, поскольку реализовано только 30% всех функций API. Но в солитер играть уже можно!

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

XDOS0.4A - как и следует из названия, эмулятор DOS, но только для X-Window. Поддержка национальных шрифтов (хоть китайский!) и имитация XMS-памяти.

JE - полностью японизованная версия Linux. Обратите внимание, что японские граждане не кичатся знанием английских слов и отдельных букв, а адаптируют системы под себя. Может в этом секрет японского чуда?

LEMACS-1.10 - Lucid GNU Enacs. Полный комплект средств для работы в популярном редакторе EMACS. Как и старый добрый Multi-Edit, EMACS состоит из небольшого ядра и большого количества функций-макрорасширений. Причем некоторые из них, как например, программа просмотра новостей, поступивших по электронной почте, явно выходят за привычные представления о функциях текстового процессора. К сожалению, русский язык EMACS пока не понимает.

MIT - здесь вы найдете средства для запуска двоичных модулей, ориентированных на SCO UNIX. Автор предупреждает, что работать будет пока не все.

MOTIF - да, это хорошо известная библиотека Motif, предназначенная для разработки программ в среде X-Window. Но, поскольку это коммерческий продукт, хранится он на диске в зашифрованном виде. Для получения ключа необходимо перечислить денежку разработчику, после чего вам будет сообщен ключ. Дабы пресечь вопросы ряда читателей, отвечу сразу - я этого ключа не знаю!

RR_MOVED - более двух десятков драйверов для различных типов видеокарт. С точки зрения здравого смысла имеет смысл скомпилировать X-сервер с драйвером, соответствующим вашему типу адаптера. Но сколько времени займет эта процедура, трудно даже предсказать. Я как то оставил компьютер на ночь (386 DX-40, 8 МБ), но и этого ему, бедняге, не хватило. Впрочем, благодаря заботам программы make, вы можете компилировать новый сервер постепенно. А чтобы не тратить время впустую - установите этому процессу приоритет nice. И машина автоматически будет заниматься делом, пока вы ушли на обед или пьете чай.

SECURITY - в этом каталоге вы найдете несколько утилит удаленного доступа серии R* (rlogin, rshell и т.д.), которые адаптированы к особенностям Linux и обслуживают различные категории пользователей без нарушения прав доступа.

SLS, SLACKWAR 111, SLACKWAR 122 - очередные версии дистрибутива системы.

USR, LIB - "живая" система.

WORDS - это и в самом деле "слова". В каталоге находится несколько файлов, содержащих наиболее употребительные слова основных европейских языков. Назначение каталога очевидно, в UNIX существует несколько программ орфографической проверки, некоторые из которых входят в дистрибутив Linux.

XC - исходные тексты системы X-Window Release 6. И это при том, что до сих пор большинство UNIX-систем работают только с Release 4, а современные X-терминалы выпускаются с сервером Release 5. Да, уж в недостатке оперативности TAE обвинить никак нельзя!

Interim Release

Следующим шагом Trans-Ameritech Enterprises был выпуск диска Interim Release в сентябре 1994 года. Это промежуточный выпуск, предшествовший появлению Release 4. И содержатся на нем, в основном, дополнительные продукты.

Действительно интересных вещей на нем немного. Но зато каких! Во-первых, это демонстрационная версия СУБД Flagship. Причем работающая в течение десяти дней после установки (в конце концов вы можете устанавливать ее каждый понедельник при включении системы). Главная предесь Flagship состоит в том, что она компилирует файлы, разработанные для Clipper в системе Linux! Дальнейшие комментарии, как говорится, излишни.

Есть на этом диске и MOTIF. Как и раньше, сами библиотеки зашифрованы. Но все примеры и документация стали доступны широкой публике. Можно, по крайней мере, посмотреть, стоит ли с MOTIF вообще связываться.

SQL - под этим скромным названием находится опять-таки демонстрационная версии многоплатформенного SQL-сервера - Just Logic SQL. Вы можете развернуть версию для DOS/Windows, OS/2 и Linux. Это многопользовательская СУБД, которая, по причине своей невчсокой стоимости и ориентации на "бесплатную" ОС вполне может выбиться в лидеры на нашем рынке.

Кроме того, на диске вы можете найти Slackware 2.0, два очередных дистрибутива системы, "живую" систему и так далее. Что касается "бонусов", то под них только обозначены каталоги, а сами подарки находятся на следующем диске. Впрочем, есть и действительно уникальные вещи. Так в одном из каталогов "спрятано" программное обеспечение, предназначенное для превращения Linux-машины в шлюз (gateway) Internet.

Release 4

А месяц спустя, в октябре 1994 года появился и выпуск Release 4. Следуя традиции, этот выпуск также содержит "живую систему", набор образов для загрузки системы, три набора дистрибутивов Linux и систему FreeBSD. Кроме того, в отдельный каталог выделено все, что относится к InterView - огромный оконный диспетчер и куча библиотек, работающий в среде X-window.

И конечно, на диске довольно много "бонусов". Во-первых в каталоге

EXTRAS вы обнаружите следующее:

CALC2.9 - новое слово в калькуляторах. По возможностям эту программку можно сравнивать с программируемыми калькуляторами Sharp или Citizen, которые работают на языке Basic. Все поставляется с исходными текстами и отличной документацией.

IRSIM - довольно популярное средство имитации переходных процессов в p- и nMop схемах.

JAZZ-1.0 - а вот такого продукта в DOS или Windows вы еще не встречали. Это программа редактирования MIDI-файлов, позволяющая вводить дополнительные эффекты, переносить фрагменты из одного файла в другой, смешивать различные источники данных и так далее и тому подобное. Конечно же, поддерживается и работа с инструментами.

SAMBA - это маленький сервер, который может работать как через сервер серверов inetd, так и как обычный демон. Название продукта происходит отаббревиатуры SMB (Session Message Block), а предназначен SMB-протокол ни много ни мало, как для создания гетерогенных DOS-UNIX сетей. В результате вы получаете возможность объединить в единую сеть Linux и Windows-машины, и при этом без проблем использовать общее дисковое пространство и принтеры. Кстати, последнее может оказаться весьма полезным. Ведь в Linux довольно много средств, ориентированных на работу с Postscript-файлами, и более того, Postscript - это стандарт для вывода информации. Поэтому программ, преобразующих Postscript в команды управления матричными и лазерными принтерами хватает. А отсюда до создания принт-сервера на базе Linux - только один шаг!

FIPS.DOC, FIPS.EXE - эта скромная программуля в каталоге \extras предназначена для DOS, но без сомнения, ее можно было бы поставлять на компакте в гордом одиночестве. Это единственная на сегодняшний день программа неразрушающего перепланирования Partitition table на жестком диске! Комментарии, как говорится, излишни.

Но "бонусы" этим не исчерпываются. Есть еще два каталога, в которых вы найдете приятные сюрпризы. Первый из них, это \SLACKWAR\CONTRIB, в котором вы обнаружите следующее:

ANDREW-D - с пакетом Andrew вы уже встречались, а сцффикс D означает, по всей видимости, Development. В этом каталоге скрывается так называемый AUIS - Andrew User Interface System, набор средств, предназначенных для создания мультимелдийных документов и приложений (в Andrew под мультимедийным документом понимается форматированный текст со звуком и картинками/мультиками);

GCC-2.6 - новая версия компиляторов Си: чистый Си, Си++ и Objective C;

GNAT-1.82 - вот для этого то пакета и нужны новые компиляторы Си. Это полноценный транслятор с языка Ада, о котором у нас столько писали, но которого никто никогда не видел. Между тем, этот язык ориентирован, во-первых, на многозадачные многопроцессные приложения, а во-вторых, предполагает, что программы бывают большими и сложными или очень большимии очень сложными. И что пишут программные комплексы не одиночки, а коллективы. Так что дерзайте!

LINUX-X- - а это так, мелочевка... В этом каталоге любители стрельбы на экране найдут версию DOOM I for X-Window. Ну что, не кисло? При желании вы можете поставить и уровни от версии DOOM II, разработчики утверждают, что все будет работать. Единственное ограничение - процессор. На 80386-DX40, 8 МБ программа живет внутренней жизнью и на отработку клавиатуры у X-сервера руки просто не доходят.

Теперь давайте обратимся к каталогу SLACKWAR.000. Здесь вы обнаружите два грибных места: .\CONTRIB и \EXTRA-ST. Начнем с первого из них.

  • FREE-WID - набор виджетов для X-Window;
  • GNU-COMM - Gnu Common LISP;
  • GNU-GCC- 6 - еще один набор архивов GNU C 2.6;
  • GNU-GNAT - а здесь тоже находится тетушка Ада. Но уже две версии, соответствующие спецификациям АДА-79 и АДА-82;

    GNU-GPC - полная версия Gnu Pascal Compiler;

    IRCII - Это клиентская программа для работы со службой Internet Relay Chat. Особенность программы в том, что она позволяет, при наличии звуковой платы, переходить от топтания по кнопкам к голосовой связи и обратно;

    MBASE - MetalBase 5.0 и 5.1. Это СУБД с возможностью работы как через диалоговую оболочку, выглядящую вполне прилично (ncurses), так и из программ на языке Си. Существуют версии этой СУБД и для DOS, и для Sun, и для Next, но первоначально она разрабатывалась для Amiga 500.

    MC - MouseLess Commander. Очень рекомендуется! Установив эту программу, вы снова вернетесь в годы молодости и увидите на экране привычные панели Norton Commander.

    SAMBA - новая версия клиента и сервера SMB.

    SEEJPEG - программа визуализации графических файлов JPEG, GIF, PPM и TARGA. Позволяет демонстрировать слайд-фильмы.

    SMAIL - SendMail 3.1.

    Во втором "бонусном" каталоге \EXTRA-ST вы обнаружите следующее:

    APPLE-II - программа эмуляции Apple-II. Возможно и программы для отечественной разработки - "Агата" также будут работать без особых проблем;

    BSD-SEND - версия SendMail, конвертированная из системы BSD;

    CPM-80-E - эмулятор процессора Z80 и операционной системы CP/M. При эмуляции отрабатываются все вызовы BDOS.

    DOS-EMUL - очередная версия эмулятора MS-DOS;

    GNU - набор различных утилит, разработанных в рамках проекта GNU;

    GNU-FING 37 - finger 1.37, программа для поиска пользователей в сети Internet;

    IBCS2-EM - новая версия программы IBCS2, позволяющая запускать в Linux программы, скомпилированные под SCO Unix или SVR4. Соответствующие статические библиотеки пристутствуют в комплекте поставки.

    MMDF - Mail Delivery Agent, демон для автоматизации работы с отправкой

    приемом почты.

    Linuxware 1.0

    Следующий диск TAE демонстрировал собой новый подход к новичкам в области Linux, и получил новую торговую марку. На смену "volume" и "release" пишел LinuxWare 1.0, выпущенный в марте 1995 года.

    Прежде всего отметим, что теперь установка системы может выполняться из MS Windows. Хотя я, по-стариковски, предпочитаю прежний подход. Во-вторых, TAE добавила в комплект поставки большое количество DVI-файлов, и предоставил программу чтения и печати этих файлов из Windows. Теперь у вас появилась возможность распечатать документацию до установки Linux, а не после!

    В остальном, диск следует сложившимся традициям и мы не будем лишний раз повторяться. А вот что вы можете найти в каталоге \extras:

    1BBS - простая BBS, дискредитирующая интеллектуальные притязания многих

    сисопов (это всего лишь скрипт-файл);

    AUDIO - "радиогазета" по Linux (эта технология получает в Internet все большее распространение) - читать особо некогда, а радио можно и послушать. Естественно, вам понадобится звуковая плата;

  • CRACK - новая версия программы взлома входных паролей.
  • DOOM - уже две версии: для X-Window и "для без";
  • DOUBLE - аналог Stacker или DoubleSpace;
  • GOPHER - и снова средство для работы с Internet (кстати, подсчитайте сколько раз мы уже упоминали Internet?);

    IBCS2 - новая версия, в дополнение к предыдущим поддерживаются двоичные

    модули Wyse;

    LSMTOOL - долгожданная программа, автоматизирующая разбор LSM-файлов (спецификаций Linux-программ);

    MODULES - удобное средство конфигурации ядра системы во время загрузки ("на лету");

    NV - средство обмена в сети видеоинформацией. Несложный аналог программного обеспечения для проведения телеконференций;

    PCMCIA - Linux начинает "переползать" и на notebook. В этом каталоге находится набор драйверов для карт PCMCIA;

    PPIC - просмотр и обработка графических файлов;

    ROCAT - достаточно мощная BBS, представляющая собой спецализированную оболочку, ориентированную на пользователей. Все сообщения программы вынесены в отдельный конфигурационный файл, и позволяют реализовать не только чисто русскоязычную систему, но и многоязычную. Развитая система иерархически связанных пользовательских эканов.

    SVGAFFT - спектроанализатор, работающий со звуковой платой. Обеспечивает ввод информации через Sound Blaster, ее Фурье-преобразование и последующее отображение спектра на VGA/SVGA-мониторе. Поставляется с исходными текстами.

    SVGALIB - новая версия библиотеки для работы с цветной графикой без X-Window. Кстати, для установки DOOM вам нужно поставить именно эту версию.

    PV-Wave - интегрированная система обработки и визуализации численных данных.

    TCPDUMP - пакет для системного администратора.

    Wine - очередная рабочая версия эмулятора MS Windows.

    X311 - новый дистрибутив XFree86 (повышена производительность, исправлены ошибки).

    XGROK - система управления базами данных и создания графического пользовательского интерфейса в среде X-window.

    LinuxWare 2.0

    LinuxWare 2.5

    Компакт-диски фирмы Caldera

    Американская фирма Caldera предприняла достаточно успешную попытку выпуска коммерческой версии системы Linux. В результате некоторой переработки версии 1.2.13 на свет появился диск Caldera Desktop 1.0, за которым последовало еще несколько. Сегодня у фирмы Caldera есть и российйский дистрибьютор - петербургская фирма Kronverk Ltd. (0812) e-mail: bravo@ ...... . Поставка базовой системы осуществляется фирмой как правило со склада в Петербурге, остальные диски пока поставляются на заказ.

    Caldera Desktop 1.0

    Розничная цена диска - 99 USD.

    Linux Office

    Розничная цена диска -

    Компакт-диски в книгах издательства SAMS Publishing

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

    В обоих рассмотренных ниже дисках вы найдете ядро Linux 1.2.8, которое если не самое свежее, то во всяком случае работает достаточно надежно.

    CD-ROM к книге Linux Unleashed

    CD-ROM к книге Building Linux Internet Server

    Компакт-диски отечественных производителей

    Очевидно, что спрос на Linux непрерывно растет. Один из признаков этого процесса - появление отечественных дисков с дистрибутивами системы и наборами пакетов. Мы не будем говорить о многочисленных изданиях типа "все для UNIX" поскольку обычно подобные CD-ROM содержат бессистемно сваленные в кучу наборы утилит, которые раньше пылились на какой-нибудь архивной ленте или диске - вы вероятно сами представляете, сколько хлама собирается за несколько лет работы. Но для Linux выпукаются специальные диски, и выпускаются здесь, в России. Вот о них то стоит поговорить подробнее.

    "Открытое ядро"

    По многочисленным оценкам пользователей Linux это лучший CD-ROM лета-осени 1996 года. Питерский колллектив "УрбанСофт" ( 198903, Петродворец, а/я 77, e-mail: info@usoft.spb.su) может заслуженно гордиться успехом - диск получился отличный. Если вы планируете поставлять Linux-системы, "Открытое ядро" вполне