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


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

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

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

Очень редки случаи, когда после краха системы требуется переинсталляция. Многие начинающие пользователи случайно удаляют некоторые важные системные файлы и немедленно бегут за инсталляционным диском. Это не "Боже мой"! Прежде чем применять такие отвратительные меры, исследуйте проблему и попросите других помочь ее решить. В большинстве случаев вы можете восстановить систему с дискеты сопровождения (maintenance diskette).



Генеральная Общедоступная Лицензия GNU


Ниже напечатана Генеральная Общедоступная Лицензия GNU (GPL или copyleft), под которой находится Linux. Она приведена здесь, чтобы ликвидировать возникающие недоразумения относительно статуса авторских прав Linux. Это не shareware и не public domain. Большая часть ядра Linux kernel защищена copyright октябрь 1993, Linus Torvalds а другие программы и части ядра защищены copyrighted других авторов. Таким образом, Linux защищен авторскими правами, хотя вы можете распространять его при выполнении условий GPL, приведенных ниже.


Генеральная общедоступная лицензия GNU
Версия 2, Июнь 1991

Copyright (c) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA. Всем разрешено копировать и распространять точные копии этого документа, содержащего лицензию, но какие-либо изменения запрещены.



Получение помощи


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

Первоочередной источник помощи - списки рассылки и телеконференции USENET обсуждались в Разделе 1.9. Если у вас нет к ним онлайнового доступа, вы можете поискать доступ к такой информации на локальных BBS, в CompuServe и т.д.

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

Но сначала ищите ответы во всей доступной вам документации! Прежде всего в источниках, перечисленных в Разделе 1.9 и Приложении A. Эти документы тщательно написаны для людей вроде вас, которые нуждаются в помощи при работе с Linux. Даже книги, написанные про UNIX вообще, применимы к Linux и вы должны извлекать из них пользу для себя, и как правило, найдете ответы на интересующие вас вопросы.

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

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

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

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





Управление связями файлов


Связи позволяют давать одному физическому файлу много имен. Системой файлы распознаются по индексам файлов, которые являются уникальными идентификаторами в рамках системы. Команда ls -i выдаст вам индексы файлов. На самом деле каталог - это перечень индексов файлов с соответствующими этим индексам номерами. Каждое имя файла в каталоге привязано к конкретному индексу.



Выполнение команд Shell


Вы можете также выполнять команды прямо из vi. Команда :r! работает как :r, но вместо чтения файла она вставляет выход данной команды в буфер, в место, где находится курсор. Например, если вы используете команду

:r! ls -F

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

____________________________________________________________________ |COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY. | |letters/ | |misc/ | |papers/_ | |~ | |~__________________________________________________________________|

Вы можете выполнить команду a, находясь в редакторе vi и вернуться в редактор после ее завершения Например, если вы используете команду

:! ls -F

будет выполнена команда ls -F, а результат выдан на экран, а не вставлен в редактируемый файл. Если вы используете команду

:shell

vi запустит shell, который позволит временно "отложить" vi и выполнить команды. После выхода из shell (используя команду exit) вы вернетесь в vi.



Базовые команды и утилиты


Практически любая утилита, которую вы ожидаете найти в стандартных реализациях UNIX, имеется и в Linux. Сюда включены и базовые команды, такие как ls, awk, tr, sed, bc, more и т.д. Назовите любую - она есть в Linux. Поэтому вы в праве ожидать знакомой рабочей UNIX-среды. В Linux есть все стандартные команды и утилиты. (Новички могут посмотреть Главу 3 для начального знакомства с базовыми командами UNIX).

В Linux имеются многие текстовые редакторы, включая vi, ex, pico, jove, также как GNU Emacs и его вариации, вроде Lucid Emacs (который содержит расширение для использования под X Windows) и joe. Скорее всего, любой текстовый редактор, к которому вы привыкли, перенесен в Linux.

Выбор редактора - явление любопытное. Многие пользователи UNIX до сих пор используют "простые" редакторы вроде vi (кстати, автор писал эту книгу в Linux, используя редактор vi) (кстати, переводчик переводил эту книгу в Linux, используя редактор red).

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

Интересное замечание - большинство утилит Linux имеют статус GNU. Эти утилиты часто поддерживают наиболее современные черты, не содержащиеся в стандартных версиях BSD или AT&T. Например, версия GNU редактора vi - elvis, содержит структурный макроязык, который отличается от исходной реализации AT&T. Но тем не менее, утилиты GNU сохраняют совместимость с их тезками из BSD и System V. Многие считают, что GNU версии лучше исходных программ.

Многие пользователи самой важной утилитой считают shell. shell - это программа, которая читает и выполняет команды пользователя. Кроме того, многие оболочки (shells) имеют такие возможности, как контроль выполнения> (job control) (позволяя пользователю управлять несколькими параллельными процессами), перенаправление входа-выхода и командный язык для написания командных файлов (shell scripts). Командный файл - это программа на языке оболочки, аналогичная "batch file" в MS-DOS.

В Linux много типов оболочек. Наиболее важное различие между ними - используемый командный язык. Например, C Shell (csh) использует командный язык, чем-то напоминающий язык программирования Си. Классический Баурновский shell (Bourne Shell) использует иной командный язык. Обычно выбор оболочки обусловлен выбором соответствующего командного языка. Выбранная оболочка в какой-то мере определяет вашу рабочую среду.

Не важно, к какой оболочке вы привыкли, та или иная ее версия есть в Linux. Наиболее популярная оболочка - это GNU Bourne Again Shell (bash), т.е. вариант Bourne shell, включающий много современных свойств и возможностей, таких как управление работами, командную историю, дописывание имен команд и имен файлов, Emacs-подобный интерфейс редактирования командной строки и мощное расширение стандартной оболочки (Bourne shell).

Другая популярная оболочка - tcsh, версия C Shell с более современными функциями по сравнению с bash. Другие оболочки: zsh - небольшая баурно-подобная оболочка; ksh - оболочка Корна; ash - оболочка BSD и rc -оболочка проекта Plan 9.

Что особенно важно сказать относительно этих оболочек? Linux дает вам уникальную возможность кроить систему под ваши личные нужды. Например, если вы единственный пользуетесь этой системой и вы предпочитаете редактор vi и bash в качестве оболочки, то нет необходимости иметь прочие редакторы и оболочки. "Сделай сам, как тебе нравится" - это позиция хакеров и пользователей Linux.



Документация доступная по онлайн


Если у вас есть доступ к Internet, вы можете найти много документации по Linux через anonymous FTP из архивов, расположенных по всему миру. Если же вы не имеете прямого доступа к Internet, эту документацию все-таки можно достать: много дистрибутивов Linux, содержащих документы, упомянутые здесь, продается на CD-ROM. Они также распространяются по многим другим сетям, вроде Fidonet и CompuServe. Если вы в состоянии послать почту в Internet, значит вы можете достать и эти файлы, используя один из ftpmail-серверов, которые пошлют вам документы или файлы электронной почтой из FTP-архивов. Смотри в Приложении C дополнительную информацию по использованию ftpmail.

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

Приложение A содержит список документации на Linux, доступной через anonymous FTP. Имена файлов будут различаться на разных серверах. Большинство серверов хранит документацию на Linux в подкаталоге docs Linux-овского архивного подпространства. Например, на FTP сервере sunsite.unc.edu файлы Linux помещены в каталог /pub/Linux , а документация по Linux - в /pub/Linux/docs.

Примеры доступной документации - это Linux FAQ (Frequently Asked Questions), собрания часто задаваемых вопросов (в данном случае) по Linux; документация Linux HOWTO, описывающая специфические аспекты системы, включая Installation HOWTO, Printing HOWTO, Ethernet HOWTO и Linux META-FAQ - перечень других источников информации по Linux в Internet.

Большинство этих документов регулярно посылается в несколько относящихся к Linux групп USENET; смотрите Раздел 1.9.4.



Файлы установки системы


При загрузке системы некоторые сценарии автоматически выполняются системой до входа в нее пользователей. Далее следует описание того, что в это безвременье происходит. Во время загрузки ядро запускает процесс /etc/init. init - это программа, которая читает свои настроечные файлы (/etc/inittab) и запускает другие процессы, базирующиеся на содержании этих файлов. Один из важных процессов запускается из inittab - это /etc/getty , он стартует для каждой виртуальной консоли. Процесс getty захватывает ВК (Виртуальную Консоль) и запускает на ней процесс login. Это позволяет вам входить на каждой ВК. Если /etc/inittab не содержит процессов getty для конкретной ВК, на эту ВК вы не войдете.

Другой процесс, выполняемый из /etc/inittab - это /etc/rc, главный системный файл инициализации (прим. переводчика: или главный файл инициализации системы - что тоже верно). Этот файл представляет из себя shell-сценарий, который выполняет любые необходимые команды инициализации во время загрузки, такие например, как монтирование файловых систем (смотрите Раздел 4.8) и инициализации области своппинга.

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



Использование tar


Команда tar наиболее часто используется для архивации файлов. Формат команды tar

tar <options> <file1> ... <fileN>

где <options> есть список команд и опций для tar, a <file1> ... <fileN> есть список файлов добавляемых в архив или извлекаемых из него.

Например, команда

# tar cvf backup.tar /etc

упакует все файлы, содержащиеся в /etc, в архив tar под именем backup.tar. Первый аргумент команды tar -``cvf', это (внутренняя) "команда" tar. ``c'' указывает tar создать новый архивный файл. Опция ``v'' заставляет tar выводить имя каждого архивируемого файла. Опция ``f'' говорит, что следующий аргумент - backup.tar - имя созданного архивного файла. Остальные аргументы команды tar - имя файла и имя добавляемого в архив каталога.

Команда

# tar xvf backup.tar

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

Поэтому перед извлечением архивированных файлов важно знать, где файлы следует распаковать. Например, вы заархивировали следующие файлы: /etc/hosts, /etc/group и /etc/passwd. Если вы используете команду

# tar cvf backup.tar /etc/hosts /etc/group /etc/passwd

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

# cd / # tar xvf backup.tar

поскольку файлы извлечены с сохраненной в архиве тропой

Если вы заархивировали файлы командой

# cd /etc # tar cvf hosts group passwd имя каталога не сохраняется в архивном файле. Поэтому вы должны выполнить ``cd /etc'' перед извлечением файлов. Вы обратили внимание: то, как вы создали архивный файл сильно влияет на то, в каком месте его следует извлекать. Команда

# tar tvf backup.tar

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



Использование UNIX


Название: Learning the UNIX Operating System Автор: Grace Todino & John Strang Издатель: O'Reilly and Associates, 1987 ISBN: 0-937175-16-1, $9.00

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

Название: Learning the vi Editor Автор: Linda Lamb Издатель: O'Reilly and Associates, 1990 ISBN: 0-937175-67-6, $21.95

Эта книга о редакторе vi - мощном текстовом редакторе, который можно найти на любой системе UNIX мира. Часто бывает важно знать и быть готовым применить vi, поскольку не всегда вы будете иметь доступ к "настоящим" редакторам, вроде Emacs.



Использование загрузочной дискеты


Многие загружают Linux используя ``загрузочную дискету'', которая содержит копию ядра Linux. В ядре есть информация о корневом разделе Linux, так что ядро знает, где искать на жестком диске корневую файловую систему. (Команда rdev может использоваться для установки корневого раздела в образе ядра; см. ниже). Это тип дискеты, созданной, например, Slackware в процессе инсталляции.

Для создания своей собственной загрузочной дискеты, сначала разместите образ ядра на своем жестком диске. Оно должно быть в файле /Image или /etc/Image. Некоторые инсталляции используют для формирования ядра файл /vmlinux.

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

Зная, где у вас находится ядро, установите корневое устройство в образе ядра на имя вашего корневого раздела командой rdev. Формат команды:

rdev <kernel-name> <root-device>

где <kernel-name>; это имя образа ядра, a <root-device> - имя корневого раздела Linux. Например, для установки корневого устройства в ядре /etc/Image на /dev/hda2 используется команда

# rdev /etc/Image /dev/hda2

rdev может устанавливать другие опции в ядре, такие как взятый по умолчанию режим SVGA, для использования во время загрузки. Используйте ``rdev -h'' для получения помощи.

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

Например, для копирование файла ядра /etc/Image на дискету в /etc/fd0 используйте команду

# cp /etc/Image /dev/fd0

Теперь эта дискета должна загружать Linux.



Концепция прав доступа


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

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

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

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

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

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

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



Концепция работы с пользователями


Система сохраняет различную информацию о каждом пользователе К такого рода информации относится перечисленная ниже.

username

уникальный идентификатор, присваиваемый каждому пользователю в системе. Примеры имен пользователей larry, karl и mdw. Могут использоваться буквы и цифры, а также нижнее подчеркивание и точка. Обычно имена пользователей ограничиваются восемью символами.

user

ID (или UID) - идентификатор пользователя - уникальный номер, присваиваемый каждому пользователю системы. Система обычно отслеживает идентификаторы пользователей, а не имена.

group

ID (или GID) - идентификатор группы это идентификатор группы пользователя. В Разделе 3.9 мы обсуждали права группы; каждый пользователь принадлежит к одной или более группам, определенных системным администратором. Подробнее об этом ниже.

password

Система также хранит в зашифрованном виде пароль пользователя. Команда passwd используется для установки и изменения пароля.

full name

"Полное имя" или "действительное имя" хранится вместе с именем пользователя. Например, пользователь schmoj может иметь действительное имя ``Joe Schmo'' (прим. переводчика: неужели для английского уха оно звучит также красиво, как для русского).

home directory

Домашний каталог - это каталог, в который пользователь начально попадает при входе в систему. Каждый пользователь должен иметь свой собственный домашний каталог, обычно ниже /home.

login shell

Исходный shell - это shell, который запускается для пользователя при его входе в систему. Это, например, может быть /bin/bash и /bin/tcsh.

Файл /etc/passwd содержит эту информацию про пользователей. Каждая строка этого файла содержит информацию об одном пользователе; формат строки имеет вид:

username:encrypted_password:UID:GID:full_name:home_directory:login_shell

Например, это может выглядеть так:

kiwi:Xv8Q981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bash

Как видно, первое поле ``kiwi'' - имя пользователя. Следующее поле ``Xv8Q981g71oKK'' - зашифрованный пароль. Пароли в читаемом виде в системе не хранятся. Сами пароли шифруются как секретные ключи. Другими словами, вы должны знать пароль, чтобы его расшифровать. Эта форма шифрации достаточно надежна.

Некоторые системы Linux используют "теневой пароль", в котором информация о паролях хранится в файле /etc/shadow. Поскольку /etc/passwd всем доступен, /etc/shadow обеспечивает дополнительный уровень секретности своей недоступностью. Теневой пароль обеспечивает и некоторые другие свойства, вроде прекращения действия пароля и т.д.; мы здесь не будем вдаваться в эти тонкости.

Третье поле, ``102'', - идентификатор пользователя (UID). Оно должно быть уникальным для каждого пользователя. Четвертое поле, ``100'', идентификатор группы (GID). Этот пользователь принадлежит к группе номер 100. Информация по группе хранится в файле /etc/group. Смотрите дополнительную информацию в Разделе 4.4.5.

Пятое поле - полное имя пользователя , ``Laura Poole''. Последние два поля - домашний каталог пользователя (/home/kiwi) и исходный shell (/bin/bash) соответственно. Домашний каталог пользователя не обязательно должен иметь имя, совпадающее с именем пользователя (username). Однако это помогает в идентификации.



Модернизация ядра


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

Исходные тексты ядра можно раздобыть на любом Linux-овском FTP-сервере (список смотрите в Разделе C). На sunsite.unc.edu, например, исходники ядро находятся в pub/Linux/kernel/. Версии ядра нумеруются с использованием номера версии ядра (kernel) и уровня исправления (patchlevel). Например, kernel version 0.99 patchlevel 11 обычно записывается как 0.99.pl11, или еще проще 0.99.11.

Исходники ядра распространяются в виде зазипованных tar-файлов. ( Часто patch-файлы ("заплаты") выпускаются для текущей версии ядра, которая позволяет модернизировать исходники вашего действующего ядра на основе последнего уровня исправлений, используя программу patch. В большинстве случаев, между тем, обычно проще инсталлировать целиком новую версию ядра. Например, файл, содержащий исходники ядра 0.99.pl11 - linux-0.99.11.tar.gz. ( прим. переводчика: На момент перевода книги существуют следующие серии ядер: 0.1-0.99, 1.0.1-1.0.9, 1.1.1-1.1.95, 1.2.1-1.2.13, 1.3.1-1.3.83. Ядра, принадлежащие серии с четной 2-й цифрой (1.0, 1.2), являются стабильными (то есть не включают никаких экспериментальных кодов). Ядра серии (1.1, 1.3) включают экспериментальные коды (такие как Mobile IP, IP-masquarading и т. п. в серии 1.3). Переводчик, исходя из декларированного автором принципа "от добра добра не ищут", работает в версии 1.2.13 и с нетерпением ждет появления версии 1.4.1 или 2.0.)

Распакуйте этот файл из каталога /usr/src; он создаст каталог /usr/src/linux, который содержит исходники ядра. Вам следует удалить или переименовать существующий /usr/src/linux перед распаковкой новой версии.

Когда исходники распакованы, вам необходимо убедиться, что две символические связи в /usr/include корректны. Для создания этих связей используйте команды

# ln -sf /usr/src/linux/include/linux /usr/include/linux # ln -sf /usr/src/linux/include/asm /usr/include/asm

Если вы однажды создали эти связи, нет причины создавать их

снова, когда вы инсталлируете следующую версию ядра. (Смотрите Раздел 3.10 по поводу символических связей).

Обратите внимание, что для компиляции ядра у вас в системе должны быть инсталлированы компиляторы gcc и g++ C и C++. Если вы нуждаетесь в более свежих версиях этих компиляторов, смотрите ниже Раздел 4.7.3.

Для компиляции ядра прежде всего выполните cd в /usr/src/linux. Выполните команду make config. Эта команда запросит у вас несколько настроечных опций, таких как "Какой тип файловой системы вы желаете включить в новое ядро". Затем, отредактируйте /usr/src/linux/Makefile. Убедитесь, что определение для ROOT_DEV корректно - оно определяет устройство, используемое в качестве корневой файловой системы во время загрузки. Обычное определение имеет вид:

ROOT_DEV = CURRENT

Менять это нет смысла, кроме случая, когда вы меняете устройство для вашей корневой файловой системы.

Затем выполните команду make dep для отслеживания всех взаимосвязей исходных текстов. Это очень важный этап.

И наконец, вы готовы компилировать ядро. Команда make Image скомпилирует ядро и оставит образ нового ядра в файле /usr/src/linux/Image. (прим. переводчика: Начиная с ядер серии 1.2 собранное ядро записывается в каталог /usr/src/linux/arch/i386/boot/Image (если конечно вы собирали ядро для процессоров серии intel, а не alpha, mips или sparc.) А команда make zImage скомпилирует скомпрессировнный образ ядра, который раскомпрессирует сам себя во время загрузки, а так занимает на диске меньше места.

После компиляции ядра вы должны либо скопировать его на загрузочную дискету (командой вроде ``cp Image /dev/fd0''), либо инсталлировать его, используя LILO для загрузки с вашего жесткого диска. Дополнительную информацию можно найти в Разделе 4.2.2 .



Монтирование файловых систем


Сначала несколько концепций, связанных с файловыми системами. Прежде, чем файловая система будет принята вашей системой, она должна быть примонтирована к какому-то каталогу. Например, если у вас файловая система на дискете, то вы должны примонтировать ее в каталог, скажем /mnt, для того, чтобы обеспечить доступ к ее файлам (смотрите Раздел 4.6.2). После монтирования файловой системы все файлы этой системы появляются в этом каталоге (и ниже). После размонтирования файловой системы каталог (в нашем случае /mnt) будет пуст, то же самое справедливо для файловой системы на жестком диске. (Прим. переводчика: Каталог /mnt будет пуст, если он был пуст до монтирования, иначе наоборот, станут видными файлы каталога /mnt (основной системы), которые становятся "невидимыми", когда к этому каталогу монтируется файловая система). Система автоматически монтирует файловые системы на ваш жесткий диск во время загрузки. Так называемая "корневая файловая система" монтируется к каталогу /. Если у вас отдельные файловые системы, например, для /usr - она монтируется на /usr. Если у вас только корневая файловая система, то все файлы, включая содержимое /usr, существуют в этой файловой системе.

Команда mount используется для монтирования файловой системы.

mount -av

Выполняется из файла /etc/rc (файла системной инициализации во время загрузки, смотрите Раздел 4.10.1). Команда ount -av получает информацию о файловых системах и монтирует в соответствии с файлом /etc/fstab. Пример файла fstab показан ниже.

# device directory type options /dev/hda2 / ext2 defaults /dev/hda3 /usr ext2 defaults /dev/hda4 none swap sw /proc /proc proc none

Первое поле - это устройство (имя монтируемого раздела). Второе поле - точка монтирования. Третье поле - тип файловой системы (например, ext2 для системы типа ext2fs или minix для Minix filesystems). Таблица 4.1 перечисляет различные типы файловых систем, доступных в Linux.

Эта таблица для ядра версии 1.1.37.

Файловая система Имя типа Комментарий Second Extended Filesystem ext2 Наиболее распространенная для Linux Extended Filesystem ext Вытеснена системой ext2 Minix Filesystem minix Файловая система Minix; редко используется Xia Filesystem xia Похожа на ext2; редко используется UMSDOS Filesystem umsdos Для инсталляции Linux на разделы MS-DOS MS-DOS Filesystem msdos Для доступа к файлам MS-DOS /proc Filesystem proc Дает информацию о процессах для ps и т.п. ISO 9660 Filesystem iso9660 Используется большинством CD-ROM Xenix Filesystem xenix Для доступа к файлам из Xenix. System V Filesystem sysv Для доступа к файлам из System V вариант для x86. Coherent Filesystem coherent Для доступа из Coherent HPFS Filesystem hpfs Доступ только на чтение для разделов HPFS (DoubleSpace). Таблица 4.1. Типы Файловых систем Linux

Не все эти типы могут быть доступны на вашей системе; ваше ядро должно иметь соответствующую откомпилированную поддержку. О компиляции ядра смотрите в Разделе 4.7.

Последнее поле файла fstab (options) это было перед Таблицей 4.1 содержит опции монтирования, обычно они устанавливаются в ``defaults''.

Вы можете видеть, что разделы своппинга также включены в /etc/fstab. Они имеют каталог монтирования "tt/none/", и тип "swap". Команда swapon -a выполняемая из /etc/rc используется для обеспечения своппинга на все устройства, перечисленные в /etc/fstab.

Файл fstab содержит одну специальную запись для файловой системы /proc. Как говорилось в Разделе 3.11.1, файловая система /proc используется для хранения информации о системных процессах, доступной памяти и т.п. Если /proc не примонтирован, такие команды, как ps не будут работать.

Внимание! Команда mount может использоваться только root. Это для обеспечения безопасности системы. Вам не захочется, чтобы монтирование и размонтирование файловых систем зависело от прихоти рядовых пользователей. Есть несколько программных пакетов, которые дают возможность тем самым рядовым пользователям монтировать и размонтировать файловые системы (особенно на дискетах) не затрагивая безопасности системы.

Команда mount -av фактически монтирует все файловые системы, кроме корневой файловой системы (в ранее приведенной таблице - /dev/hda2). Корневая файловая система автоматически монтируется ядром во время загрузки.

Вместо использования mount -av вы можете примонтировать файловую систему вручную. Команда

# mount -t ext2 /dev/hda3 /usr

эквивалентна монтированию файловой системы на /dev/hda3 в примере fstab, рассмотренном ранее.

Вам никогда не следует монтировать и размонтировать файловые системы вручную. Команда mount -av в /etc/rc позаботится о монтировании файловых систем во время загрузки. Файловые системы автоматически размонтируются командами shutdown или halt перед выключением системы.



Общие принципы инсталляции


Хотя версии Linux отличаются, общие методы инсталляции состоят в следующем:

(Пере)разбейте на разделы жесткий диск(и). Если у вас уже инсталлирована другая операционная система, вы должны сделать переразбиение, чтобы выделить место под Linux. Это обсуждается в Разделе 2.2.4. Загрузите средства инсталляции Linux. Каждый дистрибутив имеет в каком-либо виде средства инсталляции - обычно загрузочную (boot) дискету, которая используется для инсталляции программ. Загрузка этих средств либо представит вам некую пошаговую программу инсталляции, либо позволит инсталлировать вручную. Создайте разделы для Linux. После переразбиения и выделения места под Linux, вы создаете на этом месте раздел Linux. Это выполняется программой Linux fdisk. (см. Раздел 2.3.3). Создайте файловые системы и область своппинга. Вы создадите одну или несколько файловых систем для хранения файлов на вновь созданном разделе. Кроме того, если вы желаете получить область своппинга, то также создадите и его на одном из разделов Linux. (См. Разделы 2.3.4 и 2.3.5). Инсталлируйте программы Linux в новую(вые) файловую(вые) систему(мы). Далее вас ждет спокойное плавание, если все прошло нормально. (См. Раздел 2.3.6). Позже, в Разделе 2.5, мы опишем, что делать, когда что-то не получается.

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

Дистрибутивы Slackware для Linux, описываемые в этой книге, потребуют от вас лишь разбиения диска на разделы с использованием fdisk, а также использования setup для выполнения других шагов.

Важное замечание. При подготовке к инсталляции Linux, лучший совет, который мы можем дать - это делать записи в ходе инсталляции. Записывайте все, что вы вводите с клавиатуры и все, что видите неординарное. Смысл здесь простой: если (или когда!) вы попадете в тупик, вам будет важно проследить в обратном порядке ваши шаги, чтобы обнаружить ошибку. Инсталляция Linux несложна, но надо помнить множество деталей. Вам хорошо бы зафиксировать все эти детали, чтобы вы могли экспериментировать с другими методами, если что-то не будет получаться. Эти записи будут также полезны, если вы обратитесь к другим людям за помощью. Например, напишите в Linux-конференцию USENET. Эти заметки вам однажды захочется показать своим внукам. Автор со смущением признает, что он хранит тетрадку с записью всех своих кувырканий с Linux в первые месяцы работы с системой. Сейчас эта тетрадка притягивает пыль на книжной полке.



Перекачка файлов


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

Различные файлы README, а также SLACKWARE_FAQ. Прочитайте обязательно эти файлы до инсталляции. Образ bootdisk. Это файл, который вы запишите на дискету для создания загрузочного диска Slackware. Если у вас дисковод на 1.44М (3.5"), найдите в каталоге bootdsks.144. Если у вас дисковод 1.2М (5.25"), найдите в каталоге bootdsks.12.

Вам необходим один из следующих файлов bootdisk.

bare.gz. Это загрузчик с дискет, имеющий только драйвер жесткого диска IDE. (Нет SCSI, CD-ROM или сетевой поддержки). Используйте, если у вас только есть контроллер IDE жесткого диска, а инсталляция по сети или с CD-ROM невозможна. cdu31a.gz. Содержит драйверы IDE, SCSI и Sony CDU31A/33A. mitsumi.gz. Содержит драйверы IDE, SCSI и Mitsumi CD-ROM modern.gz. Экспериментальный загрузочный диск с новым ядром и всеми CD-ROM драйверами, кроме сетевых и Sony 535. net.gz. Содержит CD-ROM драйвер IDE и сетевые. sbpcd.gz. Содержит CD-ROM драйверы IDE, SCSI и SoundBlaster Pro/Panasonic. scsi.gz. Содержит CD-ROM драйверы IDE, SCSI и SCSI scsinet.gz. Содержит CD-ROM и сетевые драйверы IDE, SCSI, SCSI. sony535.gz. Содержит CD-ROM драйверы IDE, SCSI и Sony 535/531 xt.gz. Содержит CD-ROM драйверы IDE и жесткого диска XT.

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

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

Образ root-диска. Это файл, который вы запишите на дискету для создания инсталляционного диска Slackware. В связи с этим образом посмотрите rootdsks.144 или rootdsks.12 в зависимости от типа дисковода, с которого производите загрузку.

Вам необходим один из следующих файлов:

color144.gz. Инсталляционный диск для дисковода 1.44, использующий меню. Большинству пользователей следует использовать именно его. umsds144.gz. Версия диска color144 для инсталляции с помощью файловой системы UMSDOS, которая позволяет инсталлировать Linux поверх каталога файловой системы MS-DOS. Этот метод инсталляции обсуждается здесь детально, но он не позволяет переразбивать диск на новые разделы. Позже мы к этому вернемся. tty144.gz. Инсталляционный диск, ориентированный на терминал, для дисковода 1.44M. Если color144.gz у вас не идет, попробуйте вместо него tty144.gz. colrlite.gz. Инсталляционный диск, ориентированный на терминал, для дисковода 1.2M. umsds12.gz. Версия диска colrlite для инсталляции с помощью файловой системы UMSDOS. Смотрите вышеприведенное описание umsds144.gz. tty12.gz Инсталляционный диск, ориентированный на терминал, для дисковода 1.2M. Используйте этот диск, если у вас есть дисковод на 1.2M и colrlite.gz у вас не идет.

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

GZIP.EXE. Это MS-DOS программа, выполняющая компрессию gzip, используемая для сжатия файлов boot и root (расширение имен файлов ".gz" говорит об этом). Она может быть найдена в каталоге install. RAWRITE.EXE. Это MS-DOS программа, которая записывает содержимое файла (например, образов boot и root) прямо на дискету, не проверяя формат. Вам следует использовать RAWRITE.EXE для создания дискет boot и root. Это можно также найти в инсталляционном каталоге.

Если вы планируете создать дискеты boot и root из MS-DOS, вам понадобятся только RAWRITE.EXE и GZIP.EXE. Если же вам доступна UNIX-станция с дисководом, вы можете создать дискеты в ней, используя команду dd. Посмотрите руководство по команде dd или посоветуйтесь со специалистами по UNIX.

Файлы из каталогов slakwarea1/,slakwarea2/ и slakwarea3/. Эти файлы создают набор диска ``A'' дистрибутива Slackware. Они необходимы. Позже вы скопируете эти файлы на дискеты в MS-DOS для инсталляции (или вы можете инсталлировать с жесткого диска). Поэтому, когда вы скачаете эти файлы, сохраните их в отдельном каталоге; не перепутайте файлы a1 с файлами a2 и т.п.

Убедитесь также, что вы получили файлы без точек в именах. В FTP используйте команду ``mget *'' вместо ``mget *.*''.

Файлы в каталогах ap1, ap2 и т.д. зависят от инсталлируемых наборов. Например, если вы инсталлируете диск с набором ``X'', берите файлы из каталогов от x1 до x5. Как и для наборов диска ``A'', убедитесь, что файлы при переписывании размещаются в разных каталогах.

Переменная среды PATH


Когда вы используете команду ls, как shell находит соответствующий выполняемый файл (программу) для ls? На самом деле в большинстве систем ls находится в /bin/ls. shell использует переменную среды PATH ("ТРОПА") для указания возможного местоположения выполняемых файлов соответствующих команд.

Например, ваша переменнаяPATH может иметь значение

/bin:/usr/bin:/usr/local/bin:.

Это список каталогов (в которых shell будет искать команду), отделяемых друг от друга двоеточием ``:''. Когда вы используете команду ls, shell прежде всего проверяет наличие /bin/ls, затем /usr/bin/ls и т.д.

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

/home/larry# cp foo bar

shell не использует PATH для нахождения местопребывания файлов foo и bar - предполагается, что эти имена однозначно определяют место. shell использует PATH только для нахождения команды cp.

Это экономит вам массу времени; это означает, что вы не обязаны помнить, где находятся выполняемые файлы команд. Во многих системах выполняемые файлы разбросаны во многих местах, таких как /usr/bin, /bin или /usr/local/bin. Вместо того, чтобы писать полное имя команды (вроде /usr/bin/cp), вы просто указываете в PATH перечень каталогов, которые бы вы хотели, чтобы shell автоматически просматривал.

Обратите внимание, что PATH содержит ``.'', что означает "текущий рабочий каталог". Это позволяет вам создавать shell-сценарии или программы и выполнять их как команды из текущего каталога, без необходимости указывать это прямо (как в случае ./makebook). Если каталог не указан в PATH, то shell не будет его просматривать в поиске команд, это касается и текущего каталога.



Первая прогулка


Теперь мы можем войти в систему и узнать, как обращаться к файлам и менять местоположение в файловой системе, чтобы упрощать свою жизнь в ней. Команда для перемещения по дереву каталогов - cd, (``change directory''). Вы скоро обратите внимание, что многие часто используемые команды Unix состоят из двух-трех букв. Формат команды cd:

cd <directory> где <directory> - имя каталога, в который вы желаете перейти. Как мы уже говорили, когда вы входите в систему, вы автоматически оказываетесь в своем домашнем каталоге. Если Larry желает двинуться ниже по дереву, он должен использовать команду

/home/larry# cd papers /home/larry/papers#

Как видите, изменилась подсказка, отразив изменение местоположения (новый рабочий каталог). Теперь он в каталоге papers и может посмотреть на свой файл history-final с помощью команды

/home/larry/papers# more history-final

Чтобы вернуться назад из подкаталога papers, надо использовать команду

/home/larry/papers# cd .. /home/larry#

(Обратите внимание на пробел между ``cd'' и ``..''). Каждый каталог содержит имя ``..'' , которое отсылает к родительскому (для данного каталога) каталогу. Также каждый каталог имеет имя ``.'', которое ссылается на него самого. Поэтому команда

/home/larry/papers# cd .

никуда не переведет.

В команде cd вы можете использовать маршруты. Чтобы перейти в домашний каталог Карла, вы можете воспользоваться командой

/home/larry/papers# cd /home/karl /home/karl#

Используя команду cd без аргументов вы из любого места дерева вернетесь в свой домашний каталог.

/home/karl# cd /home/larry#



Почему Linux?


Почему стоит использовать Linux вместо хорошо известных, хорошо оттестированных, хорошо документированных коммерческих операционных систем? Мы можем привести тысячи причин. Одна из наиболее важных - то что Linux - отличный выбор для персональных вычислений в среде UNIX. Если вы разработчик программ в UNIX, зачем дома использовать MS-DOS? Linux позволит вам создавать и тестировать программы для UNIX на вашем персональном компьютере, включая базы данных и приложения для X Window. Если вы студент, то высока вероятность, что университетская компьютерная система работает под UNIX. Linux позволяет вам иметь свой собственный UNIX и перекраивать его по своему вкусу. Инсталляция и использование Linux - также прекрасный путь изучения UNIX, если у вас нет доступа к другим UNIX-машинам.

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

Следующий раздел покажет наиболее важные различия между Linux и другими операционными системами. Мы надеемся, что Linux может удовлетворить все ваши вычислительные потребности или (в крайнем случае) значительно расширит возможности вашей вычислительной среды. Имейте в виду, что лучший способ узнать вкус Linux - это на нем поработать. Вам не обязательно даже инсталлировать полную систему, чтобы почувствовать его. Это мы покажем в Главе 2.



Получение Linux из Internet


Если у вас есть доступ к Internet, простейший способ получить Linux - это по FTP. Если вы не имеете прямого доступа к Internet, вы можете получить Linux через сервис ftpmail по электронной почте. См. приложение C. В приложении C дан список некоторых FTP-серверов с архивами, содержащими Linux. Один из них - sunsite.unc.edu, где различные дистрибутивы могут быть найдены в каталоге

/pub/Linux/distributions

Многие дистрибутивы хранятся в виде образов дискет. То есть дистрибутив состоит из множества файлов, каждый из которых содержит двоичный образ дискеты. Для того, чтобы скопировать содержимое на дискету, вы должны использовать программу RAWRITE.EXE под MS-DOS. Эта программа копирует поблочно содержимое файла на дискету, не анализируя формат диска. Если у вас есть доступ к UNIX-станции с дисководом, вы можете также использовать команду dd для копирования образа файла прямо на дискету. Команда, вроде dd of=/dev/rfd0 if=foo bs=18k'' осуществит прямое копирование содержимого файла foo на дискету на Sun-станции. Проконсультируйтесь у местных спецов по UNIX относительно использования команды dd.

Программу RAWRITE.EXE можно взять на многих Linux FTP-серверах, включая sunsite.unc.edu, в каталоге

/pub/Linux/system/Install/rawrite

Во многих случаях вы просто считываете множество образов дискет и используете RAWRITE.EXE для каждого образа, чтобы создать дискету. Вы загружаетесь с так называемой "boot"-дискеты и можете далее скидывать систему. Как правило, программы инсталлируются прямо с дискет, хотя некоторые дистрибутивы позволяют инсталлировать из разделов MS-DOS винчестера. Некоторые дистрибутивы позволяют инсталлировать по сети, посредством TCP/IP. Документация на каждый дистрибутив должна описывать допустимые методы инсталляции.

Другие дистрибутивы Linux инсталлируются с дискет в формате MS-DOS. Например, дистрибутив Linux Slackware требует создания с помощью RAWRITE.EXE только дискет boot и root. Остальные дискеты копируются на дискеты в формате MS-DOS командой MS-DOS COPY. Система инсталлируется прямо с дискет MS-DOS. Это избавляет вас от необходимости долго пользоваться RAWRITE.EXE, но предполагает доступность MS-DOS для создания дискет.

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

При перекачке Linux необходимо использовать режим перекачки двоичных файлов (для большинства FTP-клиентов это команда "binary").

В Разделе 2.1.4 описывается получение дистрибутива Slackware по Internet.



Получение помощи


vi не слишком силен в интерактивной помощи (да и большинство UNIX-ов также), но вы всегда можете посмотреть страницы Руководства для vi. vi - это "визуальная составляющая" редактора ex; это ex делает многое для поддержания режима последней строки и командного режима в vi. Так что в дополнение к чтению Руководства по vi посмотрите также Руководство по ex.



Проблемы загрузки средств инсталляции


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

Ошибка дискеты или средства инсталляции.

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

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

Система "зависает" во время или сразу после загрузки.

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

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

lp_init: lp1 exists (0), using polling driver появившейся на вашем экране.

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

Linux login: далее вы должны войти (обычно как root или install - в разных версиях дистрибутивов по-разному). После введения имени пользователя система может задуматься секунд на 20 или более, пока программа инсталляции или shell загружается с дискеты. Опять же лампочка дисковода должна гореть. Так что не думайте, что система опять зависла.

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

Причина многих системных зависаний - аппаратная несовместимость. Раздел 1.8 последней главы представляет обзор поддерживаемого ОС Linux оборудования. Даже если ваша аппаратура поддерживается, у вас могут быть проблемы, связанные с несовместимостью конфигурации оборудования, которые тоже могут быть причиной зависания. Смотрите Раздел 2.5.2, где обсуждаются вопросы аппаратной несовместимости.

Системные сообщения об ошибках памяти в процессе инсталляции.

Этот пункт относится к количеству памяти, которая имеется в вашем распоряжении. На системе с 4M RAM или менее у вас могут быть проблемы с самой загрузкой средств инсталляции. Это потому, что многие дистрибутивы используют ``ramdisk'', которая является файловой системой, загружаемой прямо в RAM во время операций, использующих средства инсталляции. Полный образ инсталляционной дискеты, например, может быть загружен на ramdisk, что может потребовать более мегабайта памяти.

Решение этой проблемы - подготовить опцию ramdisk при загрузке средств инсталляции. Каждая версия имеет процедуры реализации этого; в версии SLS, например, вы печатаете ``floppy'', когда появится подсказка LILO при загрузке диска "a1". Детали посмотрите в документации на дистрибутив.

Вы можете не увидеть сообщение ``out of memory'' при попытке загрузиться или инсталлировать программы; вместо этого система может неожиданно зависнуть или сорвать загрузку. Если система зависла и никакие предыдущие объяснения не помогают, попытайтесь отключить (disable) ramdisk.

Имейте в виду, что Linux сам по себе требует не менее 2 M RAM для минимального функционирования; некоторые версии требуют наличия 4M и даже более.

Система сообщает об ошибках, таких как ``permission denied'' (обращение запрещено) или ``file not found''(файл не найден) в процессе загрузки.

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

Система при загрузке выдает сообщение ``VFS: Unable to mount root''.

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

Например, многие дистрибутивы на CD-ROM требуют, чтобы при загрузке лазерный диск находился в дисководе. Убедитесь также, что дисковод CD-ROM включен и что-то делает. Подробнее смотрите в Разделе 2.5.2.

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



Регистрация root


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

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

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

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

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

Разумеется, все совершают ошибки. Однажды сам Linus Torvalds (создатель linux) случайно удалил все поддерево каталогов, содержавшее программы ядра. Многие часы работы пропали (бы) в один миг навсегда. К счастью, однако, благодаря своему знанию кодов файловой системы, он смог перезагрузить систему и реконструировать дерево каталогов вручную.

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



Регистрация в системе (открытие счета)


Прежде, чем вы сможете использовать систему, вы должны зарегистрировать себя в системе. Это необходимо потому, что неразумно использовать имя суперпользователя (root) для обычных нужд. Пользователь root нужен для выполнения привилегированных команд и сопровождения системы, как это описывается в Разделе 4.1.

Для того, чтобы зарегистрировать себя, вам необходимо зайти в систему под именем root и использовать команду useradd или adduser. Об этой процедуре смотрите подробней в Разделе 4.4.



Создание boot и root дискет


Создавая дискеты boot и root, вы должны их создавать с образов boot-диска и root-диска, которые вы скачали (или имеете на CD-ROM), вне зависимости от вида инсталляции. В MS-DOS вы должны раскомпрессировать образы boot-диска и root-диска, используя GZIP.EXE. Например, если вы используете образ диска boot - bare.gz, наберите команду MS-DOS:

C:\> GZIP -D BARE.GZ

которая раскомпрессирует bare.gz и создаст вам файл bare. Если вы инсталлируете с CD-ROM, вы можете скопировать образ диска bootdisk (например, bare.gz) на жесткий диск и выполнить GZIP.EXE с CD-ROM для раскомпрессирования.

Вы должны также раскомпрессировать образ диска root. Например, если вы используете root-диск color144.gz, наберите команду:

C:\> GZIP -D COLOR144.GZ

которая раскомпрессирует этот файл и создаст файл color144.

Далее, вы должны иметь две high-density дискеты, отформатированные в MS-DOS. (Они должны быть одного типа; если ваша boot-дискета 3.5", обе дискеты должны быть high-density 3.5"). Для записи образов дисков boot и root на дискеты надо использовать RAWRITE.EXE .

Наберите команду:

C:\> RAWRITE

Ответьте на вопросы о имени переписываемого файла (например, bare или color144) и дисковода (например A:). RAWRITE скопирует файл блок за блоком прямо на дискету. Используйте RAWRITE также для образа root-диска. Когда вы это сделаете, у вас будут две дискеты: одна содержит boot-диск, другая root-диск. Имейте в виду, что эти две дискеты уже нечитаемы в MS-DOS (они уже, в известном смысле, в ``Linux-формате'').

Убедитесь, что вы используете хорошие несбойные дискеты. На дискетах не должно быть bad-блоков.

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

Нет также необходимости использовать GZIP.EXE и RAWRITE.EXE под MS-DOS для создания дискет boot и root. Вы можете использовать команды gzip и dd в UNIX для выполнения той же работы. (Для этого, разумеется, вам нужна UNIX-станция с дисководом). Например, на станции Sun с дисководом /dev/rfd0 вы можете использовать команды:

$ gunzip bare.gz $ dd if=bare of=/dev/rfd0 obs=18k

Вы должны указать соответствующий размер блока (obs), иначе

на некоторых станциях (на тех же Sun) эта команда не будет выполнена. Если у вас возникнут проблемы - читайте руководство по команде dd.



Стандартный вход и стандартный выход


Многие команды UNIX получают информацию с так называемого стандартного входа и посылают информацию на (опять же) так называемый стандартный выход. (Для них часто используются сокращения ``stdin'' и ``stdout'' соответственно). Ваш shell организует дело так, что стандартным входом служит клавиатура, а стандартным выходом - экран.

Вот пример использования команды cat. Нормально cat читает данные из файлов, чьи имена даны в командной строке и посылает эти данные прямехонько на stdout. Поэтому при выполнении команды

/home/larry/papers# cat history-final masters-thesis

на экран пойдет файл history-final, а за ним следом masters-thesis.

Но если команде cat не даны имена файлов в качестве параметров, она читает данные с stdin и опять же посылает на stdout. Вот пример.

/home/larry/papers# cat Hello there. Hello there. Bye. Bye. [ctrl-D] /home/larry/papers#

Как видите, каждая строка, которую напечатал пользователь, немедленно выдается командой cat на экран. При вводе со стандартного входа команда знает, что ввод закончен тогда, когда она получит в каком-то виде сигнал EOT (End-Of-Text). Обычно он обеспечивается нажатием ctrl-D.

Вот другой пример. Команда сортировки sort читает построчно текст (здесь опять с stdin, поскольку имена файлов в параметрах не указаны, и посылает отсортированный результат на stdout. Попробуйте так.

/home/larry/papers# sort bananas carrots apples [ctrl-D] apples bananas carrots /home/larry/papers#

Теперь мы можем упорядочить наш список продуктов, подлежащих закупке, в лексикографическом порядке... ну разве UNIX не полезная вещь?



The GNU General Public License


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

Printed below is the GNU General Public License (the GPL or copyleft), under which Linux is licensed. It is reproduced here to clear up some of the confusion about Linux's copyright status---Linux is not shareware, and it is not in the public domain. The bulk of the Linux kernel is Copyright (c) 1993 by Linus Torvalds, and other software and parts of the kernel are copyrighted by their authors. Thus, Linux is copyrighted, however, you may redistribute it under the terms of the GPL printed below.


GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

Copyright (c) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.



Требования к аппаратуре


XFree86 версии 3.1, вышедшая в сентябре 1994, года поддерживает следующие микросхемы видеоадаптеров. (Прежде чем устанавливать XFree86 вам надо выяснить тип микросхемы вашего видеоадаптера.)

Документация, поставляемая вместе с видеоадаптером, как правило указывает тип используемых микросхем. Если вы приобрели новую видеокарту или новый компьютер, попросите поставщика уточнить изготовителя, модель и тип микросхем видеокарты. Как правило поставщики охотно дадут вам эту информацию. Большинство из них сообщит, что видеокарта является стандартной SVGA картой и будет работать в вашей операционной системе. Объясните им, что ваше программное обеспечение (Linux и XFree86) не поддерживает всех видеокарт и вам требуется дополнительная информация.

Вы можете также определить тип микросхемы, вызвав команду SuperProbe, входящую в состав XFree86. Это будет описано ниже.

XFree86 версии 3.1, вышедшая в сентябре 1994 года поддерживает следующие типы микросхем: Tseng ET3000, ET4000AX, ET4000/W32 Western Digital/Paradise PVGA1 Western Digital WD90C00, WD90C10, WD90C11,WD90C24,WD90C30, WD90C31, WD90C33 Genoa GVGA Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i, TVGA9100B, TVGA9200CX, TVGA9320, TVGA9400CX, TVGA9420 ATI 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3, 68800-6, 68800AX, 68800LX, 88800 NCR 77C22, 77C22E, 77C22E+ Cirrus Logic CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225, CLGD6235, CLGD6420 Compaq AVGA OAK OTI067, OTI077 Avance Logic AL2101 MX MX68000, MX680010 Video 7/Headland Technologies HT216-32

Поддерживаются также следующие адаптеры с графическими ускорителями: 8514/A (and true clones) ATI Mach8, Mach32 Cirrus CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428, CLGD5429, CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225, CLGD6235 S3 86C911, 86C924, 86C801, 86C805, 86C805i, 86C928, 86C864, 86C964 Western Digital WD90C31, WD90C33 Weitek P9000 IIT AGX-014, AGX-015, AGX-016 Tseng ET4000/W32, ET4000/W32i, ET4000/W32p

Видеокарты с этими микросхемами поддерживаются для всех системных шин, включая VLB и PCI.

Все вышеперечисленные карты поддерживаются как в режиме 256 цветов, так и в монохромном режиме, за исключением Avance Logic, MX and Video 7 микросхем, которые поддерживаются только в режиме 256 цветов. Если на вашей видеокарте установлено достаточно видеопамяти, многие из микросхем поддерживаются в режиме 16 и 32 бита на точку (65 тысяч и 4 млн цветов) (некоторые из Msch32, P9000, S3 и Cirrus видеокарт). Обычно видеокарты используются в режиме 8 бит на точку (256 цветов).

Монохромный сервер поддерживает основные карты VGA, монохромные карты Hercules, Hyundai HGC1280, Sigma LaserView иу Apoll. На карте Compaq AVGA в монохромном режиме поддерживается только 64Кб видеопамяти и работа карты GVGA с памятью более 64Кб не проверена в настоящее время.

Этот список несомненно расширится со временем. Полный список поддерживаемых карт вы найдете в замечаниях к текущей версии XFree86.

Одной из проблем, с которой столкнулись разработчики, являлся нестандартный механизм определения частоты, используемый для управления картой. Некоторые производители либо не описывали способ программирования карты, либо требовали подписания дополнительного соглашения о нераспространении полученной информации. Это очевидно ограничило бы свободное распространение XFree86, чего естественно не могли допустить разработчики. Долгое время данная проблема была с видеокартами, производимыми фирмой Diamond, но начиная с версии 3.1 XFree86, Diamond начала сотрудничество с разработчиками с целью выпуска драйвера для этой карты.

Предполагаемая конфигурация компьютера для установки XFree86 под Linux включает в себя как минимум 8 мегабайт оперативной памяти и видеокарту с одной из вышеперечисленных микросхем. Для оптимальной работы мы советуем использовать видеокарту с графическим ускорителем, например S3.

Перед покупкой дорогостоящей видеокарты вам следует просмотреть документацию по XFree и убедиться, что выбранная вами карта поддерживается. Сравнительные тесты Benchmark для различных видеокарт под XFree86 периодически выставляются в конференции comp.windows.x.i386unix и comp.os.linux.misc.

Замечу, что мой персональный компьютер с Linux содержит 486DX2-66, 20 мегабайт RAM, и имеет VLB S3-864 видеоадаптер с 2 мегабайтами оперативной памяти. Я протестировал X benchmarks на этой машине и на рабочей станции Sun Sparc IPX. Linux где-то раз в 7 быстрее, чем Sparc IPX (для любопытных, XFree86-3.1 под Linux обеспечил скорость 171,000 xstones; Sparc IPX - около 24000). Обычно, XFree86 под Linux с графическим ускорителем показывает существенно большую производительность чем коммерческие рабочие станции (которые обычно используют неэффективные алгоритмы обработки графической информации).

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



Вы можете использовать в Linux TCP/IP без какого-то дополнительного оборудования режим ``loopback'', позволяющий разговаривать с самим собой. Это необходимо для ряда приложений и игр, использующих механизм ``loopback''.
Но если вы хотите использовать Linux с сетевой работой через Ethernet по TCP/IP , вы должны иметь одну из следующих карт Ethernet: 3com 3c503, 3c503/16; Novell NE1000, NE2000; Western Digital WD8003, WD8013; Hewlett Packard HP27245, HP27247, HP27250.
Имеется информация, что и следующие клоны работают: WD-80x3 clones: LANNET LEC-45; NE2000 clones: Alta Combo, Artisoft LANtastic AE-2, Asante Etherpak 2001/2003, D-Link Ethernet II, LTC E-NET/16 P/N 8300-200-002, Network Solutions HE-203, SVEC 4 Dimension Ethernet, 4-Dimension FD0490 EtherBoard 16, and D-Link DE-600, SMC Elite 16.
Дополнительную информацию по совместимости аппаратуры Ethernet в Linux можно найти в "Linux Ethernet HOWTO".
Linux также поддерживает SLIP, который позволяет использовать модем для выхода в Internet по телефонной линии. В этом случае вам нужен модем, совместимый с вашим SLIP-сервером - большинство серверов требует модемы на 14.4bps, V.32bis. (прим. переводчика: прогресс в модемах быстрее, чем в компьютерах, поэтому данные стареют еще быстрее; сейчас чаще можно услышать про 28.8bps и V.34, что тоже быстро устаревает).

Требования к материнской плате и процессору


В настоящее время Linux поддерживает системы на Intel 80386, 80486 или Pentium CPU. Это включает все вариации этих процессоров, такие как 386SX, 486SX, 486DX и 486DX2. С Linux могут работать также "неинтеловские" клоны процессоров, вроде AMD и Cyrix.

Если у вас 80386 или 80486SX, вы можете также иметь сопроцессор, хотя это и не обязательно, (ядро Linux может эмулировать FPU). Поддерживаются все стандартные сочетания FPU, такие сопроцессоры как IIT, Cyrix FasMath и Intel.

Материнская плата должна использовать шину ISA или EISA. Это определяет, как система взаимодействует с периферией и другими компонентами главной шины. Большинство продаваемых сегодня систем имеют ISA или EISA. Шина MicroChannel (MCA) фирмы IBM, используемая на машинах типа IBM PS/2, пока не поддерживается.

Поддерживаются системы с локальными шинами, ускоряющими доступ к видео и дискам. Предполагается, что у вас стандартная локальная шина, вроде VESA Local Bus (VLB).



Введение в LINUX


1.1 Об этой книге 1.2 Краткая история Linux 1.3 Системные характеристики 1.4 Программные характеристики 1.4.1 Базовые команды и утилиты 1.4.2 Обработка текстов и слов 1.4.3 Языки программирования и утилиты 1.4.4 Система X Window 1.4.5 Работа в сети 1.4.6 Телекоммуникации и BBS 1.4.7 Интерфейс с MS-DOS 1.4.8 Другие приложения 1.5 Относительно Copyright для Linux 1.6 Проектирование и философия Linux 1.6.1 Замечания для новичков в UNIX 1.6.2 Замечания для UNIX-гуру 1.7 Различия между Linux и другими операционными системами 1.7.1 Почему Linux? 1.7.2 Linux против MS-DOS 1.7.3 Linux против прочих 1.7.4 Другие реализации UNIX 1.8 Требования к оборудованию 1.8.1 Требования к материнской плате и процессору 1.8.2 Требования к памяти 1.8.3 Требования к драйверам жесткого диска 1.8.4 Требования к дисковому пространству 1.8.5 Требования к монитору и видеоадаптеру 1.8.6 Прочее оборудование 1.8.6.1 Мышь и другие устройства, подключаемые к портам 1.8.6.2 Память на CD-ROM 1.8.6.3 Драйверы стриммеров 1.8.6.4 Принтеры 1.8.6.5 Модемы 1.8.6.6 Карты Ethernet 1.9 Источники информации по Linux 1.9.1 Документация, доступная по он-лайн 1.9.2 Linux И WWW (World Wide Web) 1.9.3 Книги и другие публикации 1.9.4 Новости USENET 1.9.5 Списки рассылки Internet 1.10 Получение помощи

1.1 Об этой книге 1.2 Краткая история Linux 1.3 Системные характеристики 1.4 Программные характеристики 1.4.1 Базовые команды и утилиты 1.4.2 Обработка текстов и слов 1.4.3 Языки программирования и утилиты 1.4.4 Система X Window 1.4.5 Работа в сети 1.4.6 Телекоммуникации и BBS 1.4.7 Интерфейс с MS-DOS 1.4.8 Другие приложения 1.5 Относительно Copyright для Linux 1.6 Проектирование и философия Linux 1.6.1 Замечания для новичков в UNIX 1.6.2 Замечания для UNIX-гуру 1.7 Различия между Linux и другими операционными системами 1.7.1 Почему Linux? 1.7.2 Linux против MS-DOS 1.7.3 Linux против прочих 1.7.4 Другие реализации UNIX 1.8 Требования к оборудованию 1.8.1 Требования к материнской плате и процессору 1.8.2 Требования к памяти 1.8.3 Требования к драйверам жесткого диска 1.8.4 Требования к дисковому пространству 1.8.5 Требования к монитору и видеоадаптеру 1.8.6 Прочее оборудование 1.8.6.1 Мышь и другие устройства, подключаемые к портам 1.8.6.2 Память на CD-ROM 1.8.6.3 Драйверы стриммеров 1.8.6.4 Принтеры 1.8.6.5 Модемы 1.8.6.6 Карты Ethernet 1.9 Источники информации по Linux 1.9.1 Документация, доступная по он-лайн 1.9.2 Linux И WWW (World Wide Web) 1.9.3 Книги и другие публикации 1.9.4 Новости USENET 1.9.5 Списки рассылки Internet 1.10 Получение помощи

Загрузка Linux


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

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

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

Большинство дистрибутивов Linux используют загрузочную дискету, которая позволяет ввести параметры компьютера при загрузке, для определения особенностей устройств. Например, если ваш SCSI-контроллер не распознается при загрузке дискеты, вы должны перезагрузиться и описать параметры аппаратуры (например, I/O-адрес и IRQ).

Похоже, что компьютеры IBM PS/1, ThinkPad и ValuePoint не сохраняют геометрию диска в CMOS и вы должны ее описывать во время загрузки.

Подсказка boot часто выдается автоматически, когда загружается загрузочная дискета. Так, например, происходит при загрузке в дистрибутиве Slackware. Некоторые дистрибутивы потребуют от вас удерживать во время загрузки с дискеты shift или ctrl. В случае успеха вы должны увидеть подсказку:

boot:

и, возможно, другие сообщения.

Можно попробовать загрузиться без каких-либо специальных параметров, просто нажать enter в ответ на подсказку boot.

Следите за сообщениями во время загрузки. Если у вас SCSI контроллер, вы увидите список распознаваемых устройств (hosts). Если вы увидите сообщение

SCSI: 0 hosts

это значит, что ваш SCSI контроллер не был опознан, и вам следует использовать другую процедуру.

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

С другой стороны, если все идет хорошо и оборудование, вроде бы, распознается, вы можете перейти к следующему разделу, к Разделу 2.3.2.

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

ramdisk <parameters...>

Существует ряд доступных параметров: вот некоторые наиболее характерные.

hd=<cylinders>,<heads>,<sectors>

Описывает геометрию для таких систем, как IBM PS/1, ValuePoint и ThinkPad. Например, если у вашего диска 683 цилиндров, 16 головок и 32 сектора на трек, введите per track, enter

ramdisk hd=683,16,32

tmc8xx=<memaddr>,<irq>

Описывает адрес и IRQ для без-BIOS-ных Future Domain TMC-8xx SCSI контроллеров. Например,

ramdisk tmc8xx=0xca000,5

Обратите внимание, что префикс "0x" должен использоваться для всех значений, данных в шестнадцатиричной системе. Это справедливо для всех последующих опций.

st0x=<memaddr>,<irq>

Описывает адрес и IRQ для без-BIOS-ных Seagate ST02 контроллеров.

t128=<memaddr>,<irq>

Описывает адрес и IRQ для без-BIOS-ных Trantor T128B контроллеров.

ncr5380=<port>,<irq>,<dma> Описывает порт, IRQ и DMA канал для generic NCR5380 контроллера.

aha152x=<port>,<irq>,<scsi_id>,1

Описывает порт, IRQ и SCSI ID для без-BIOS-ных AIC-6260 контроллеров. Включает Adaptec 1510, 152x и Soundblaster-SCSI контроллеры.

Для каждого из них вы должны ввести ramdisk с параметрами, которые вы хотите установить.

Если у вас есть вопросы относительно опций периода загрузки, посмотрите Linux SCSI HOWTO, который можно найти на любом Linux FTP-сервере (или там, где вы раздобыли эту книгу), а также Linux CD-ROM HOWTO. Эти документы описывают возможности аппаратуры более детально.



Замечания для новичков в UNIX


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

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

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



Аппаратные проблемы


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

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



Дисководы и разделы под Linux


Многие дистрибутивы предполагают ручное создание разделов Linux с использованием программы fdisk. Другие могут автоматически создавать разделы. В любом случае вы должны знать о существовании разделов и имен дисководов. Дисководы и разделы под Linux имеют другие имена, по сравнению с другими операционными системами. Под MS-DOS дисководы гибких дисков именуются A: и B:, в то время, как разделы жесткого диска именуются C:, D:, и т.д. В Linux соглашение о именах совсем другое.

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

Например, если у вас есть мышь, вы имеете к ней доступ через драйвер /dev/mouse. Дисководы гибких дисков, жестких дисков и отдельные разделы имеют индивидуальные драйверы. Пока можете не беспокоиться относительно интерфейса; пока важно только понять, как именуются различные устройства при их использовании.

Таблица 2.1 содержит имена различных драйверов.

Несколько замечаний по поводу этой таблицы. Обратите внимание, что /dev/fd0 соответствует первому дисководу (A: для MS-DOS) и /dev/fd1 соответствует второму дисководу (B:).

SCSI-драйверы жестких дисков названы иначе, чем другие драйверы. Драйверы IDE, MFM и RLL доступны через устройства /dev/hda, /dev/hdb и т.д. Индивидуальные разделы на дисководе /dev/hda будут /dev/hda1, /dev/hda2 и т.д. А SCSI-драйверы именуются /dev/sda, /dev/sdb, и т.д., с разделами, именуемыми /dev/sda1 и /dev/sda2.

Вот например. Предположим, что у вас один IDE-дисковод с тремя первичными разделами. Два первых выделены под MS-DOS, а третий раздел - расширенный, содержащий два логических раздела под Linux. Устройства, соответствующие этим разделам, будут:

Первый раздел MS-DOS (C:) /dev/hda1 Второй раздел MS-DOS (D:) /dev/hda2 Расширенный раздел /dev/hda3 Первый логический раздел Linux /dev/hda5 Второй логический раздел Linux /dev/hda6

Обратите внимание, что пропущен /dev/hda4, он соответствует четвертому первичному разделу, которого нет в этом примере. Логические разделы именуются, начиная с /dev/hda5.

Устройство Имя Первый дисковод (A:) /dev/fd0 Второй дисковод (B:) /dev/fd1 Первый жесткий диск (весь) /dev/hda Первый жесткий диск, первичный раздел 1 /dev/hda1 Первый жесткий диск, первичный раздел 2 /dev/hda2 Первый жесткий диск, первичный раздел 3 /dev/hda3 Первый жесткий диск, первичный раздел 4 /dev/hda4 Первый жесткий диск, логический раздел 1 /dev/hda5 Первый жесткий диск, логический раздел 2 /dev/hda6 .. Второй жесткий диск (весь) /dev/hdb Второй жесткий диск, первичный раздел 1 /dev/hdb1 .. Первый SCSI драйвер диска (весь) /dev/sda Первый SCSI драйвер диска, первичный раздел 1 /dev/sda1 .. Второй SCSI драйвер диска (весь) /dev/sdb Второй SCSI драйвер диска, первичный раздел 1 /dev/sdb1 .. Табл. 2.1: Имена разделов Linux



Добавление пользователей


При добавлении пользователя следует совершить несколько шагов. Первое, пользователь должен быть занесен в файл паролей /etc/passwd под уникальным именем и идентификатором. Должны быть описаны идентификатор группы (GID), полное имя и другая информация.

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

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



Gzip и compress


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

Команда

# gzip -9 backup.tar

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

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

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

Обработанные командой compress файлы заканчивались расширением .Z. Например, backup.tar.Z - это компрессированная версия файла backup.tar, а backup.tar.gz - зазипованная версия. (Чтобы еще надежнее запутать дело, для обозначения зазипованных файлов некоторое время использовалось расширение .z (маленькая ``z''). В настоящее время (прим. переводчика: это для современников автора) официальное расширение - .gz.

Команда uncompress используется для развертывания файла, который был обработан командой compress. Но команда gunzip тоже знает, как обращаться с такими файлами.



Интерпретация прав доступа


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

/home/larry/foo# ls -l stuff -rw-r--r-- 1 larry users 505 Mar 13 19:05 stuff /home/larry/foo#

Первое поле в выведенной строке представляет права доступа. Третье поле - владельца файла (larry) и четвертое - группу (users). Очевидно, что последнее поле есть имя файла (stuff), а остальные поля мы обсудим позже.

Этим файлом владеет larry, и он принадлежит группе users. Давайте посмотрим на права доступа. В строке -rw-r--r-- по порядку указаны права владельца, группы и всех прочих.

Первый символ этой строки прав доступа (``-'') представляет тип файла. Символ ``-'' означает, что это обычный файл (в противоположность каталогу или специальному файлу какого-то устройства). Следующие три позиции (``rw-'') представляют права доступа, которые имеет владелец файла larry. Символ ``r''означает ``read''(читать), ``w'' - ``write''(писать). Таким образом larry может читать файл stuff и писать в него.

Как мы уже упоминали, кроме разрешений на чтение и запись существует разрешение на выполнение ``execute'' - представляемое символом ``x''. Но в данном случае на этой позиции ``-'', так что у Larry нет прав на выполнение этого файла. И это чудесно, файл stuff совсем даже не является программой. Разумеется, поскольку Larry владеет файлом, он может дать сам себе разрешение на выполнение этого файла, если захочет. Мы эту процедуру скоро обсудим.

Следующие три символа r-- представляют права доступа группы для этого файла. Эта группа имеет имя users. Поскольку тут есть только ``r'', любой пользователь этой группы может только читать файл.

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

Вот еще несколько примеров на права доступа.

-rwxr-xr-x

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

-rw-------

Владелец файла может читать и писать в файл. Всем остальным доступ к файлу закрыт.

-rwxrwxrwx

Все могут читать писать и выполнять файл.



Использование LILO


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

LILO может быть также использована, как начальный загрузчик для нескольких операционных систем, позволяя вам выбирать во время загрузки, какую операционную систему (например, Linux или MS-DOS) загружать. Когда вы загружаетесь с использованием LILO, то загружается операционная система, установленная по умолчанию, если вы не нажмете ctrl, alt или shift во время выполнения загрузочной последовательности. Если вы нажмете любой из этих ключей, то вам будет выдана подсказка загрузчика, в ответ на которую вы напечатаете имя операционной системы, которую надо загрузить (например, ``linux'' или ``msdos''). Если вы нажмете tab в ответ на подсказку загрузчика, вам будет выдан перечень доступных операционных систем.

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

# /sbin/lilo

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

# Tell LILO to modify the boot record on /dev/hda (the first # non-SCSI hard drive). If you boot from a drive other than /dev/hda, # change the following line. boot = /dev/hda # Name of the boot loader. No reason to modify this # un less you're doing some serious hacking on LILO. install = /boot/boot.b # Have LILO perform some optimization. compact # Stanza for Linux root partition on /dev/hda1. image = /etc/Image # Location of kernel label = linux # Name of OS (for the LILO boot menu) root = /dev/hda1 # Location of root partition vga = ask # Tell kernel to ask for SVGA modes at boot time # Stanza for MSDOS partition on /dev/hda2. other = /dev/hda2 # Location of partition table = /dev/hda # Location of partition table for /dev/hda2 label = msdos # Name of OS (for boot menu)

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

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

Имейте также в виду, что если вы используете здесь строку ``root ='', нет смысла использовать rdev для установки корневого раздела в образе ядра. LILO установит ее во время загрузки.

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



Использование редактора vi


Текстовый редактор, это программа, используемая для редактирования файлов, которые содержат текст, например письма, С-программы или системные конфигурационные файлы. Хотя в Linux много всяких разных редакторов, единственный редактор, который вы с гарантией найдете в любом UNIX - это vi (``visual editor''). vi - это не самый простой в использовании редактор. Но поскольку он так распространен в мире UNIX и в любой момент может вам потребоваться, он заслуживает хоть какого-то описания здесь.

Выбор редактора, это дело персонального вкуса и стиля. Многие пользователи предпочитают витиеватый и мощный Emacs - редактор с самым большим набором возможностей, по сравнению со всеми другими редакторами в мире UNIX. Например, Emacs имеет свой собственный встроенный диалект языка программирования LISP и множество расширений (одно из которых ``Eliza''- в некотором роде программа искусственного интеллекта). Однако, поскольку Emacs со всеми поддерживающими его файлами сравнительно велик, его нет на многих системах. vi, наоборот, маленький и удаленький, но, увы, более сложный в использовании. Но когда вы с ним освоитесь, вы поймете, что он очень простой. Правда осваивать его сложно.

Этот раздел - вразумительное введение в vi. Мы не будем обсуждать все его свойства, а только те, которые вы должны знать, чтобы начать работать. Если вы пожелаете знать больше деталей, обратитесь к страницам Руководства.



Концепция разбиения на разделы


В общем случае жесткие диски разбиваются на разделы, где отдельные разделы выделяются отдельным операционным системам. Например, вы можете сделать на диске несколько независимых разделов: один, скажем, для MS-DOS, другой для OS/2 и третий для Linux.

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

Многие системы MS-DOS используют один раздел, заполняя все дисковое пространство. В MS-DOS этот раздел известен, как C:. Если у вас более одного раздела, MS-DOS дает им имена D:, E: и т.д. Каждый раздел выступает как независимый диск.

На первом секторе диска находится master boot record с таблицей разделов. boot record (загрузочная запись) используется для загрузки системы. Таблица разделов содержит информацию о местоположении и размере разделов.

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

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



Linux И WWW (World Wide Web)


Начальная страница (Home Page) Документации на Linux доступна на WWW по адресу

http://sunsite.unc.edu/mdw/linux.html

Эта страница содержит много HOWTO и других документов в формате HTML, а также ссылки на другие сервера, интересные для пользователей Linux.



Linux против MSDOS


Не является чем-то экзотическим одновременно держать на компьютере Linux и MS-DOS. Многие пользователи Linux работают с прикладными пакетами MS-DOS, вроде различных редакторов.

Хотя Linux имеет собственные аналоги для таких приложений (например, TeX), существуют разнообразные причины, по которым конкретный человек будет использовать MS-DOS наряду с Linux. Если вся ваша диссертация написана с использованием WordPerfect в MS-DOS, возможно вы не сможете конвертировать его в TeX или какой-то другой формат. Существует много коммерческих приложений для MS-DOS, которых нет в Linux, поэтому, если есть смысл, почему не использовать обе операционные системы.

Как вы, очевидно, знаете, MS-DOS не использует полностью функциональные возможности 80386 и 80486 процессоров. С другой стороны, Linux полностью работает в защищенном режиме процессора и реализует все возможности процессора. Вы можете иметь прямой доступ ко всей имеющейся в распоряжении памяти (и сверх того - используя виртуальную RAM). Linux обеспечивает полный UNIX-интерфейс, отсутствующий в MS-DOS. На Linux вы можете просто писать и отлаживать прикладные программы для UNIX, в то время, как это несложно делать под MS-DOS.

Мы можем обсуждать плюсы и минусы MS-DOS и Linux бесконечно. Между тем, давайте заметим, что Linux и MS-DOS абсолютно разные системы. MS-DOS - это дешевая ОС (в сравнении с другими операционными системами), и имеет широкую поддержку в мире персональных компьютеров. Ни одна другая ОС для персональных компьютеров не может сравниться с ней по популярности, прежде всего из-за стоимости. Мало кто из владельцев персональных компьютеров может даже представить, что однажды он потратит $1000 или более только на одну операционную систему. Linux же, кстати, вообще бесплатен, так что у вас есть повод подумать.

Вы можете сами составить свое впечатление от сравнения Linux и MS-DOS, основываясь на том, насколько они отвечают вашим ожиданиям. Linux - это не для всякого. Если вам всегда хотелось иметь полномасштабный UNIX дома, не совершая больших затрат, Linux может быть как раз то, что вам надо.

Существует инструментарий, позволяющий взаимодействовать Linux и MS-DOS. Например, просто получить доступ к файлам MS-DOS из Linux. Есть также эмулятор MS-DOS, позволяющий выполнять многие популярные прикладные пакеты MS-DOS. Эмулятор Microsoft Windows находится на этапе создания.



Модернизация библиотек


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

Если вы увидите сообщение

Incompatible library version (Несовместимая версия библиотеки)

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

Самая последняя версия библиотек может быть найдена FTP-серверах Linux. На sunsite.unc.edu они расположены в /pub/Linux/GCC. Файлы "версии" (``release'') должны описывать, какие файлы вам необходимо скачать, и как их инсталлировать. Кратко, вы должны иметь файлы image-version.tar.gz и inc-version.tar.gz, где версия указывает версию инсталлируемых библиотек, например 4.4.1. (прим. переводчика: На момент перевода книги последняя версия была 5.3.9.) Это зазипованные tar-файлы. Файлы образов содержат образы инсталлируемых библиотек в /lib and /usr/lib. Файл inc содержит include-файлы для инсталляции в /usr/include.

Файл release-version.tar.gz об'ясняет инсталляционную процедуру в деталях (конкретные инструкции для конкретных версий отличаются). В общем случае вы должны инсталлировать библиотечные .a и .sa файлы в /usr/lib. Эти библиотеки используются на этапе компиляции.

Дополнительно, разделяемая библиотека образов файлов libc.so.version инсталлируется в /lib. Это разделяемые библиотеки образов загружаются во время выполнения использующими их программами. Каждая библиотека имеет символическую связь, использующую старшее число версии библиотеки в /lib.

Например, библиотека libc версия 4.4.1 имеет старшую цифру версии 4. Файл, содержащий библиотеку - libc.so.4.4.1. Символическая связь с именем libc.so.4, указывающая на этот файл, также в /lib. Вы должны изменить эту символическую связь, когда модифицируете библиотеки. Например, когда идет смена версий, вы должны изменить символическую связь файла libc.so.4 на новую версию.

Важное замечание! Надо менять символическую связь за один шаг, как показано ниже. Если вы каким-то образом удалили символическую связь libc.so.4 тогда программы, которые зависят от этой связи (включая базовые утилиты вроде ls и cat) перестанут работать. Используйте следующую команду для обновления символической связи libc.so.4, чтобы она указывала на файл libc.so.4.4.1:

# ln -sf /lib/libc.so.4.4.1 /lib/libc.so.4

Вы должны также изменить символическую связь libm.so.version таким же манером. Если вы переходите на отличную (от прежней) версию библиотек, замените имена вышеупомянутых файлов. Пояснения к версии библиотеки должны прояснить детали. (Дополнительную информацию про символические связи смотрите в Разделе 3.10).



Настройка TCP/IP на вашей системе


В этом разделе мы обсудим, как настраивать связь Ethernet - TCP/IP на вашей системе. Имейте в виду, что описываемый метод (предполагается, что) работает на многих системах, но, разумеется, не на всех. Этого обсуждения должно быть достаточно, чтобы указать вам правильный путь в настройке параметров сети на вашей машине. Но существует множество знаковых и милых деталей, которые мы здесь даже не упоминаем. Мы, все-таки ориентируем вас на Linux Network Administrators' Guide и NET-2-HOWTO.

Прежде всего, мы предполагаем, что у вас есть Linux с инсталлированным TCP/IP. Это включает основных клиентов, таких как telnet и ftp, команды системного администратора, такие как ifconfig и route (обычно находящиеся в /etc), и сетевые настроечные файлы (такие как /etc/hosts). Другие, относящиеся к Linux сетевые документы, указанные выше, рассказывают, как инсталлировать сетевые программы Linux, если это еще не было сделано.

Мы также предполагаем, что ваше ядро было настроено и скомпилировано с поддержкой TCP/IP. Смотрите Раздел 4.7. по поводу компиляции ядра.

Когда это сделано, вы должны модифицировать ряд настроечных файлов, используемых NET-2. Для большинства это простая процедура. К сожалению, существует большое различие между дистрибутивами Linux относительно того, где должны размещаться различные конфигурационные файлы TCP/IP и поддерживающие программы. Чаще они могут быть обнаружены в /etc, но в других случаях их можно отыскать в /usr/etc, /usr/etc/inet, /sbin или в других неожиданных местах.

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

Следующая информация относится в первую очередь к связи по Ethernet. Если вы планируете использовать SLIP, прочитайте этот раздел, чтобы понять концепции, а затем обратитесь к специфическим для SLIP рекомендациям из последующего раздел.



В большинстве случаев установка XFree


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

В этой главе мы опишем как создать и отредактировать XF86Config файл, который настраивает XFree86 сервер.

В большинстве случаев лучше всего начать с ``основной'' XFree86 конфигурации, которая использует низкое разрешение , например 640x480, поддерживаемого всеми видеокартами и мониторами. Однажды настроив XFree на стандартное разрешение, вы можете затем подстроить файл конфигурации для для того, чтобы использовать все возможности, предоставляемые вашей аппаратурой.

В дополнение к информации приведенной здесь, вам следует ознакомиться со следующей документацией: Документация по XFree в каталоге /usr/X11R6/lib/X11/doc (включенного в пакет XFree86-3.1-doc). Вам следует особенно обратить внимание на файл README.Config. Многие видео микросхемы имеют отдельный справочный файл README (например README.Cirrus, README.S3). Прочитайте их, если вы имеете такую видеокарту. Руководства (man pages) для XFree86. Руководство (man) на XF86Config. Руководство (man) на конкретный, используемый вами сервер (например XF86_SVGA или XF86_S3).

Основным файлом настройки XFree86 является файл /usr/X11R6/lib/X11/XF86Config. Этот файл содержит информацию о вашей мыши, параметрах видеокарты и т п. В качестве примера дистрибутив XFree86 содержит файл XF86Config.eg. Скопируйте его в файл XF86Config и отредактируйте.

XF86Config man page подробно объясняет формат этого файла. Прочитайте данный документ , если вы еще это не сделали. Далее мы собираемся просмотреть файл XF86Config участок за участком. Этот файл может выглядеть не совсем так, как файл в вашем дистрибутиве XFree86, но структура их совпадает.

!Заметьте, что формат файла XF86Config может изменяться с каждой версией XFree86; эта информация может быть верной только для XFree86 версии 3.1.

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

Каждая секция файла XF86Config определяется парой строк Section "<section-name>" ... EndSection. Первая секция файла называется Files, и выглядит следующим образом:

Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" EndSection

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

Следующая секция имеет имя ServerFlags и определяет несколько глобальных параметров для сервера. Как правило эта секция пуста.

Section "ServerFlags" # Uncomment this to cause a core dump at the spot where a signal is # received. This may leave the console in an unusable state, but may # provide a better stack trace in the core dump to aid in debugging # NoTrapSignals # ncomment this to disable the <Crtl><Alt><BS> server abort sequence # DontZap EndSection

Все строки данной секции закомментированы.

Следуюшая секция Keyboard. Она определяет работу клавиатуры.

Section "Keyboard" Protocol "Standard" AutoRepeat 500 5 ServerNumLock EndSection Доступны также и другие режимы. Описанные выше опции работают на большинстве клавиатур.

Следующая секция - Pointer определяет параметры мыши.

Section "Pointer" Protocol "MouseSystems" Device "/dev/mouse" # Baudrate and SampleRate are only for some Logitech mice # BaudRate 9600 # SampleRate 150 # Emulate3Buttons is an option for 2-button Microsoft mice # Emulate3Buttons # ChordMiddle is an option for some 3-button Logitech mice # ChordMiddle EndSection

Единственными опциями, на которые стоит обратить внимание являются Protocol и Device. Protocol определяет протокол, который использует ваша мышь. Возможными типами (для Linux - есть другие опции, доступными для других ОС) являются: BusMouse Logitech Microsoft MMSeries Mouseman MouseSystems PS/2 MMHitTab

Для Logitech busmouse следует использовать протокол BusMouse. Заметьте, что для старых мышей Logitech необходимо использовать протокол Logitech, а для новых или Microsoft, или Mouseman протокол.

Строка Device определяет устройство к которому подключена мышь. На большинстве систем Linux это /dev/mouse. /dev/mouse обычно связано с соответствующим серийным портом (например /dev/cua0 - COM1 или /dev/cua1 - COM2) или с портом busmouse. В любом случае убедитесь, что указанное устройство есть в каталоге /dev и работоспособно.

Следующая секция - Monitor, определяет характеристики вашего монитора. Файл XF86Config может содержать не одну, а несколько секций Monitor (это справедливо и для других секций). Это полезно в том случае, когда вы подключили к системе несколько мониторов или используете один и тот же XF86Config файл для различных конфигураций.

Section "Monitor" Identifier "CTX 5468 NI" # These values are for a CTX 5468NI only! Don't attempt to use # them with your monitor (unless you have this model) Bandwidth 60 HorizSync 30-38,47-50 VertRefresh 50-90 # Modes: Name dotclock horiz vert ModeLine "640x480" 25 640 664 760 800 480 491 493 525 ModeLine "800x600" 36 800 824 896 1024 600 601 603 625 ModeLine "1024x768" 65 1024 1088 1200 1328 768 783 789 818 EndSection

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

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

HorizSync 31.5, 35.2, 37.9, 35.5, 48.95

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

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

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

Строка ModeLine определяет один из режимов разрешения вашего монитора. Ее формат:

ModeLine <name> <clock> <horiz-values> <vert-values>

<name> - строка, которую вы можете использовать в этом файле в дальнейшем для указания разрешения. <dot-clock> определяет частоту задающего генератора адаптера для этого разрешения. Обычно частота указывается в мегагерцах. Она определяет скорость с которой видеокарта должна посылать значения точек экрана на монитор при указанном разрешении. <horiz-values> и <vert-values> состоят из 4-х цифр каждая. Эти значения определяют, когда электронная пушка монитора во время развертки должна включиться и когда должны проходить импульсы горизонтальной и вертикальной синхронизации во время развертки луча.

Как описать строку ModeLine для вашего монитора? Файл VideoModes.doc, включенный в дистрибутив XFree86, детально описывает как определить эти значения для каждого разрешения, которое поддерживает ваш монитор. Значение clock должно соответствовать частотам, которые поддерживает ваша видеокарта. Далее в файле XF86Config вы определите эти значения.

Существует два файла modeDB.txt и Monitors в дистрибутиве XFree, которые могут содержать данные ModeLine для вашего монитора. Эти файлы располагаются в каталоге /usr/X11R6/lib/X11/doc.

Вы можете начать со значений ModeLine для мониторов стандарта VESA. Этот режим поддерживается большинством мониторов. Файл modeDB.txt включает описания синхронизации для стандартного разрешения VESA. В этом файле вы найдете такие строки:

# 640x480@60Hz Non-Interlaced mode # Horizontal Sync = 31.5kHz # Timing: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms) # # name clock horizontal timing vertical timing flags "640x480" 25.175 640 664 760 800 480 491 493 525

Это стандартная строка синхронизации для разрешения 640x480 точек. Она устанавливает частоту 25.175 Mhz, которая должна поддерживаться большинством мониторов (более подробно об этом позже). В вашем файле эта строка должна выглядеть так:

ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525

Заметим, что аргумент name в строке ModeLine (в нашем случае "640x480") может быть любой строкой, которая описывает для вас разрешение монитора.

Для каждой строки ModeLine сервер проверяет, попадают ли указанные значения в интервал указанных значений Bandwidth, HorizSync и VertRefresh. Если нет, то сервер выдаст предупреждение при начале работы.

Если стандартные значения синхронизации VESA не работают у вас, то просмотрите другие значения в файлах modeDB.txt и Monitors для других типов мониторов. Заметим, что многие 14 и 15 дюймовые мониторы не могут поддерживать разрешений 1024x768 точек из-за низкого значения Bandwidth. То есть, если вы не нашли описание режима высокого разрешения для вашего монитора, то не исключено, что ваш монитор не поддерживает такое разрешение.

Если вы потерпели неудачу с подбором строки ModeLine, изучите инструкцию описанную в файле VideoModes.doc вашего дистрибутива. По этой инструкции вы сможете описать строку ModeLine по спецификациям, описанным в вашем руководстве на монитор.

В конце концов, если вы не можете подобрать правильные значения строки ModeLine, то вы можете просто слегка изменить эти значения для достижения требуемого результата. Например, если изображение на экране слегка уходит влево или вверх, вы можете по инструкции из файла VideoModes.doc настроить значения синхронизации. Проверьте также наличие управляющих клавиш на вашем мониторе! Частенько бывает достаточным изменить горизонтальный и вертикальный размер изображения во время работы XFree чтобы добиться желаемой центровки и размера изображения. Наличие этих клавиш на монитора значительно упрощает жизнь.

Следующая секция Device описывает параметры вашей видеокарты. Например:

Section "Device" Identifier "#9 GXE 64" # Nothing yet; we fill in these values later. EndSection

Эта секция описывает возможности вашей карты. Identifier определяет имя этого описания для ссылки на него в дальнейшем.

Первоначально вам не стоит заполнять эту секцию, за исключением поля Identifier. X-сервер можно использовать в режиме определения параметров установленной видеокарты. После определения этих параметров вы занесете их в эту секцию. X-сервер способен определить тип микросхемы видеокарты, поддерживаемый интервал частот, наличие RAMDAC и размер установленной памяти на видеоадаптере.

Прежде чем мы это сделаем, нам следует закончить описание файла XF86Config.

Следующая секция - Screen описывает возможные режимы работы X-сервера с видеокартой и монитором.

Section "Screen" Driver "Accel" Device "#9 GXE 64" Monitor "CTX 5468 NI" Subsection "Display" Depth 16 Modes "1024x768" "800x600" "640x480" ViewPort 0 0 Virtual 1024 768 EndSubsection EndSection

Строка Driver определяет тип сервера, который вы будете использовать. Вы можете использовать следующие сервера: Accel:

Для XF86_S3, XF86_Mach32, XF86_Mach8, XF86_8514, XF86_P9000, XF86_AGX, and XF86_W32 серверов;

SVGA: Для XF86_SVGA сервера;

VGA16 : Для XF86_VGA16 сервера;

VGA2 : Для XF86_Mono сервера;

Mono : Для non-VGA монохромного драйвера в XF86_Mono и XF86_VGA16 серверах.

Убедитесь, что файл /usr/X11R6/bin/X является символьной ссылкой на используемый вами сервер.

Строка Device определяет идентификатор секции Device, описывающей установленную видеокарту. Выше мы описали секцию Device с идентификатором:

Identifier "#9 GXE 64"

Следовательно, здесь мы используем "#9 GXE 64" в строке Device.

Точно так же строка Monitor определяет имя секции Monitor для данного сервера, в данном примере "CTX 5468 NI".

Подсекция Display определяет режим работы сервера при выводе информации на экран. Файл XF86Config детально описывает эти режимы. Режимы, которые вам необходимо знать: Depth. Опеделяет число битов на точку. Обычно Depth принимает значение 8 (256 цветов). Для сервера VGA16 вам следует установить значение Depth 4 и для монохромного сервера - 1. Если вы используете видеокарту с ускорителем и имеете достаточно памяти для поддержки большего числа бит на точку, Вы можете установить Depth 16 , 24 или 32. Если с этими значения появились проблемы вернитесь к значению 8 и попытайтесь решить проблему позже. Modes. Указывает список видеорежимов, описанных в секции ModeLines. Выше мы описали режимы Modelines названные "1024x768", "800x600" и "640x480". Следовательно строка Modes будет выглядеть:

Modes "1024x768" "800x600" "640x480" Первый режим, перечисленный в этой строке устанавливается по умолчанию после начала работы сервера. Далее вы можете переключать режимы разрешения изображения, использую клавиши ctrl-alt-numeric + и ctrl-alt-numeric -.

Лучше всего при начальном конфигурации XFree86 использовать минимальное разрешение, например 640x480, которое работает на большинстве систем. И после настройки этого режима настроить XF86Config на работу с большими разрешениями.

Virtual. Устанавливает виртуальный размер экрана. XFree86 имеет возможность использовать дополнительную память на вашей видеокарте для расширения вашего рабочего поля. Когда указатель мыши доходит до края экрана, ваше рабочее поле сдвигается показывая новые части вашего рабочего поля. Следовательно, даже если вы работаете на мониторе с низким разрешением (например 800x600 точек), вы можете установить размер виртуального экрана насколько вам позволяет память видеоплаты (1 Мегабайтная плата может хранить рабочее поле 1024x768 с 256 цветами, 2-х Мегабайтная плата - 1280x1024 с 256 цветами или 1024x768 с 16384 цветами и т д). Конечно, вы не сможете увидеть сразу все поле на вашем мониторе, но вы можете легко просмотреть любую его часть. Virtual предоставляет вам прекрасную возможность использовать всю память вашего адаптера, но она довольно ограничена. Если вы желаете еще расширить возможности работы с экраном, вам следует использовать fvwm, openwin или другой подобный менеджер окон. fvwm и openwin позволяет вам иметь намного больший виртуальный экран (используя механизм спрятанных окон, вместо сохранения всего экрана в видеопамяти). Ваше виртуальное рабочее поле может состоять из 16x16 реальных экранов и более. Обратитесь к руководству по указанным командам. Большинство дистрибутивов XFree используют по умолчанию менеджер окон fvwm.

ViewPort. Если вы использовали опцию Virtual, описанную выше, ViewPort устанавливает координаты левого верхнего угла виртуального экрана после начала работы сервера. Часто используют значение Virtual 0 0. Если вы не установили этого значения сервер центрирует виртуальный экран на мониторе (что может быть не всегда желательно). Существуют и другие опции для данной секции (см. руководство для файла XF86Config). На практике же другие опции не обязательны для начальной установки сервера.

Обработка текстов и слов


Почти все пользователи нуждаются в какой-либо системе подготовки документов. (Много ли вы знаете энтузиастов компьютерной обработки, которые все еще пользуются ручкой и бумагой? Мы догадываемся, что очень немного). В мире персональных компьютеров обработка слов (word processing) - норма: она включает редактирование и манипуляции с текстом (часто в стиле WYSIWYG - "What-You-See-Is-What-You-Get" - "Что-Вы-Видите-ЕстьТо- Что-Вы-Имеете" - ЧВВЕТЧВИ) и получение печатных копий, содержащих рисунки, таблицы и другой гарнир.

В мире UNIX обработка текстов (text processing)- вещь более естественная, чем классическая концепция обработки слов. Вместо того, чтобы вызывать специальные средства обработки слов, исходный текст можно модифицировать любым текстовым редактором, таким как vi или Emacs. После подготовки текста пользователь форматирует текст специальными программами, преобразующими его к нужному для печати виду. Это в чем-то аналогично программированию на языке вроде Си, и "компилированию" текста в пригодную для печати форму.

В Linux много текстовых процессоров. Один из них groff - GNU версия классического форматера текстов nroff, первоначально созданного в Bell Labs и до сих пор используемого во многих UNIX. Другой современный текстовый процессор - TeX, создан знаменитым в компьютерном мире Дональдом Кнутом (Donald Knuth). Доступны диалекты TeX, такие как LaTeX.

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

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

Другой текстовый процессор texinfo - расширение TeX, используемое для подготовки программной документации в Free Software Foundation. texinfo может формировать печатный документ или гипертекст "Info" для просмотра на экране на основе одного исходного файла. Файлы Info - это основной формат для документирования, используемый в GNU, в частности в Emacs.

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

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

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

Mr. Torvalds: We are very upset with your current plans to implement post-hypnotic suggestion in the Linux terminal driver code. We feel this way for three reasons: 1. Planting subliminal messages in the terminal driver is not only immoral, it is a waste of time; 2. It has been proven that ``post-hypnotic suggestions'' are ineffective when used upon unsuspecting UNIX hackers; 3. We have already implemented high-voltage electric shocks, as a security measure, in the code for login. We hope you will reconsider.

Этот текст на языке форматирования LaTeX будет выглядеть следующим образом:

\begin{quote} Mr. Torvalds: We are very upset with your current plans to implement {\em post- hypnotic suggestion\/} in the {\bf Linux} termi- nal driver code. We feel this way for three reasons: \begin{enumerate} \item Planting subliminal messages in the ker- nel driver is not only immoral, it is a waste of time; \item It has been proven that ``post-hypnotic sugges- tions'' are ineffective when used upon unsuspecting UNIX hackers; \item We have already implemented high-voltage elec- tric shocks, as a security measure, in the code for {\tt login}. \end{enumerate} We hope you will reconsider. \end{quote}

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

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

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

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

Есть программы, которые позволяют посмотреть на графическом дисплее вид отформатированного документа перед его печатью. Например, программа xdvi отображает "независимый от устройства" файл, сгенерированный TeX под X Window. Другое приложение - xfig, обеспечивает графический интерфейс WYSIWYG для рисунков и диаграмм, который в последующем конвертируется в команды текстового процессора, включаемые в документ.

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

Существует и много других утилит текстовых процессоров. Мощная система METAFONT используется для проектирования фонтов в TeX. Другие программы включают ispell - интерактивный контролер правописания, makeindex - используется для генерации индексов в документах, подготовленных в LaTeX. Существует много макропакетов для groff и TeX для форматирования документов различных типов и математических текстов, а также тьма конверторов, транслирующих TeX или groff во многие другие форматы.



Перенаправление входа и выхода


Теперь, предположим, что мы хотим послать результат сортировки в файл, чтобы где-то сохранить список планируемых покупок. Shell дает нам возможность перенаправлять стандартный выход в файл, используя символ ``>''. Вот как это работает.

/home/larry/papers# sort > shopping-list bananas carrots apples [ctrl-D] /home/larry/papers#

Как вы можете видеть, результат работы команды sort не отображается на экране, вместо этого он сохраняется в файле shopping-list (список покупок). Давайте посмотрим на этот файл.

/home/larry/papers# cat shopping-list apples bananas carrots /home/larry/papers#

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

/home/larry/papers# sort items > shopping-list /home/larry/papers# cat shopping-list apples bananas carrots /home/larry/papers#

Но это можно сделать и по-другому. Перенаправлен может быть не только стандартный выход, но также и стандартный вход, используя символ ``<''.

/home/larry/papers# sort < items apples bananas carrots /home/larry/papers#

Технически, sort < items эквивалентно sort items, но последний вариант позволяет нам продемонстрировать сказанное: sort < items ведет себя так, словно данные файла items были напечатаны на клавиатуре. shell обслуживает перенаправление. sort не было дано имя файла (items) и команда читала со стандартного входа, как будто шел ввод с клавиатуры.

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



Подготовка к инсталляции с жесткого диска


Если вы планируете инсталляцию Slackware прямо с жесткого диска (которая обычно и быстрее, и надежнее, чем с дискет), вам потребуется раздел MS-DOS.

Обратите внимание: Если вы планируете инсталляцию Slackware из раздела MS-DOS, этот раздел НЕ должен быть скомпрессирован с помощью DoubleSpace, Stacker или какой-то другой утилиты MS-DOS. В настоящее время Linux не может прямо читать MS-DOS-раздел DoubleSpace/Stacker. (Вы можете обратиться к ней через MS-DOS Emulator, но это не подходит при инсталляции Linux).

При подготовке инсталляции с жесткого диска создайте просто на жестком диске каталог для размещения файлов Slackware. Например,

C:\> MKDIR SLACKWAR

создаст каталог C:\SLACKWAR для хранения файлов Slackware. Под этим каталогом, используя команду MKDIR, вы можете создать подкаталоги A1, A2 и т.д. для каждого переписанного дискового набора. Все файлы с диска А1 должны быть помещены в каталог SLACKWAR\A1 и т.д.



Получение Linux из других онлайн источников


Если вы имеете доступ к другим сетям, вроде CompuServe или Prodigy, то в них могут быть свои средства перекачки файлов. Кроме того, существует множество BBS, на которых есть Linux. Список Linux BBS дан в Приложении D. Не все дистрибутивы Linux доступны через эти сети, многие дистрибутивы на CD-ROM распространяются только почтой.