Инсталляция Linux


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

Загрузите средства инсталляции Linux; Выполните fdisk под Linux для создания разделов; Выполните mke2fs и mkswap для создания файловой системы Linux и области своппинга; Инсталлируйте программы Linux; Наконец, инсталлируйте либо загрузчик boot-файла LILO на диске, или создайте загрузочную дискету для загрузки новой Linux-системы.

Как мы уже сказали, некоторые шаги могут быть автоматизированы, в зависимости от используемого дистрибутива Linux. Пожалуйста, посмотрите более подробные инструкции в документации.



Инсталляция linux и первые шаги


М. Уэлш

Linux Installation and Getting Started Copyright (c) 1992--1994 Matt Welsh 205 Gray Street NE, Wilson NC, 27893 USA mdw@sunsite.unc.edu Copyright (c), 1996, ТОО "Терем". Перевод на русский язык (с разрешения Matt Welsh) Александра Соловьева

Alexander,

Thanks for the note about the translation! This is very good work, and I appreciate your work. Hopefully you will be able to explore publishing the translation on paper.

Regards! M. Welsh
24 April 1996

Предисловие переводчика

Госкомитет СССР по науке и технике в справедливой борьбе за чистоту русского технического языка, настоятельно рекомендовал (а может и требовал) в одном из своих циркуляров использовать "многопрограммирование" вместо "мультипрограммирование" "сопряжение" вместо "интерфейс" и т.п. А сколько боролись со словом "компьютер", вместо которого был достаточный выбор "русских слов": хочешь - ЭВМ, хочешь - ЦВМ, хочешь - ЭЦВМ.

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

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

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



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

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

Перевод выполнен с любезного разрешения автора. А в благодарностях нельзя обойти Алексея Костарева , выполнившего большой объем научного и технического редактирования. Без разнообразных вдохновляющих воздействий соседей из Екатеринбурга ( Павла Шабашова , Евгения Шахтарина , Сергея Червинского , И.А. Бокова ) этот перевод был бы выполнен (если выполнен) существенно позже.

Заявляя авторские права на перевод "Инсталляция LINUX и первые шаги" следует очертить их границы: Перевод может свободно распространяться на основе лицензии GPL (см. Приложение E). При полном или частичном воспроизведении перевода обязательно указание авторских прав на перевод. Переводчику хотелось бы знать о любых планах публикации или распространения данного перевода на коммерческой основе. При этом не должны нарушаться лицензионные ограничения, наложенные на оригинал книги и включенные в перевод книги: Matt Welsh "Linux Installation and Getting Started".

Перевод книги в форматах HTML, SGML, TXT можно найти, например, на узле НЕВОД .


А. Соловьев
10.04.1996

Версия 2.2.2, 11 февраля 1995.

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

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

Предисловие

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

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

Лично мое знакомство с Linux началось несколько лет назад, когда я задумался, как инсталлировать единственный "дистрибутив" Linux, существовавший в то время - пара дискет, подготовленных H.J. Lu. Я сбросил кучу файлов и стал читать, страница за страницей, неряшливо подготовленную инструкцию по инсталляции. Каким-то образом мне удалось инсталлировать эту базовую систему и заставить все вместе работать. Это было задолго до того, как стало возможно приобрести Linux у дистрибуторов всего мира на CD-ROM. Еще до того, когда сам Linux научился обращаться к CD-ROM. Это было до XFree86, до Emacs, до организации коммерческого сопровождения, до того, как Linux стал действительным соперником MS-DOS, Microsoft Windows и OS/2 на рынке операционных систем персональных компьютеров.

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

Аудитория

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

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

Структура книги

Эта книга состоит из следующих глав.

Глава 1. Введение в LINUX.

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

Глава 2. Приобретение и инсталляция Linux.

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

Глава 3. Знакомство с Linux.

Это исчерпывающее введение в использование Linux для новичков в UNIX. Если вы имеете предварительный опыт работы с UNIX, большая часть этого материала вам знакома.

Глава 4. Администрирование.

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

Глава 5. Дополнительные возможности.

Представляет читателю ряд дополнительных возможностей, поддерживаемых системой Linux, таких как X Window System и TCP/IP. Включено полное руководство по настройке XFree86-3.1.

Приложение A. Источники информации по Linux.

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

Приложение B. Список поставщиков Linux.

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

Приложение C. Учебные материалы по FTP и список серверов.

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

Приложение D. Список BBS для Linux .

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

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

Содержит копию GNU GPL, лицензионные соглашения, по которым распространяется Linux. Очень важно, чтобы пользователи Linux понимали GPL; много недоразумений в связи с требованиями GPL возникало в последние месяцы.

Приложение F. The GNU General Public License.

Оригинальный текст лицензии на английском языке.

Благодарности

Эта книга создавалась долго и многие люди причастны к ее выходу в свет. Особенно я хотел бы поблагодарить Larry Greenfield и Karl Fogel за их работу над первой версией третьей главы, и Lars Wirzenius, за его работу над четвертой главой. Я благодарен Michael K. Johnson за его помощь с проектом LDP и использованием LaTeX при оформлении книги, а также Ed Chi, который прислал мне подготовленный для издания вариант книги.

Спасибо Melinda A. McBride из SSC, Inc., которая отлично подготовила индекс для глав 3, 4 и 5. Мне также приятно поблагодарить Andy Oram, Lar Kaufman и Bill Hahn из фирмы O'Reilly and Associates за их помощь в Проекте Документирования Linux (Linux Documentation Project или LDP).

Я благодарен Linux Systems Labs, Morse Telecommunications, Yggdrasil Computing и другим компаниям за их поддержку LDP путем продажи книг и других работ.

Большое спасибо многим активистам, включая (не обращайте внимания на порядок перечисления) Linus Torvalds, Donald Becker, Alan Cox, Remy Card, Ted T'so, H.J. Lu, Ross Biro, Drew Eckhardt, Ed Carp, Eric Youngdale, Fred van Kempen, Steven Tweedie и многих других, за то, что они потратили много времени и энергии на этот проект, и без кого не было бы того, о чем написано в этой книжке.

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


Matt Welsh
13 января 1994

Доверие и законность

The Linux Documentation Project - это не жестко определенная команда писателей, корректоров и редакторов, которые работают над определенными руководствами по Linux. Главный координатор проекта Matt Welsh, которому помогают Lars Wirzenius и Michael K. Johnson.

Это руководство - одно из множества распространяемых в рамках Linux Documentation Project, включая Linux User's Guide, System Administrator's Guide и Kernel Hacker's Guide. Эти руководства доступны в форматах LaTeX и Postscript через anonymous FTP-сервер sunsite.unc.edu из каталога /pub/Linux/docs/LDP.

Мы призываем всех, кто любит писать или редактировать, присоединиться к нам с целью улучшения документации по Linux. Если у вас есть выход на электронную почту Internet, вы можете присоединиться к каналу DOC - списку рассылки Linux-Activists, послав письмо по адресу:

linux-activists-request@niksula.hut.fi

с первой строкой послания, имеющей вид

X-Mn-Admin: join DOC

Не стесняйтесь выходить на контакт с автором и координатором этого руководства, если у вас есть, вопросы, почтовые открытки или деньги. С Matt Welsh можно связаться по электронной почте Internet по адресу mdw@sunsite.unc.edu, а в реальной жизни по адресу

205 Gray Street Wilson, N.C. 27896 U.S.A.

UNIXTM - торговая марка X/Open. Linux - не торговая марка и не имеет отношения к UNIXTM или X/Open. The X Window System TM - торговая марка Massachusetts Institute of Technology. MS-DOS TM и Microsoft WindowsTM - торговые марки Microsoft, Inc.

Copyright (c) 1992--1994 Matt Welsh 205 Gray Street NE, Wilson NC, 27893 USA mdw@sunsite.unc.edu

"Инсталляция LINUX и первые шаги" может тиражироваться и распространяться целиком или по частям при выполнении следующих условий:

Приведенный выше copyright и эти условия должны приводиться целиком во всех частичных и полных копиях. Любой перевод или вторичная работа, базирующаяся на "Инсталляция LINUX и первые шаги", должна быть одобрена автором в письменной форме до начала распространения. Если вы распространяете "Инсталляция LINUX и первые шаги" по частям, то должны включаться инструкции, как можно получить полную версию этого руководства и предоставлены средства получения такой копии. Небольшие части могут воспроизводиться в других работах как иллюстрации в обзорах или цитаты без этих разрешительных указаний, при условии корректного цитирования. Генеральная лицензия GNU (The General Public License) которая приводится ниже может быть приведена при условиях, указанных в ней. Некоторые разделы этого документа находятся под отдельным copyright. Когда эти разделы попадают под различные copyright, то указываются все copyright. Если вы распространяете "Инсталляция LINUX и первые шаги" по частям и данная часть попадает под несколько более общих copyright, то указываются условия copyright этой части.

Исключения из этих правил могут быть предоставлены для академических целей: напишите Matt Welsh по ранее указанному адресу или по электронной почте на mdw@sunsite.unc.edu и спросите разрешения. Эти ограничения вводятся для того, чтобы защитить авторские права, но не ограничить вас как учителей и обучаемых. Автор всячески поощряет дистрибуторов Linux использовать книгу как руководство по инсталляции и первому знакомству с Linux. В соответствии с приведенным выше copyright вы можете свободно печатать и распространять эту книгу бесплатно или получать прибыль. При этом вы можете захотеть включить небольшое ``дополнение по инсталляции'' для вашей версии.

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

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

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

Весь исходный текст книги Linux Installation and Getting Started помещен под Генеральной лицензией GNU. Смотрите в Приложении E GNU ``GPL.''

Условные обозначения

В книге использованы следующие обозначения:

Жирным фонтом

выделяются слова, обозначающие новые концепции, ПРЕДУПРЕЖДЕНИЯ или ключевые слова языка.

Курсивом

выделяются ударения в тексте, названия документов и пр.

Фиксированным фонтом

представлены экранные формы. Также этот фонт используется для выделения имен файлов, команд и информации, вводимой пользователем.



Инсталляция Slackware с setup


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

# setup

Она предоставит вам меню, с помощью которого будет направлять вас в процессе инсталляции.

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

Меню setup состоит из следующих пунктов. Используйте стрелки для перемещения по пунктам и нажимайте enter или spacebar при выборе пункта.

Help

Выводит help-файл программы setup.

Keymap

Эта опция позволяет описывать отображение клавиатуры в вашей системе, если у вас не US-клавиатура. Список keymaps (образов клавиатур) будет представлен; выберите соответствующий пункт из списка.

Quick

Позволяет выбирать между режимами ``quick'' (быстро) и ``verbose''(с подробными комментариями). ``Verbose'' - режим, устанавливаемый по умолчанию, рекомендуется, если только вы не занимались уже этим десятки раз.

Make tags

Позволяет экспертам по инсталляции Slackware создавать настроенные tag-файлы. Это необходимо только для настройки инсталляционной процедуры; но это все не ваша забота.

Addswap

Это будет первый пункт, который выберет большинство пользователей при инсталляции Slackware. Будет предъявлен список доступных разделов для своппинга (эти разделы будут типа ``Linux swap'' как наборы в fdisk). Вы сможете описать, какие разделы вы хотите использовать для области своппинга. Затем вам будет задан вопрос, хотите ли использовать mkswap для этих разделов.

Если вы уже выполнили mkswap и swapon (как описано в Разделе 2.3.4) над своими разделами своппинга, то нельзя в setup выполнять над этими разделами mkswap.

Даже если вы уже выполнили mkswap и swapon, необходимо использовать пункт Addswap меню: это гарантирует, что разделы своппинга будут доступны по завершении инсталляции.

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

Target

Этот пункт позволяет описывать разделы, на которые будет инсталлироваться Linux. Список доступных разделов (с типом ``Linux native'' ("исходный Linux" - описывается командой fdisk) будет отображен и вас попросят ввести имя корневого раздела Linux, например /dev/hda2. Далее вы получите подсказку относительно типа создаваемой файловой системы. Мы предлагаем использовать файловую систему типа ext2fs, как описано в Разделе 2.3.5. Это создаст файловую систему в названном разделе, нечто аналогичное форматированию раздела под MS-DOS. Вы также получите подсказки относительно любых других разделов, которые вы можете захотеть использовать в Linux. Например, если вы создали раздел для /usr (смотрите Раздел 2.2.3), вы сможете описать имя и куда примонтировать раздел (скажем, на /usr или /usr/bin).

! Предупреждение! Создание файловой системы в разделе разрушает данные, находившиеся на этом месте. Убедитесь, что вы не уничтожаете данные, которые следует сохранить. Даже если вы уже создали файловую систему, используя mke2fs (смотрите Раздел 2.3.5), вы должны использовать пункт меню Target (цель) для описания разделов, в которые будет инсталлирован Linux.

Source

Этот пункт меню позволяет описать, с чего будет инсталлироваться Slackware: с дискеты, жесткого диска или CD-ROM. Если вы инсталлируете с жесткого диска, вам будет задан вопрос, какой раздел выделяется файлам Slackware и какого он типа. Например, Если у вас Slackware-файлы в разделе MS-DOS, введите имя раздела (скажем, /dev/hda1) и выберите MS-DOS FAT в качестве типа. Далее вам будет задан вопрос, в каком каталоге данного раздела можно найти эти файлы. Например, у вас Slackware-файлы, размещенные в каталоге C:\SLACK в вашем разделе MS-DOS, введите

/slack

как местоположение. Обратите внимание, что здесь обычный слэш "/". Если вы инсталлируете с CD-ROM, вас спросят тип используемого устройства CD-ROM, а также, где на CD-ROM находятся файлы. Многие CD-ROM содержат файлы в каталоге /slakware, но это зависит от версии. Если вы инсталлируете Slackware Professional (Slackware Professional - версия Slackware, поставляемая Morse Telecommunications), то используются два каталога CD-ROM. slakware используется для стандартной системы, которая инсталлирует файлы прямо на ваш жесткий диск. slackpro используется на базирующейся на CD-ROM системе, где многие файлы доступны прямо с CD-ROM. Это позволяет сэкономить дисковое пространство, но доступ ко многим файлам заметно медленнее. Некоторые другие поставщики Slackware предоставляют возможности работы прямо с CD-ROM. Но, если у вас есть свободное место на диске, мы не рекомендуем работать со Slackware прямо с CD-ROM. Это медленно.

При инсталляции может быть сообщение Slackware об ошибке монтирования. Это часто говорит о проблеме доступа к жесткому диску или CD-ROM. Если вы увидите такие сообщения об ошибках, посмотрите дополнительную информацию в Разделе 2.5.3.

Disk sets

Эта опция меню позволяет выбрать дисковые наборы, которые вы будете инсталлировать. Как минимум, вы должны инсталлировать дисковый набор A. Для выбора дисковых наборов просто используйте стрелки и клавишу пробела. Обратим внимание, что выбор конкретного дискового набора не означает, что все пакеты диска будут инсталлированы; перед инсталляцией пакетов вам будут выдаваться комментарии ``optional'' или ``recommended.''

Install

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

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

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

Вы можете также столкнуться с сообщениями об ошибках, при попытке обращения к CD-ROM; убедитесь, что CD-ROM чистый, нет следов от пальцев и т.п.

Configure

Этот пункт меню выполняет пост-инсталляционное конфигурирование системы. Это описывается в следующем разделе.



Использование файла своппинга


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

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

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

Эта команда создает файл своппинга. Замените ``count='' размером файла своппинга в блоках.

# mkswap /swap 8208

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

# /etc/sync # swapon /swap

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

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

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

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

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

# swapoff /swap

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

# rm /swap

Помните, что каждый файл своппинга (или раздел) может быть размером до 16 Мбайт, но вы можете использовать до 8 файлов своппинга или разделов на своей системе.



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


ftpmail - это сервис, который позволяет получить файлы из FTP-архива через электронную почту Internet. Если у вас нет прямого выхода на Internet, но есть возможность посылать письма в Internet (например, из CompuServe), ftpmail - это хороший способ получить файлы из архивов FTP-серверов. К сожалению, ftpmail может быть медленным, особенно при пересылке больших об'емов. Перед попыткой скачать большое число программ с использованием ftpmail, убедитесь, что область спуллинга вашей mail будет способна справиться с такими объемами входного трафика. Во многих системах есть ограничения на объем приходящей электронной почты (прим. переводчика: ограничения могут быть как на объем отдельного файла, так и на общее число принимаемых (размещаемых во входном спуле) файлов). Так что руководствуйтесь здравым смыслом.

sunsite.unc.edu - один из главных архивных Linux FTP-серверов, имеет также ftpmail-сервер. Для того, чтобы воспользоваться этим сервисом, пошлите письмо по адресу:

ftpmail@sunsite.unc.edu

А в письме только одно слово

help

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

Например, для получения списка файлов sunsite.unc.edu, пошлите письмо по вышеуказанному адресу со следующим текстом:

open sunsite.unc.edu cd /pub/Linux dir quit

Вы можете использовать ftpmail для связи с архивом FTP-сервера; и это не ограничивается лишь sunsite.unc.edu. В следующем разделе приводится список Linux FTP-архивов.



Исследование файловой системы


Файловая система есть собрание файлов и иерархия каталогов. Я обещал поводить вас по файловой системе - и время настало. У вас достаточно интеллекта и знаний извлечь пользу из того, что я говорю и у вас есть карта дорог. (Смотрите Рисунок 3.2.8).

Перво-наперво вернемся в корневой каталог (cd /) и сделаем ls -F. Вы, очевидно, увидите каталоги: bin, dev, etc, home, install, lib, mnt, proc, root, tmp, user, usr и var. (Можете увидеть и несколько отличный вариант - не волнуйтесь, различные версии Linux могут иметь отличия).

Присмотримся к каждому каталогу.

/bin

bin - это сокращенно от ``binaries'' (т.е. двоичные или выполняемые файлы). Здесь находится много важных системных программ. Используйте команду ``ls -F/bin'' чтобы посмотреть имеющийся здесь список файлов. Вы можете обнаружить здесь уже знакомые вам команды, вроде cp, ls и mv. Это и есть программы соответствующих команд. Когда, например, вы используете команду cp, вы выполняете программу /bin/cp.

Используя ls -F, вы увидите, что большинство (если не все) файлов в /bin имеют справа от имени звездочку (``*''). Это говорит о том, что файлы выполняемые, как описано в Разделе 3.3.2.

/dev

Следующая остановка на нашем пути - dev. Вновь посмотрите на содержимое с помощью ls -F.

"Файлы" в /dev известны как драйверы устройств - они используются для доступа к устройствам и ресурсам системы, таким как диски, модемы, память и т.д. Например, как вы можете читать данные из файла, точно также вы можете читать входные сигналы от мыши, имея доступ к /dev/mouse. Имена файлов, начинающиеся на fd - это дисководы гибких дисков. fd0 - первый дисковод, fd1 - второй. Теперь самые шустрые из вас заметят, что здесь имеется больше дисководов, чем те два, которые мною упоминались: они представляют специфические типы дисководов. Например, fd1H1440 представляет доступ к high-density, 3.5" дискетам на дисководе 1.

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

/dev/console/ относится к системной консоли, т.е. к монитору, напрямую связанному с системой. Различные /dev/ttyS и /dev/cua устройства используются для доступа к последовательным портам. Например, /dev/ttyS0 относится к ``COM1'' под MS-DOS. Устройства /dev/cua относятся к "звонящим" (``callout'') устройствам, которые используются совместно с модемами. Устройства, имена которых начинаются с hd, имеют доступ к жестким дискам. /dev/hda относится ко всему первому жесткому диску, а hda1 только к первому разделу /dev/hda. Устройства с именами, начинающимися на sd - SCSI-драйверы. Если у вас SCSI жесткий диск, вместо доступа к нему через /dev/hda, вы будете обращаться к /dev/sda. SCSI ленты доступны через устройства st, а SCSI CD-ROM через sr. Устройства lp обеспечивают доступ к параллельным портам. /dev/lp0 относится к ``LPT1'' в MS-DOS. /dev/null используется как "черная дыра" - любые данные, посланные сюда, канут в Лету. Если вы хотите подавить вывод команды на экран, вы можете перенаправить этот вывод в /dev/null. Мы об этом позже еще поговорим. Устройства с именами /dev/tty относятся к "виртуальным консолям" вашей системы (доступ путем нажатия alt-F1, alt-F2 и т.д.). /dev/tty1 соответствует первой VC, /dev/tty2 соответствует второй и т.д. Устройства, чьи имена начинаются на /dev/pty, это "псевдотерминалы". Они используются для входа с удаленных "терминалов". Например, если ваша машина в сети, вход к вам по telnet будет использовать одно из устройств /dev/pty.

/etc

/etc содержит множество всевозможных системных файлов конфигурации. Они включают /etc/passwd (файл паролей), /etc/rc (командный файл инициализации) и т.д.

/sbin

/sbin используется для хранения важных системных двоичных файлов, используемых системным администратором.

/home

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

/lib

/lib содержит образы разделяемых библиотек (shared library images). Эти файлы содержат код, который могут использовать многие программы. Вместо того, чтобы каждая программа имела свою собственную копию этих выполняемых файлов, они хранятся в одном общедоступном месте - в /lib. Это позволяет сделать выполняемые файлы меньше и сэкономит место в системе.

/proc

/proc - это "виртуальная файловая система", в которой файлы хранятся в памяти, а не на диске. Они связаны с различными процессами, происходящими в системе, и позволяют получить информацию о том, что делают программы и процессы в указанное время. Более детально мы рассмотрим это в Разделе 3.11.1.

/tmp

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

/usr

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

Различные каталоги, описанные выше, необходимы для нормального функционирования системы, но большинство вещей, содержащихся в /usr необязательны для системы. Но это такие необязательные вещи, которые делают систему полезной и интересной. Без /usr вы бы имели достаточно занудную систему, содержащую только программы, вроде cp и ls. /usr содержит много больших программных пакетов и конфигурационных файлов, которые их сопровождают.

/usr/X386

/usr/X386 содержит The X Window System, если вы ее инсталлировали. The X Window System - это мощная графическая среда, которая содержит большое количество графических утилит и программ, отображающих "окна" на вашем экране. Если вы знакомы с Microsoft Windows или Macintosh environments, то X Windows будет выглядеть весьма похоже. Каталог /usr/X386 содержит все выполняемые и конфигурационные файлы X Window, а также файлы поддержки. Более детально это будет обсуждаться в Разделе 5.1.

/usr/bin

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

/usr/etc

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

/usr/include

/usr/include содержит include-файлы для компилятора Си. Эти файлы (большинство имен которых заканчивается на .h (от слова ``header'') объявляют имена структур данных, подпрограмм и констант, используемых при написании программ на Си. Те файлы, которые находятся в /usr/include/sys в общем случае используются при программировании на системном уровне UNIX. Если вы знакомы с языком программирования Си, здесь вы найдете такие хэдеры (фрагменты программ, вставляемые обычно в начало программы), stdio.h, которые описывают такие функции, как printf().

/usr/g++-include

/usr/g++-include содержит include-файлы для компилятора Cи++ (очень похожие на /usr/include).

/usr/lib

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

/usr/local

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

/usr/man

Этот каталог содержит страницы Руководства. Здесь два подкаталога для каждого "раздела" Руководства. (С помощью команды "man man" вы можете получить более подробную информацию). Например, /usr/man/man1 содержит исходные тексты (неотформатированный оригинал) страниц Руководства в разделе 1 и /usr/man/cat1 содержит отформатированные страницы для раздела 1.

/usr/src

/usr/src содержит исходные коды (неоткомпилированные программы) для различных программ вашей системы. Наиболее важная вещь здесь, это /usr/src/linux, содержащий исходные коды ядра Linux.

/var

/var содержит каталоги, которые часто меняются в размере или имеют тенденцию быстро расти. Многие из этих каталогов "квартировались" в /usr, но поскольку мы стремимся сделать его достаточно стабильным, каталоги, которые часто меняются были перенесены в /var. К числу таких каталогов относятся:

/var/adm

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

/var/spool

/var/spool содержит файлы, которые предварительно формируются для других программ. Например, если ваша машина подключена к сети, входная почта будет помещаться в /var/spool/mail до тех пор, пока вы не прочитаете ее или не удалите. Входящие и исходящие новости помещаются в /var/spool/news и т.д.



Источники информации по Linux


Как вы, возможно, догадались, существует много источников информации по Linux помимо этой книги. В частности, есть ряд книг, не конкретно по Linux, а скорее по UNIX вообще, которые могут очень помочь, особенно тем, кто не имеет предварительного опыта в UNIX. Если вы не знакомы с миром UNIX, мы настоятельно советуем вам уделить время одной из таких книг, прежде чем храбро ринуться в джунгли Linux. В качестве хорошего начала может быть использована книга Grace Todino и John Learning the UNIX Operating System.

Многие из нижеупомянутых источников доступны он-лайн в электронном виде. То есть для того, чтобы ими воспользоваться, вы должны иметь доступ к Internet, USENET или Fidonet. Если у вас нет он-лайн доступа к этим материалам, то следует найти добряка, который сделает вам твердую копию.



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



Изменение текста


Вы можете заменить фрагменты текста, используя команду R. Поместите курсор на первую букву слова ``party'', нажмите R и напечатайте слово ``hungry''.

____________________________________________________________________ |Now is the time for all women to come to the aid of the hungry._ | |~ | |~ | |~ | |~ | |~__________________________________________________________________|

Использование R для редактирования текста очень походит на на команды i и a, но R заменяет прежний текст вместо вставки в него. Команда r заменяет один символ, отмеченный курсором. Например, переместите курсор на начало слова ``Now'' и напечатайте r, а следом C, то вы получите:

____________________________________________________________________ |Cow is the time for all women to come to the aid of the hungry._ | |~ | |~ | |~ | |~ | |~__________________________________________________________________|

Команда ``˜'' изменяет размер буквы, отмеченной курсором: большую делает маленькой и наоборот. Например, если вы поместите курсор на ``o'' в ``Cow'' и затем последовательно будете нажимать ~, вы в конечном итоге получите:

____________________________________________________________________ |COW IS THE TIME FOR ALL WOMEN TO COME TO THE AID OF THE HUNGRY. | |~ | |~ | |~ | |~ | |~__________________________________________________________________|



Электронная почта


Как и множество систем UNIX, Linux имеет несколько программных пакетов для использования электронной почты. E-mail (электронная почта) на вашей системе может быть либо локальная (то есть вы можете обмениваться почтой с другими пользователями вашей системы) или сетевая (то есть вы посылаете почту, используя либо TCP/IP, либо UUCP, другим пользователям). Программы e-mail обычно состоят из двух частей: мэйлер и транспорт. Мэйлер - это программы пользовательского уровня, которые используются для формирования и чтения почтовых сообщений. Популярные мэйлеры включают elm и mailx. Транспорт - это программы системного уровня, которые отвечают за доставку почты, как локальной, так и удаленной. Пользователь никогда не видит программы "транспорт"; они взаимодействуют только с мэйлером. Но, назвавшись системным администратором, человек должен понимать концепции программ "транспорта" и как их настраивать.

Наиболее популярная транспортная программа для Linux - это Smail. Эту программу просто настраивать. Она может посылать e-mail, локально и удаленно по TCP/IP и по UUCP. Yf В большинстве систем UNIX используется более мощная программа sendmail, однако, из-за сложного механизма установки, многие системы Linux ее не используют.

Linux Mail HOWTO дает больше информации относительно доступных почтовых программ для Linux и как их настраивать. Если вы планируете послать почту удаленному пользователю, вы должны понимать либо TCP/IP или UUCP, в зависимости от того, каким образом ваша машина подключена в сеть (смотри Разделы 5.3 и 5.4). Может быть полезной документация по UUCP и TCP/IP, перечисленная в Приложении А.

Большинство почтовых программ можно достать через anonymous FTP с sunsite.unc.edu в каталоге /pub/Linux/system/Mail.



Как Применять Эти Требования к Вашим Новым Программам


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

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

<одна строка, чтобы привести имя программы и краткий смысл того, что она делает> Copyright (c) 19yy <имя автора> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

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

Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.

Гипотетические команды `show w' и `show c' должны показать соответствующие части the General Public License. Разумеется, команды, которые будете использовать вы, могут называться как-то иначе, чем `show w' и `show c'; их даже можно реализовать мышкой или через пункты меню - как больше подходит вашей программе.

Вы должны также поговорить со своим работодателем (если вы работаете в качестве программиста) или в школе, если вы в ней, чтобы подписать "отказ от авторских прав" (``copyright disclaimer'') на программу, если это необходимо. Вот образец:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice

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

Эта Генеральная Общедоступная Лицензия (GPL) не разрешает вставлять вашу программу другие программы, представляющие чью-то частную собственность Если ваша программа - лишь одна из программ библиотеки, может быть более целесообразно будет разрешить включать (link) ее в любые прикладные программы в качестве библиотечной функции Если этого достаточно, используйте Библиотечную Генеральную Общедоступную Лицензию GNU (GNU Library General Public License) вместо Лицензии GPL.

(прим. переводчика: Юридический слог, которым написана Лицензия, допускает лишь "литературный" перевод. Для точной передачи смысла надо иметь достаточный юридический опыт. Поэтому, пользуясь случаем и требованиями Лицензии, хочу уведомить, что несмотря на принятые мучения, не могу гарантировать точность перевода. Оригинал Лицензии прилагается).



Карты Ethernet


Многие популярные карты Ethernet и LAN-адаптеры поддерживаются в Linux. Они включают:

3com 3c503, 3c503/16 Novell NE1000, NE2000 Western Digital WD8003, WD8013 Hewlett Packard HP27245, HP27247, HP27250 D-Link DE-600

Есть сведения о работе следующих клонов: LANNET LEC-45 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

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



Книги и другие публикации


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

В момент написания этой книги подписка на Linux Journal стоила $19 в год в США, $24 в Канаде и US$29 в остальном мире. По поводу подписки или для получения дополнительной информации пишите в Linux Journal, PO Box 85867, Seattle, WA, 98145-1867, USA, или звоните +1 206 527-3385. Номер их факса +1 206 527-2806, и e-mail linux@ssc.com. Вы можете также найти Linux Journal FAQ и некоторые статьи через anonymous FTP на sunsite.unc.edu в /pub/Linux/docs/linux-journal.

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



Команды перемещения


Вы уже знаете, как использовать стрелки для перемещений по документу. Вы также можете использовать команды h, j, k, и l для перемещения курсора влево, вниз, вверх и вправо соответственно. Это удобно, если (по каким-то причинам) ваши клавиши со стрелками не работают как надо.

Команда w перемещает курсор на начало следующего слова; b - перемещает на начало предыдущего слова.

Команда 0 (это ноль) передвигает курсор на начало текущей строки, а команда $ перемещает на конец строки.

При редактировании больших файлов вы хотите перемещаться вперед и назад сразу на размер экрана. Нажатием ctrl-F курсор перемещается на экран вперед, с помощью ctrl-B - на экран назад.

Для того, чтобы переместить курсор в конец файла, напечатайте G. Можно переместиться также на любую строку, напечатав команду 10G вы переместите курсор на десятую строку файла. Для того, чтобы встать на начало (на первую строку), используйте 1G.

Вы можете сочетать команды перемещения с другими командами, такими как удаление. Например, команда d$ удалить от местоположения курсора до конца строки; dG удалит все от курсора до конца файла и т.д.



Концепции


При использовании vi в любое время вы можете находиться в одном из трех режимов работы. Эти режимы известны как командный режим, режим вставки и режим последней строки.

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

Вставку или редактирование текста вы осуществляете в режиме вставки. При использовании vi вы, возможно, большую часть времени находитесь именно в этом режиме. Вы переходите в режим вставки с помощью команды ``i'' (``insert'' - вставка) из командного режима. В режиме вставки вы вставляете текст в документ на место, указываемое курсором. Для завершения режима вставки и возврата в командный режим следует нажать esc.

Режим последней строки - это специальный режим, используемый для расширения возможностей командного режима. При вводе таких команд они появляются в последней строке экрана. Например, если вы напечатаете ``:'' в командном режиме, вы перейдете в режим последней строки и сможете использовать такие команды, как ``wq'' (записать (write) файл и выйти (quit) из vi), или ``q!'' (выйти из vi без сохранения изменений). Режим последней строки в общем случае используется для команд vi, которые длиннее одного символа. В режиме последней строки вы вводите однострочные команды и нажимаете enter для их выполнения.



Краткая информация о базовых командах


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

Обратите внимание, что опции обычно начинаются с ``-'' и во многих случаях несколько однобуквенных опций могут следовать за одним минусом, записанные слитно. Например, вместо использования ls -l -F, можно использовать ls -lF.

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

Обратите также внимание на то, что многие из команд берут список файлов или каталогов, как аргументы, обозначенные как ``<file1> ... <fileN>''. Например, команда cp берет в качестве аргументов список файлов, которые надо копировать, за которыми следует имя целевого файла или каталога. При копировании нескольких файлов в качестве целевого может выступать только каталог.

cd

Изменяет текущий рабочий каталог.
Синтаксис: cd <directory>;
<directory> - каталог, в который перейти (``.'' ссылается на текущий каталог, ``..'' - на родительский каталог).
Пример: cd ../foo переводит из текущего каталога в ../foo.

ls

Выдает информацию о файлах в каталоге.
Синтаксис: ls <file1> ... <fileN>
Где <file1> ... <fileN> имена файлов или каталогов, информацию про которые надо выдать.
Опции: Здесь больше опций, чем вы думаете. Наиболее часто используемые: -F (для представления информации о типах файлов), и -l (выдает в длинном (``long'') формате информацию о размерах файлов, владельцах, правах доступа и т.д. В деталях это будет обсуждаться далее).
Пример: ls -lF /home/larry выдаст содержимое каталога /home/larry.

cp

Копирует файл(ы) в файл или каталог.
Синтаксис: cp <file1> ... <fileN> <destination>
Где <file1> ... <fileN> имена копируемых файлов, а <destination> файл или каталог, в который копируют.
Пример: cp ../frog joe копирует файл ../frog в файл или каталог joe.

mv

Перемещает файл(ы) в другой файл или каталог. Эта команда не эквивалентна копированию с последующим уничтожением оригинала. Она может быть использована для переименования файлов, как команда RENAME из MS-DOS.
Синтаксис: mv <file1> ... <fileN> <destination>
Где <file1> ... <fileN> имена перемещаемых файлов, а <destination> имя файла или каталога, в который перемещают.
Пример: mv ../frog joe перемещает файл ../frog в файл или каталог joe.

rm

Удаляет файлы. Имейте в виду, когда в UNIX удаляются файлы, они невосстановимы (не как в MS-DOS, где вы можете "разудалить" файл).
Синтаксис: rm <file1> ... <fileN>
Где <file1> ... <fileN> имена удаляемых файлов.
Опции: -i потребует вашего подтверждения перед удалением файла.
Пример: rm -i /home/larry/joe /home/larry/frog удаляет файлы joe и frog в каталоге /home/larry.

mkdir

Создает новые каталоги.
Синтаксис: mkdir <dir1> ... <dirN>
Где <dir1> ... <dirN> создаваемые каталоги.
Пример: mkdir /home/larry/test создает каталог test в каталоге /home/larry.

rmdir

Эта команда удаляет пустые каталоги. При использовании rmdir ваш текущий рабочий каталог должен находиться вне удаляемого каталога.
Синтаксис: rmdir <dir1> ... <dirN>
Где <dir1> ... <dirN> удаляемые каталоги.
Пример: rmdir /home/larry/papers удаляет каталог /home/larry/papers, если он пустой.

man

Выдает страницу Руководства по данной команде или ресурсу. (здесь "ресурс" - это любая системная утилита, которая не является командой, например библиотечная функция).
Синтаксис: man <command>
Где <command> имя команды или ресурса, о котором запрашивается информация.
Пример: man ls - дает помощь по команде ls.

more

Выдает содержимое названных файлов поэкранно.
Синтаксис: more <file1> ... <fileN>
Где <file1> ... <fileN> отображаемые файлы.
Пример: more papers/history-final представляет файл papers/history-final.

cat

Используется для конкатенации файлов. cat используется также для выдачи полного содержания файла разом
Синтаксис: cat <file1> ... <fileN>
Где <file1> ... <fileN> выдаваемые файлы.
Пример: cat letters/from-mdw выдает на дисплей файл letters/from-mdw.

echo

Просто повторяет аргументы.
Синтаксис: echo <arg1> ... <argN>
Где <arg1> ... <argN> "повторяемые" аргументы.
Пример: echo "Hello world" выдает на экран ``Hello world''.

grep

выдает все строки в названном файле(лах), которые содержат заданный образец.
Синтаксис: grep <pattern> <file1> ... <fileN>
Где <pattern> - образец (представленный регулярным выражением) и <file1> ... <fileN> - файлы, в которых производится поиск.
Пример: grep loomer /etc/hosts выдаст все строки, в которых файл /etc/hosts, содержит образец ``loomer''.



Краткая история Linux


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

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

Существуют версии UNIX для многих систем, начиная от персонального компьютера, до суперкомпьютеров, таких как Cray Y-MP. Большинство версий UNIX для персональных компьютеров достаточно дороги и сложны. К моменту написания этой книги одномашинная версия AT&T's System V для 386 стоила US$1500.

Linux - свободно распространяемая версия UNIX, первоначально была разработана Линусом Торвальдсом (Linus Torvalds) (torvalds@kruuna.helsinki.fi) в Университете Хельсинки (Финляндия). Linux был создан с помощью многих UNIX-программистов и энтузиастов из Internet, тех, кто имеет достаточно навыков и способностей развивать систему. Ядро Linux не использует коды AT&T или какого-либо другого частного источника, и большинство программ Linux разработаны в рамках проекта GNU из Free Software Foundation в Cambridge, Massachusetts. Но в него внесли лепту также программисты всего мира.

Первоначально Linux создавался Линусом Торвальдсом как хобби. Его вдохновила операционная система Minix - маленькая UNIX-система, созданная Andy Tanenbaum, и впервые Linux обсуждался по компьютерной сети в рамках USENET newsgroup comp.os.minix. В этих обсуждениях прежде всего принимали участие пользователи Minix из учебных и научных заведений, которым хотелось чего-то большего, чем Minix.

Раннее развитие Linux прежде всего было связано с проблемой переключения задач в защищенном режиме для 80386. Все писалось на ассемблере. Линус вспоминает: "После этого началось спокойное плавание: по-прежнему беспросветное кодирование, но у меня были различные подсобные программы и отладка была облегчена. На этом этапе я стал использовать Си и это существенно ускорило дело. В это же время я стал серьезно обдумывать маниакальную идею, как сделать Minix лучше себя самого. Я надеялся в один прекрасный день перекомпилировать gcc под Linux..." "Два месяца ушло на написание самых базовых программ, а затем чуть больше времени на драйвер винчестера (с большим количеством ошибок, но все-таки работавшим на моей машине) и простую файловую систему. В результате я подготовил версию 0.01 (примерно конец августа 1991 г.). Она была не слишком изящной, в ней не было драйвера гибких дисков и она многое не могла делать. Но я уже не смог остановиться, пока не создал свой Minix."

Относительно появления Linux версии 0.01 никогда не делалось никаких официальных заявлений. Исходные тексты 0.01 не давали даже нормального выполняемого кода: они фактически состояли лишь из набора заготовок для ядра и молчаливо предполагали, что вы имеете доступ к Minix-машине, чтобы иметь возможность компилировать их и совершенствовать.

5-го октября 1991 года Линус объявил первую "официальную" версию Linux, версия 0.02. В это время Linux уже мог выполнять bash (the GNU Bourne Again Shell) и gcc (the GNU C compiler), но мало еще что работало. Вновь это рассматривалось как создание некой хакерской системы. Основное внимание - создание ядра. Никакие вопросы поддержки работы с пользователем, документирования, тиражирования и т. п. даже не обсуждались. Кажется, что и сегодня сообщество Linux-истов считает эти вопросы вторичными по сравнению с "настоящим программированием" - развитием ядра.

Линус писал в comp.os.minix: "Грустите ли вы по тем прекрасным временам Minix-1.1, когда мужчины были настоящими мужчинами и писали свои собственные драйверы на все устройства? У вас сейчас нет под рукой настоящего проекта и вы вымираете от невозможности вонзить свои зубы в какую-то ОС, которую бы можно было модифицировать под свои желания? Не находите ли вы деморализующей ситуацию, когда все в Minix работает? Нет больше бессонных ночей, которые позволяли заставить хитрые программы работать правильно? Тогда это место для вас." "Как я уже говорил месяц назад, сейчас я работаю над некоммерческой Minix-подобной ОС для 386-го компьютера. Она уже доведена до такого состояния, когда ею даже можно пользоваться (хотя может быть там не то, что бы вы хотели), и я хочу выложить исходные тексты для широкого распространения. Это версия 0.02, но в ней уже успешно работают bash, gcc, gnu-make, gnu-sed, compress и т.д."

После версии 0.03 Линус скачком перешел в нумерации к версии 0.10, так как над проектом стало работать много народу. После нескольких последовавших пересмотров версий, Линус присвоил очередной версии номер 0.95, чтобы тем самым отразить свое впечатление о том, что скоро возможна уже "официальная" версия. (Обычно программам не дают номер версии 1.0 до того, как она теоретически завершена и отлажена). Это было в марте 1992 г. Примерно через полтора года - в декабре 1993 версия ядра все еще была Linux 0.99.pl14 - асимптотически приближаясь к 1.0. Во время написания книги текущая версия ядра 1.1 patchlevel 52, и на подходе версия 1.2.

Сегодня Linux - это полноценная ОС семейства UNIX, способная работать с X Windows, TCP/IP, Emacs, UUCP, mail и USENET. Практически все важнейшие программные пакеты были поставлены и на Linux, т.е. для Linux теперь доступны и коммерческие пакеты. Все большее разнообразие оборудования поддерживается по сравнению с первоначальным ядром. Многие тестировали Linux на 486-ом и установили, что он вполне сравним с рабочими станциями Sun Microsystems и Digital Equipment Corporation. Кто мог предположить, что этот "маленький UNIX" вырастет настолько, что сможет делать все в мире компьютеров.



Локализация аппаратных проблем


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

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

Например, предположим, что система зависла во время загрузки при распознавании платы Ethernet. Вы можете предположить, что имеет место конфликт или это проблема данной платы Ethernet. Простой и быстрый способ определиться - это вытащить плату Ethernet и попытаться вновь загрузиться. Если все пойдет нормально, то (a) плата Ethernet не поддерживается Linux (смотри Раздел 1.8 относительно совместимых плат), или (b) существует адрес или IRQ, конфликтующие с платой.

``Конфликт адреса или IRQ ?'' А это-то, скажите на милость, что еще может значить? Все устройства в вашей машине используют IRQ прим. переводчика: IRQ - Interrupt ReQuest или линию запросов прерывания, чтобы сообщить системе, что система должна для них что-то сделать. Вы можете представить себе IRQ как веревочку, за которую устройство дергает, когда ему надо, чтобы система позаботилась о выполнении какого-то поступившего запроса. Если более, чем одно устройство дергает за эту веревочку, ядро не способно определить, какое устройство нуждается в обслуживании. Вот вам и глюк.

Поэтому убедитесь, что все инсталлированные вами устройства используют уникальные линии IRQ. В общем случае IRQ для устройства может быть установлен с помощью переключения джамперов (jumpers) на плате; детали смотрите в документации на конкретное устройство. Некоторые устройства вообще не используют IRQ, но предполагается, что вы конфигурировали их, так, что они смогут им воспользоваться. (Хорошие примеры тому контроллеры Seagate ST01 и ST02 SCSI).

В некоторых случаях ядро, находящееся на ваших средствах инсталляции, конфигурируется для использования конкретного IRQ для конкретного устройства. Например, в некоторых дистрибутивах Linux ядро предварительно сконфигурировано так, чтобы использовать IRQ 5 для контроллера TMC-950 SCSI, контроллера CD-ROM Mitsumi и драйвер мыши busmouse. Если вы хотите использовать два или более из этих устройств, вам необходимо будет вначале инсталлировать Linux только с одним из этих устройств, подключенным к системе, а затем перекомпилировать ядро, чтобы сменить IRQ, выделенное для другого из них по умолчанию. (Смотри Главу 4 по поводу перекомпиляции ядра).

Другая область, где могут возникнуть конфликты аппаратуры - это каналы DMA (Direct Memory Access) (каналы прямого доступа к памяти), адреса ввода-вывода (I/O) и адреса разделяемой памяти (shared memory addresses). Все вышеперечисленное есть механизмы, через которые система взаимодействует с различными устройствами. Некоторые платы Ethernet, например, используют разделяемую память также как и IRQ в качестве интерфейса с системой. И если они конфликтуют с другими драйверами - система ведет себя непредсказуемо. Вы должны быть готовы к изменению канала DMA, адресов ввода-вывода или разделяемой памяти для различных устройств с помощью переустановки джамперов. (К сожалению, некоторые устройства не позволяют сделать такие переустановки).

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

Таблица 2.2 представляет перечень IRQ и каналов DMA, используемых различными "стандартными" устройствами, стоящими во многих системах. Практически все системы имеют эти устройства, так что вам следует избегать установок IRQ и DMA других устройств на эти значения.

Device I/O-адрес IRQ DMA ttyS0 (COM1) 3f8 4 n/a ttyS1 (COM2) 2f8 3 n/a ttyS2 (COM3) 3e8 4 n/a ttyS3 (COM4) 2e8 3 n/a lp0 (LPT1) 378 - 37f 7 n/a lp1 (LPT2) 278 - 27f 5 n/a fd0, fd1 (floppies 1 and 2) 3f0 - 3f7 6 2 fd2, fd3 (floppies 3 and 4) 370 - 377 10 3 Таблица 2.2: Обычные установки для устройств



Методы инсталляции


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

Если у вас есть Slackware на CD-ROM, вы можете инсталлировать файлы прямо с него. Дистрибутив Slackware Pro от Morse Telecommunications позволяет инсталлировать Slackware так, что многие файлы доступны прямо с CD-ROM. Это может сэкономить много пространства на диске, но некоторые приложения будут работать медленнее.



Модемы


Как и с поддержкой принтеров, Linux поддерживает полный спектр последовательных модемов, как внешних, так и внутренних. В Linux много программ телекоммуникации, включая Kermit, pcomm, minicom и Seyon. Если ваш модем может работать с другой операционной системой, вы сможете с ним работать и в Linux без каких-либо проблем.



Модернизация и инсталляция программ


Другая обязанность системного администратора - модернизация и инсталляция новых программ.

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

Ну, так когда желаете заняться модернизацией? Некоторые нутром чувствуют, что заниматься модернизацией пристало тогда, когда появилась новая версия дистрибутива, например, когда появляется новая версия Slackware. Многие пользователи Linux каждый раз при этом полностью переинсталлируют свою систему. Это тоже потеря времени. Обычно изменения от версии к версии Slackware незначительные. Бессмысленно переписывать и переинсталлировать 30 дисков, когда только 10% программ были действительно модифицированы.

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

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

Вы обнаружите, что когда вы модернизируете одну компоненту вашей системы, другие вещи не должны ломаться. Например, большая часть моей системы оставлена со времен древней 0.96 MCC Interim installation. Тем не менее, я использую новейшую версию ядра и библиотек без проблем. Большей частью бессмысленно заниматься модернизациями, чтобы "не отстать от моды". Суета все это. Это вам не MS-DOS или Microsoft Windows. У нас нет серьезных причин обязательно работать на новейшей во все времена версии системы. Если вы осознаете, что вам действительно нужны некоторые вещи из новой версии - тогда модифицируйте на здоровье. А если нет, то лучше не надо. Другими словами модернизируйте только то, что надо, и только тогда, когда надо. Не модернизируйте во имя модернизации.

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



Мышь и другие устройства подключаемые к портам


Большей частью мышь вы будете использовать в графическом окружении, таком как X Window System. Но некоторые приложения Linux, не ассоциируемые с графической средой, также используют мышь.

Linux поддерживает все стандарты последовательно подключенной мыши, включая Logitech, серию MM, Mouseman, Microsoft (2-кнопки) и Mouse Systems (3-кнопки). Linux также поддерживает мышь, подключенную на шину: Microsoft, Logitech и ATIXL. Поддерживается также интерфейс мыши PS/2.

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



Наборы дисков Slackware


К сожалению, Slackware не имеет полного списка потребностей памяти для каждого набора. Вам потребуется не менее 7 Мбайт для инсталляции лишь серии "A"; очень грубая оценка необходимого дискового пространства - от 2 до 2.5 Мбайт на дискету.

Имеются следующие наборы дисков:

A

Базовая система. Достаточная для начала работы и делает доступными команды elvis и comm (elvis - текстовый редактор, comm - сравнение файлов). Базируется на ядре 1.0.9 и новом стандарте файловой системы (FSSTND). Известно, что эти диски хорошо размещать на дискетах 1.2M (что не характерно для остальных частей Slackware). Если у вас в распоряжении только дисковод на 1.2M, вы все равно можете инсталлировать базовую систему, сбросив другие диски и инсталлировать их с жесткого диска.

AP

Различные приложения и дополнения, вроде руководства, groff, ispell (GNU and international versions), term, joe, jove, ghostscript, sc, bc, и quota patches.

D

Разработка программ. GCC/G++/Objective C 2.5.8, make (GNU и BSD), byacc и GNU bison, flex, the 4.5.26 C libraries, gdb, kernel source for 1.0.9, SVGAlib, ncurses, clisp, f2c, p2c, m4, perl, rcs.

E

GNU Emacs 19.25.

F

Набор Часто Задаваемых Вопросов (FAQs) и другая документация.

I

Info-страницы для GNU-программ. Документация для различных программ, читаемая с помощью info или Emacs.

N

Сетевые программы. TCP/IP, UUCP, mailx, dip, deliver, elm, pine, smail, cnews, nn, tin, trn.

OOP

Объектно-Ориентированное Программирование. GNU Smalltalk 1.1.1 и Smalltalk Interface to X (STIX).

Q

Исходники Alpha-ядра (во время написания книги - Linux 1.1.18).

TCL

Tcl, Tk, TclX, blt, itcl.

Y

Игры. Набор игр BSD и Tetris для терминалов.

X

Базовая система XFree86 2.1.1 с libXpm, fvwm 1.20 и xlock.

XAP

X-приложения: X11 ghostscript, libgr13, seyon, workman, xfilemanager, xv 3.01, GNU chess и xboard, xfm 1.2, ghostview, и различные X-игры.

XD

Программы работы в X11. X11 библиотеки, сервер linkkit, поддержка PEX.

XV

Xview 3.2 release 5. XView библиотеки, виртуальный и невиртуальный Open Look window-менеджеры.

IV

Interviews библиотеки, include-файлы, doc и idraw приложения.

OI

ParcPlace's Object Builder 2.0 и Object Interface Library 4.0. Обратите внимание, что она работает только с libc-4.4.4, но будет новая версия, как только станет доступным gcc 2.5.9.

T

Системы форматирования TeX и LaTeX.

Вы обязательно должны взять набор "A", остальные по желанию. Мы советуем инсталлировать наборы A, AP и D, а также X, если вы планируете использовать X Window System.



Начала ftp


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

Для запуска ftp и установления связи с сервером просто используйте команду

ftp <hostname>

где <hostname> - имя сервера, с которым вы связываетесь. Например, для связи с мифическим сервером shoop.vpizza.com можно использовать команду

ftp shoop.vpizza.com



Начала vi


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

Вызов vi vi <filename>

где <filename> - имя редактируемого файла.

Ну так вызовите vi, напечатав

/home/larry# vi test

для редактирования файла test. Вы увидите нечто вроде

____________________________________________________________________ |~_ | |~ | |~ | |~ | |~ | |"test"_[New_file]__________________________________________________|

Столбец символов ``~'' говорит о том, что вы стоите на конце файла.



Новости и USENET


Linux также обеспечивает ряд возможностей для работы с электронными новостями. При желании вы можете установить на вашей системе локальный сервер новостей, который позволит вам посылать "статьи" (``articles'') в различные "группы новостей" (``newsgroups'')... Удобная форма организации обсуждений. А если вы имеете выход по TCP/IP или UUCP в сеть, тогда вы будете в состоянии участвовать в USENET - всемирной сети новостей.

Программы новостей состоят из двух частей - сервера и клиента. Сервер новостей - это программа, которая управляет группами новостей и занимается доставкой писем другим машинам (если вы в сети). Клиент новостей ( newsreader) это программа, которая связывает с сервером, который позволяет пользователям получать и посылать новости.

Для Linux есть несколько серверов новостей. Они все имеют одни базовые протоколы и принципы. Две первые версии, это ``C News'' и ``INN''. Существует также много типов "читалок" новостей (newsreaders), например rn и tin. Выбор читалки в той или иной мере дело вкуса. Все читалки работают одинаково с различными версиями серверных программ. Так что читалка независима от сервера и наоборот.

Если вы хотите лишь вести локальные новости (а не как часть USENET), то вам потребуется завести сервер на своей системе, а также инсталлировать читалку для пользователей. Сервер новостей будет хранить статьи в каталоге, например /usr/spool/news, а читалка будет их просматривать в поисках поступивших новостей.

Если вы захотите вести сетевые новости, вам предоставляется несколько возможностей. Новости, базирующиеся на сетевом TCP/IP, используют протокол, известный как NNTP (Network News Transmission Protocol). NNTP позволяет читалке читать новости прямо удаленно по сети. NNTP также позволяет серверам новостей посылать по сети статьи друг другу, это программа, на которой базируется USENET. Большинство фирм и университетов имеют один или более NNTP-серверов, установленных для работы со всеми новостями USENET данного узла. Каждая вторая машина на узле имеет базирующуюся на NNTP читалку для чтения и посылки новостей по сети через NNTP- сервер. Это означает, что только NNTP-сервер действительно хранит новости на диске.

Далее следует несколько сценариев настройки новостей.

Вы ведете новости локально. То есть у вас нет в сеть выхода или желания возиться с сетевыми новостями. В этом случае вам надо выполнять C News или INN на вашей машине и инсталлировать читалку для чтения местных новостей. У вас есть выход по TCP/IP в сеть и на NNTP-сервер. Если ваша организация имеет NNTP-сервер новостей, вы можете читать и посылать новости с вашей Linux-машины, всего лишь инсталлировав у себя базирующуюся на NNTP читалку. (Большинство доступных читалок может быть настроено и на локальные новости и на использование NNTP). В этом случае вы не нуждаетесь в инсталляции сервера новостей или храните новости на своей системе. Читалка позаботится о чтении и посылке новостей по сети. Разумеется, вам потребуется настроенное TCP/IP и выход в сеть (смотрите Раздел 5.3). Вы имеете доступ к сети TCP/IP, но не имеете NNTP-сервера. В этом случае вы можете использовать NNTP-сервер новостей на своей системе Linux. Вы можете инсталлировать либо локальную, либо базирующуюся на NNTP читалку и сервер будет помещать новости на вашу систему. В дополнение, вы можете настроить сервер для взаимодействия с другими NNTP-серверами новостей для передачи статей. Вы хотите передать новости, используя UUCP. Если у вас есть доступ по UUCP (смотри Раздел 5.4), вы также можете приобщиться к USENET. Вам будет необходимо инсталлировать (локальный) сервер новостей и программы чтения почты. Дополнительно, вам необходимо настроить вашу UUCP на периодическую передачу (прием) новостей на другую близлежащую UUCP машину (известную как "источник новостей" (``news feed'')). UUCP не использует передачу новостей по NNTP; просто у UUCP свой собственный механизм передачи новостей.

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

Большинство "стандартных" программ новостей (доступных через anonymous FTP с сервера ftp.uu.net каталог /news) - готовые для компиляции полуфабрикаты. Необходимые изменения (patches) можно найти на sunsite.unc.edu в /pub/Linux/system/Mail (который, совершенно случайно, находится там же, где Linux). Другие бинарные файлы программ новостей для Linux можно также найти в этом каталоге.

За дополнительной информацией обращайтесь к Linux News HOWTO на sunsite.unc.edu в /pub/Linux/docs/HOWTO. Кроме того, входящий в проект LDP Linux Network Administrator's Guide содержит исчерпывающую информацию по настройке программ новостей для Linux. Книга Tim O'Reilly и Grace Todino Managing UUCP and Usenet замечательное руководство по установке UUCP и программ новостей. Представляет интерес и документ USENET ``How to become a USENET site'', доступный на ftp.uu.net, в каталоге /usenet/news.announce.newusers.



О корнях власти волшебной шапке и приятных ощущениях


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



Об этой книге


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

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

В этой книге мы рассматриваем следующие вопросы:

Что такое Linux? Особенности структуры и философии этой уникальной операционной системы, и что она может вам дать. Все детали, необходимые для практического использования Linux, включая рекомендации по желательной конфигурации аппаратуры. Как получить и инсталлировать Linux. Существует много способов распространения программного обеспечения под Linux. Мы описываем общую ситуацию, связанную с его распространением, рассказываем, как его приобрести и инсталлировать. Это издание содержит также специфические инструкции по дистрибуции Linux как Slackware. Краткое учебное пособие по UNIX для тех пользователей, которые до этого не встречались с ОС UNIX. Надеемся, что это пособие дает достаточно материала для новичков, чтобы получить базовые знания и начать ориентироваться в этой ОС. Введение в системное администрирование Linux. Это покрывает наиболее важные задачи, с которыми следует познакомиться новым администраторам Linux, с такими задачами как регистрация новых пользователей, управление файловой системой и тому подобное. Информация о конфигурировании более продвинутых аспектов Linux, таких как X Window System, сетевая работа с TCP/IP и SLIP, и установке электронной почты.

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



Описание вашей сети


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

IP адрес. Это уникальный адрес машины в точечно-десятичном формате. Например, 128.253.153.54. Ваши сетевые администраторы снабдят вас таким номером.

Если вы настраиваете только режим loopback (т.е. без SLIP, без карт Ethernet, только связь по TCP/IP внутри вашей машины) то ваш IP адрес будет 127.0.0.1.

Маска вашей сети (``netmask''). Это "точкосодержащий" квартет, похожий на IP адрес, определяющий, какая часть IP адреса относится к подсети, а какая относится к host (главной машине) этой подсети. (Если вас шокирует эта сетевая TCP/IP терминология - советуем почитать материалы по управлению сетями).

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

Администраторы вашей сети должны выбрать сетевую маску при проектировании сети, поэтому они могут сообщить вам правильную маску. Большинство сетей принадлежит классу C подсетей, которые используют сетевую маску 255.255.255.0. Другой класс сетей - B использует 255.255.0.0. Программы NET-2 автоматически выберут маску, которая предполагает отсутствие подсетей по умолчанию, поскольку иное вы не указали явно.

Это применимо также к порту loopback. Поскольку адрес порта loopback всегда 127.0.0.1, сетевая маска для этого порта всегда 255.0.0.0. Вы можете задавать это явно или полагаться на умолчание.

Адрес вашей сети. Это ваш IP адрес с наложенной побитовой сетевой маской. Например, если ваша сетевая маска 255.255.255.0, а ваш IP адрес - 128.253.154.32, то адрес вашей сети - 128.253.154.0. А с сетевой маской 255.255.0.0 адрес вашей сети будет 128.253.0.0.

Если вы используете только loopback, у вас нет адреса сети.

Ваш бродкаст (broadcast - широковещательный) адрес. Бродкаст адрес используется для раздачи бродкаст пакетов на все машины вашей подсети. Поэтому, если хост-номера машинам вашей подсети даны по последним байтам IP-адресов (сетевая маска 255.255.255.0), ваш бродкаст адрес будет получен из вашего сетевого адреса наложением 0.0.0.255. Например, если ваш IP адрес 128.253.154.32 и ваша сетевая маска 255.255.255.0, то ваш бродкаст адрес 128.253.154.255.

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

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

Ваш шлюзовой (gateway) адрес. Это адрес машины, которая для вас является "шлюзом" во внешний мир (т.е. к машинам не вашей подсети). Во многих случаях шлюзовая машина имеет IP адрес, идентичный вашему, но с ``.1'' в качестве хост-адреса; т.е., если ваш IP адрес 128.253.154.32, ваш шлюз может быть 128.253.154.1. Ваш системный администратор даст вам IP адрес вашего шлюза.

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

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

Адрес вашего сервера имен (nameserver). Большинство машин в сети имеют серверы имен, которые переводят имена хостов в IP адреса. Администратор вашей сети скажет адрес вашего сервера имен. Вы можете держать сервер на своей машине, используя named, в этом случае адрес сервера имен будет 127.0.0.1. Заводить сервер имен следует, только если у вас нет выбора, иначе выберите кого-то другого в сети, кто может это обеспечить. Настройка named это совсем другая песня; нам кажется, что вам на этом этапе лучше пообщаться с сетью. С именами вы можете разобраться позже.

Если вы единственный имеете loopback, у вас нет адреса сервера имен.

Пользователи SLIP: Вышеприведенная информация может вам потребоваться, а может и не потребоваться. Разве что адрес сервера имен. При использовании SLIP, ваш IP адрес обычно определяется одним из двух способов: (a) У вас "статический" IP адрес, который не меняется в любое время выхода в сеть; (b) У вас "динамический" адрес, который берется из пула доступных адресов, когда вы связываетесь с сервером. В следующем разделе, посвященном настройке SLIP, это рассматривается более детально.

NET-2 поддерживает полную маршрутизацию, множественность маршрутов, обслуживание подсети (на этом этапе только в пределах байта). Выше описывались основные настройки TCP/IP. Ваши могут быть совсем другими: если есть сомнения, проконсультируйтесь у местных гуру из соседних сетей и посмотрите страницы Руководства про route и ifconfig. Настройка TCP/IP выходит далеко за рамки этой книги; вышенаписанного может быть достаточно большинству людей для начала.



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


Есть другой способ перевести работу в фоновый режим. Вы можете начать работу нормально (в режиме переднего плана), остановить работу и продолжить в фоновом режиме.

Сначала начнем работу "нормально":

/home/larry# yes > /dev/null

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

Теперь, вместо того, чтобы прерывать работу с помощью ctrl-C, мы остановим работу. Приостановка работы не убивает ее. Чтобы осуществить приостановку работы, надо нажать соответствующие клавиши, обычно это ctrl-Z.

/home/larry# yes > /dev/null [ctrl-Z] [1]+ Stopped yes >/dev/null /home/larry#

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

Для возобновления работы в режиме переднего плана используйте команду fg (``foreground'' - передний план).

/home/larry# fg yes >/dev/null

Shell снова выдаст на экран имя команды, чтобы вы могли проконтролировать, какую работу вы активизировали в режиме переднего плана. Вновь остановите работу с помощью ctrl-Z. В этот раз используйте команду bg (``background'' - задний план, фоновый режим), чтобы перевести работу в фоновый режим. Эффект будет аналогичен тому, как если бы вы набрали после команды ``&''.

/home/larry# bg [1]+ yes >/dev/null & /home/larry#

И мы получили назад подсказку. Команда jobs сообщит, что команда yes действительно выполняется, и мы можем снова ее убить с помощью команды kill, как мы это уже делали.

Как теперь остановить работу? Использование ctrl-Z не поможет, поскольку работа находится в фоновом режиме. Ответ - переместить работу на передний план, а затем остановить. Вы можете использовать fg как для остановленных работ, так и для работ, находящихся в фоне.

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

/home/larry# yes &

без перенаправления stdout в /dev/null, поток "y" будет выводиться на экран без возможности прервать это (вы не сможете использовать ctrl-C для прерывания работ фонового режима). Чтобы остановить эту бесконечную выдачу, вам следует использовать команду fg для перевода работы в режим переднего плана, а затем использовать ctrl-C, чтобы ее убить.

Еще одно замечание. Команды fg и bg обычно переводят на передний план или в фоновый режим работы, которые были остановлены последними (что определяется символом ``+'' после номера работы, это когда вы используете команду jobs). Если вы выполняете много работ одновременно, вы можете перевести на передний план или, наоборот, в фоновый режим конкретную работу заданием идентификатора работы в качестве аргумента команд fg или bg, как в

/home/larry# fg %2

(перевод на передний план работы номер 2) или

/home/larry# bg %3

(перевод в фон работы номер 3).

Для этих команд нельзя использовать идентификаторы процессов. Кроме того, использование только номеров работ, как в

/home/larry# %2 эквивалентно /home/larry# fg %2

Помните, что управление работами, это свойство shell. Команды fg, bg и jobs - внутренние команды shell. Если по какой-то причине вы используете shell, который не поддерживает управление работами, там вы не найдете этих команд.

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



Относительно Copyright для Linux


Общедоступная Лицензия GNU (the GNU General Public License) или кратко GPL. GPL была разработана для проекта GNU ассоциацией Free Software Foundataion. Она устанавливает некоторые положения относительно распространения и модификации "свободнораспространяемых программ". В данном случае "свобода" относится именно к Свободе, а не к стоимости. GPL всегда был источником недопонимания и мы надеемся, что этот обзор поможет вам понять цели и задачи GPL и его влияние на Linux. Полная копия GPL включена в Приложение E.

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

Прежде всего следует объяснить, что "свободнораспространяемые программы", под лицензией GPL - это не public domain. Программы public domain - это программы не защищенные с помощью copyright и, фигурально выражаясь, принадлежат "почтенной публике" - обществу. Программы, защищаемые GPL, наоборот, защищают авторские права автора или авторов. Это значит, что программы защищены стандартными международными законами copyright, и что автор программ официально обозначен. Так что из факта свободного распространения программ не следует, что они - public domain.

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

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

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

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

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

Позволить компаниям распространять и продавать свободнораспространяемые программы - вещь очень хорошая. Не всякий имеет доступ к Internet, чтобы скачать программы, вроде Linux, бесплатно. (прим. переводчика: Правда, сама IP-связь для многих в нашей стране очень и очень даже не бесплатно - во много раз дороже, чем это обходится "среднему американцу". О качестве связи и говорить не хочется). GPL позволяет компаниям продавать и распространять программы среди тех, кто не имеет свободного доступа к программам. Например, многие организации продают Linux на дискетах, лентах или CD-ROM по почтовым заказам и делают на этом свою прибыль. Разработчики Linux могут никогда не увидеть какую-либо прибыль для себя от этих продаж. Вот каким образом регулируются отношения между разработчиками и дистрибуторами, когда программы находятся под лицензией GPL. Другими словами, Линус не спутайте автора с названием ОС Linux знал, что компании могут захотеть продавать Linux, и что он может не увидеть и пенни от этих продаж.

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



Озираясь вокруг


О'кей, мы вошли. ftp> - это наша подсказка, теперь программа ftp ждет ввода команд. Есть несколько основных команд, которые вам надо знать. Прежде всего, команды

ls <file>

и

dir <file>

обе дают список файлов (где <file> - необязательный аргумент, указывающий, какой список вывести). Разница в том, что ls обычно выдает короткий список, а dir - длинный (то есть с большей информацией относительно размера файлов, даты модификации и т.п.). Команда

cd <directory>

переместит "вас" в указанный каталог (точно также, как команда cd в UNIX или MS-DOS). Вы можете использовать команду

cdup

для перехода в родительский (находящийся выше) каталог

Команда

help <command>

даст вам подсказку по указанной команде ftp (такой как ls или cd). Если команда не указана, ftp выдаст список всех доступных команд. Если мы введем теперь dir, мы увидим начальный каталог нашего местонахождения.

ftp> dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. total 1337 dr-xr-xr-x 2 root wheel 512 Aug 13 13:55 bin drwxr-xr-x 2 root wheel 512 Aug 13 13:58 dev drwxr-xr-x 2 root wheel 512 Jan 25 17:35 etc drwxr-xr-x 19 root wheel 1024 Jan 27 21:39 pub drwxrwx-wx 4 root ftp-admi 1024 Feb 6 22:10 uploads drwxr-xr-x 3 root wheel 512 Mar 11 1992 usr 226 Transfer complete. 921 bytes received in 0.24 seconds (3.7 Kbytes/s) ftp>

Каждая из этих строк представляет каталог, а не отдельный файл, который мы можем скачать (на это указывает символ "d" в первой позиции списка). На большинстве архивных FTP-серверов общедоступные программы находятся под каталогом /pub, так что давайте туда и пойдем.

ftp> cd pub ftp> dir 200 PORT command successful. 150 ASCII data connection for /bin/ls (128.84.181.1,4525) (0 bytes). total 846 -rw-r--r-- 1 root staff 1433 Jul 12 1988 README -r--r--r-- 1 3807 staff 15586 May 13 1991 US-DOMAIN.TXT.2 -rw-r--r-- 1 539 staff 52664 Feb 20 1991 altenergy.avail -r--r--r-- 1 65534 65534 56456 Dec 17 1990 ataxx.tar.Z -rw-r--r-- 1 root other 2013041 Jul 3 1991 gesyps.tar.Z -rw-r--r-- 1 432 staff 41831 Jan 30 1989 gnexe.arc -rw-rw-rw- 1 615 staff 50315 Apr 16 1992 linpack.tar.Z -r--r--r-- 1 root wheel 12168 Dec 25 1990 localtime.o -rw-r--r-- 1 root staff 7035 Aug 27 1986 manualslist.tblms drwxr-xr-x 2 2195 staff 512 Mar 10 00:48 mdw -rw-r--r-- 1 root staff 5593 Jul 19 1988 t.out.h 226 ASCII Transfer complete. 2443 bytes received in 0.35 seconds (6.8 Kbytes/s) ftp>

Здесь мы можем видеть ряд (интересных?) файлов, один из которых называется README, который нам следует скачать (большинство FTP-серверов имеет файл README в каталоге /pub).



Память на CDROM


Почти все драйверы CD-ROM используют интерфейс SCSI. Если у вас есть SCSI-адаптер, поддерживаемый Linux, то ваш CD-ROM должен работать. Проверена работоспособность ряда драйверов для СD-ROM под Linux, включая NEC CDR-74, Sony CDU-541 и Texel DM-3024. Linux поддерживает также драйверы Sony internal CDU-31a и Mistsumi CD-ROM.

Linux поддерживает также стандарт ISO-9660 файловой системы для CD-ROM.



Перемещение shell и среда


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

ВНИМАНИЕ! Имейте в виду, что Tcsh, также, как и C shell, используют различные механизмы определения переменных, отличающиеся от используемых здесь. Здесь обсуждается shell Баурна. Когда вы присвоите значение переменной (используя оператор ``='' ), вы сможете получить это значение, добавив перед именем переменной символ ``$'', как это показано ниже

/home/larry# foo=``hello there''

Переменной foo присвоено значение ``hello there''. Теперь вы можете обратиться к этой переменной, добавив перед именем символ ``$''. Команда

/home/larry# echo $foo hello there /home/larry#

дает тот же самый результат, что и

/home/larry# echo ``hello there'' hello there /home/larry#

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

Shell позволяет экспортировать переменные в среду. Среда - это множество переменных, к которым могут иметь доступ все выполняемые команды. Определив однажды переменную внутри shell (прим. переводчика: определить - здесь означает "присвоить значение"), командой export вы можете передать ее среде.

ВНИМАНИЕ! Здесь вновь есть отличие между Bash и Tcsh. При использовании Tcsh используется другой синтаксис для помещения переменных в среду (используется команда setenv). Дополнительную информацию можно найти в Руководстве по Tcsh.

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

Вот небольшой пример. Переменная среды PAGER используется командой man. Она указывает команду, которая используется в свою очередь командой man для просмотра Руководства на экране. Если вы установите в качестве значения PAGER имя другой команды, то эта команда вместо будет обеспечивать просмотр вместо more (которая применялась по умолчанию).

Присвойте PAGER значение ``cat''. Выдача на экран руководства будет вся разом, а не поэкранно, как это делала команда more.

/home/larry# PAGER=cat

Теперь экспортируйте PAGER в среду.

/home/larry# export PAGER

Попробуйте команду man ls. Руководство промелькнет по вашему экрану без (желательных) задержек.

Теперь, если присвоить PAGER значение ``more'', то для выдачи на экран будет использоваться команда more.

/home/larry# PAGER=more

Обратим внимание на то, что нам не надо заново использовать команду export после изменения значения PAGER. Необходимо только раз экспортировать переменную; любые изменения, которые будут происходить после этого, будут отражаться в среде.

Страницы Руководства для конкретных команд содержат информацию о том, использует ли команда какие-то переменные среды. Например, Руководство по команде man говорит о том, что для определения режима выдачи страницы руководства на экран используется переменная PAGER. Некоторые команды совместно используют переменные среды, например, многие команды используют переменную среды EDITOR для указания используемого редактора.

Переменные среды используются также для сохранения важной информации о процедуре входа. Например переменная HOME содержит имя вашего домашнего каталога.

/home/larry/papers# echo $HOME /home/larry

Другая интересная переменная среды - PS1, которая определяет главную подсказки shell. Например,

/home/larry# PS1=``Your command, please: '' Your command, please:

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

Your command, please: PS1=``\w# '' /home/larry#

В Руководстве bash есть подробное описание синтаксиса, используемого при установке подсказки.



Первые шаги в UNIX


Перед тем, как начать, важно заметить, что все имена файлов и команд чувствительны к большим и малым буквам (чего нет в системах типа MS-DOS). Например, команда make очень отличается от Make или MAKE. То же относится и к именам каталогов.



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


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



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


Версии Slackware Linux на многих FTP-серверах мира. В Приложении C дан список некоторых из них. Мы предлагаем вам найти ближайший к вам FTP-сервер, чтобы минимизировать трафик. Тем не менее есть два главных Linux FTP-архива: sunsite.unc.edu и tsx-11.mit.edu.

Версию Slackware можно найти по крайней мере на следующих серверах:

sunsite.unc.edu:/pub/Linux/distributions/slackware tsx-11.mit.edu:/pub/linux/packages/slackware ftp.cdrom.com:/pub/linux/slackware

ftp.cdrom.com - это родной сервер Slackware.



Попытка не пытка


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

Вы можете использовать команду netstat, чтобы посмотреть таблицы маршрутизации; это обычно источник большинства неприятностей. Руководство по netstat описывает точный синтаксис этой команды в деталях. Для того, чтобы проверить связи в сети, мы предлагаем использовать клиента, такого, как telnet, чтобы связать машины вашей локальной подсети и внешней сети. Это позволит локализовать ошибки. (Например, если вы не можете связаться с локальной машиной, но связываетесь с машинами других сетей, скорее всего есть проблема с сетевой маской и настройкой таблицы маршрутизации). Вы можете также прямо вызвать команду route (под root) поэкспериментировать с записями таблицы маршрутизации.

Вам следует также проверить связи в сети прямо указывая IP адреса вместо хост-имен. Например, если у вас есть проблемы с командой

$ telnet shoop.vpizza.com

Причина может быть в некорректной настройке сервера имен. Попытайтесь использовать физический IP адрес машины; если это поможет, тогда вы будете знать, что ваши основные сетевые установки (скорее всего) правильны и проблема лежит в описании адреса сервера имен.

Отладка сетевых настроек может быть трудной задачей и мы не можем здесь втягиваться в ее обсуждение. Если вы не можете получить помощь от местных гуру, мы очень вам советуем почитать Linux Network Administrators' Guide из LDP.



Постинсталляционные процедуры


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

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

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

# shutdown -r now

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

Обратите внимание, что многие дистрибутивы Linux не предлагают команду shutdown на средствах инсталляции. Это означает, что при первой загрузке после инсталляции, вам может потребоваться для останова ctrl-alt-del. А после этого вы всегда должны использовать команду shutdown. прим. переводчика: До настоящего момента я закрывал Linux-систему командой halt, но shutdown тоже работает :-).

После того, как вы получили возможность использовать систему, осталось еще несколько акций связанных с конфигурированием, которые следовало бы предпринять. Первое, это создать себе пользовательский account (и, возможно, для других пользователей, которые будут иметь доступ к (в) этой системе) прим. переводчика: завести account - значит зарегистрироваться в системе. Создание пользовательских accounts описано в Разделе 4.4. Обычно все, что вы должны сделать, это войти под именем root и выполнить команду adduser (иногда useradd). При регистрации будет несколько подсказок, которые помогут вам зарегистрировать новых пользователей.

Если вы создали более одной файловой системы для Linux или, если вы используете область своппинга, вам может понадобиться отредактировать файл /etc/fstab, чтобы ваши файловые системы были автоматически доступны после загрузки. (Например, если вы используете отдельную файловую систему для /usr и не можете обнаружить ни одного из файлов этой файловой системы, может оказаться, что вам просто надо эту систему примонтировать). В Разделе 4.8. описывается эта процедура. Заметим, что дистрибутивы Slackware Linux автоматически конфигурируют ваши файловые системы и области своппинга, так что в описанном выше обычно нет необходимости.



Preamble


The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.



Преамбула


Лицензии для большинства программ сформулированы так, чтобы лишить вас свободы в их передаче и модификации. В противоположность этому Генеральная Общедоступная Лицензия GNU стремится гарантировать вашу свободу в распространении и изменении свободнораспространяемых программ, обеспечивая их свободное распространение для всех пользователей. Эта Генеральная Общедоступная Лицензия применяется к большей части программ Free Software Foundation и ко всем прочим программам, чьи авторы разделяют эти принцыпы. (Некоторые другие программы Free Software Foundation находятся вместо этого под Библиотечной Генеральной Общедоступной Лицензией). Вы тоже можете распространить ее на свои программы.

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

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

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

Мы защищаем ваши права в два этапа: (1) защищаем программы с помощью copyright и (2) передаем вам эту лицензию, что дает вам легальное право копировать, распространять и/или модифицировать программы.

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

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



Прекращение FTPсвязи


Для прекращения FTP-сессии просто используйте команду

quit

Команда

close

может использоваться для закрытия связи с данным FTP-сервером; команда open может быть после этого использована для начала сессии с другим сервером (без выхода из программы FTP).

ftp> close 221 Goodbye. ftp> quit



Принтеры


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

Программная поддержка принтера в Linux состоит из стандартных для UNIX программ lp и lpr. Эти программы позволяют также организовать удаленную печать через сеть.



Приобретение и инсталляция Linux


В этой главе мы опишем, как приобрести Linux в виде подготовленных дистрибутивов и как их инсталлировать.

Мы уже говорили, что не существует "официального" дистрибутива Linux. Существует много дистрибутивов, каждый из которых хорош для определенных целей. Эти дистрибутивы можно взять с ftp-серверов Internet, с BBS, на дискетах и CD-ROM.

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

Эта книга имеет дополнительные разделы, связанные с деталями Slackware-дистрибуции Linux.



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


Если вход в систему прошел успешно, на экран будет выдана подсказка "shell" - командной оболочки (например ``#'' или ``$'') и вы можете немножко поплясать вокруг системы. Но существует ряд проблем, которые могут возникнуть в начале использования системы.

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

Shell-init: permission denied

которое будет напечатано после входа в систему (на самом деле, всегда, когда вы столкнетесь с сообщением ``permission denied''("обращение запрещено") вы можете быть с высокой вероятностью уверены, что это проблема защиты файлов).

Во многих случаях это простое дело для команды "chmod", которая может менять права доступа к соответствующим файлам и каталогам. Например, некоторые дистрибутивы Linux использовали (ошибочный) код защиты файлов " 0644 " для корневого каталога (/). А следует использовать команду

# chmod 755 /

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

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



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


При загрузке Linux вы увидите серии посланий, выдаваемых на экран, вроде:

Console: colour EGA+ 80x25, 8 virtual consoles Serial driver version 3.96 with no serial options enabled tty00 at 0x03f8 (irq = 4) is a 16450 tty03 at 0x02e8 (irq = 3) is a 16550A lp_init: lp1 exists (0), using polling driver ...

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

Partition check:

(Проверка раздела), за которой следует список распознанных разделов, например:

Partition check: hda: hda1 hda2 hdb: hdb1 hdb2 hdb3

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

Это может произойти по нескольким причинам:

Жесткий диск или контроллер не поддерживается. Если вы используете контроллер жесткого диска (IDE, SCSI и тому подобные), из тех, которые не поддерживаются в Linux, ядро не распознает ваш раздел на этапе загрузки. Жесткий диск или контроллер неправильно конфигурированы. Даже если ваш контроллер поддерживается в Linux, он может быть неправильно конфигурирован. (Особенно эта проблема характерна для контроллеров SCSI; большинство не-SCSI контроллеров будет хорошо работать без дополнительной конфигурации).

Для решения такого рода проблем обращайтесь к соответствующей документации на жесткие диски и/или контроллеры. В частности, многие жесткие диски потребуют переустановки джамперов, если они будут использоваться в режиме "подчиненного" (``slave'') драйвера (например, в качестве второго жесткого диска). Самый железный способ проверить наличие такой ситуации - это загрузить MS-DOS или еще какую-нибудь другую операционную систему, которая заведомо должна работать с этим жестким диском и контроллером. Если вы получите доступ к диску и контроллеру из другой операционной системы, то значит ваши проблемы не в конфигурировании аппаратуры.

Смотрите Раздел 2.5.2.1 (ранее) по поводу разрешения возможных конфликтов устройств и Раздел 2.5.2.3 (далее) по поводу конфигурирования SCSI-устройств.

Контроллер конфигурирован правильно, но не распознается. Некоторые без-BIOS-ные SCSI-контроллеры требуют от пользователя описания контроллера на этапе загрузки. В Разделе 2.5.2.3 (далее) описывается, как осуществить определение этих контроллеров. Не распознается геометрия жесткого диска. Некоторые системы, такие, как IBM PS/ValuePoint, не помещают информацию о геометрии жесткого диска в память CMOS, где Linux ожидает ее найти. Также, некоторым SCSI-контроллерам надо сообщать, где найти геометрию диска, чтобы Linux мог распознать формат вашего диска.

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

boot: linux hd=<cylinders>,<heads>,<sectors>

где <cylinders>, <heads> и <sectors> соответсвуют числу цилиндров, головок и секторов на трек у вашего диска.

После инсталляции Linux вы будете иметь возможность инсталлировать LILO, который позволит вам загружаться с жесткого диска. В это время вы можете описать геометрию для инсталляционной процедуры LILO, что позволит не вводить геометрию при каждой загрузке. Более подробно о LILO смотрите в Главе 4.



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


Здесь описываются некоторые из наиболее типичных проблем, возникающих со SCSI-контроллерами и устройствами, такими, например, как CD-ROM, жесткие диски и ленты. Если у вас проблемы заставить Linux распознавать диск или контроллер, читайте дальше.

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

SCSI-скази устройство распознается всеми возможными идентификаторами (ID). Это связано с привязкой устройств к одному и тому же адресу с контроллером. Вам следует изменить установку переключателей так, чтобы драйвер и контроллер использовали различные адреса. Linux сообщает об обнаруживаемых ошибках, хотя известно, что устройство работает безошибочно. Это может происходить из-за плохого кабеля или плохого разъема. Если ваша SCSI-шина не имеет надежных контактов с обеих сторон - может возникать ошибка доступа к SCSI-устройствам. Если у вас возникают сомнения, всегда проверяйте кабель. SCSI-устройства сообщают об ошибках истечения времени. Это обычно происходит из-за конфликтов IRQ, адресов DMA или устройств. Следует проверить также, что прерывания вашим контроллером обрабатываются корректно. SCSI-контроллеры, использующие BIOS не идентифицируются. Распознавание контроллеров, использующих BIOS, потерпит неудачу, если BIOS отключен или "подпись" вашего контроллера не распознается ядром. Дополнительную информацию можно найти в Linux SCSI HOWTO. Контроллеры, использующие отображаемый в память ввод-вывод, не работают. Это происходит, когда порты отображаемого в памяти ввода-вывода буферизируются некорректно. Или определите в установках XCMOS адресное пространство контроллера, как некэшируемое, или отключите также и кэш. При разбиении на разделы будет выдано сообщение, что ``cylinders > 1024'' или что вы не сможете загрузиться из раздела, имеющего номера цилиндров более 1023. BIOS ограничивает число цилиндров числом 1024 и любой раздел, использующий большие номера цилиндров, будет неприемлем с точки зрения BIOS. Применительно к Linux это касается только загрузки; после того, как система загружена, вы сможете обращаться к разделу. Вы можете выбирать, загружать ли Linux с дискеты или из раздела, использующего цилиндры с номерами меньше 1024. Относительно создания загрузочной дискеты или инсталляции LILO смотрите Раздел 2.3.7. CD-ROM или другие устройства, которые могут дополнительно вставляться (удаляться) в компьютер, не распознаются на этапе загрузки. Постарайтесь загрузиться с подключенным CD-ROM (или диском). Для некоторых устройств это необходимо.

Если ваш SCSI-контроллер нераспознан, возможно вам следует инициировать (force) распознавание аппаратуры на этапе загрузки. Это особенно важно для без-BIOS-ных SCSI-контроллеров. Большинство дистрибутивов позволяет описывать IRQ контроллеров и адресов разделяемой памяти во время загрузки средств инсталляции. Например, если вы используете контроллер TMC-8xx, вы можете ввести

boot: linux tmx8xx=<interrupt>,<memory-address>

в ответ на подсказку загрузчика LILO, где <interrupt> - IRQ контроллера и <memory-address> - адрес разделяемой памяти. Сможете ли вы это сделать, зависит от используемого вами дистрибутива Linux, так что относительно деталей посмотрите документацию.



Проблемы входа в систему


После загрузки Linux вам (на экран) должна быть выдана подсказка вроде этой:

linux login:

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

Большинство новоиспеченных систем Linux не требуют пароля для первоначального входа. Но если система потребует с вас пароль, могут возникнуть проблемы. Прежде всего попробуйте пароль, совпадающий с именем входа; например, если вы вошли как root, попробуйте ``root'' в качестве пароля.

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

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



Проблемы загрузки Linux с дискеты


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

При загрузке дискеты, надо держать shift или ctrl. Это приведет вас к загрузочному меню; нажмите tab, чтобы получить спиок доступных опций. Например, многие дистрибутивы позволяют ввести

boot: linux hd=<partition>

где <partition> - имя корневого раздела Linux, например, /dev/hda2. Более детально с вопросом можно познакомиться по документации на дистрибутив.



Проблемы загрузки Linux с жесткого диска


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

Она может сделать неправильные предположения относительно формата вашего раздела, в этом случае вы должны будете переинсталлировать LILO, чтобы все стало хорошо. Инсталляция LILO обсуждается в Главе 4.

Системные сообщения ``Drive not bootable---Please insert system disk.'' ("Устройство незагружаемо---Пожалуйста, вставьте системный диск"). Вы получите такое сообщение об ошибке, если главная загрузочная запись жесткого диска каким-то образом попорчена. Во многих случаях это безопасно и все остальное у вас на диске по-прежнему в порядке. Тут дальше есть несколько путей. При разбиении диска на разделы с использованием fdisk вы могли удалить раздел, который был отмечен как ``active''. MS-DOS и другие операционные системы пытаются загрузить такой раздел на этапе загрузки (Linux не обращает внимания на то, является раздел ``active'' или нет). Вы можете загрузить MS-DOS с дискеты и запустить FDISK для установки флага ``active'' для раздела MS-DOS и все будет хорошо.

Другая команда, которую можно попробовать (с MS-DOS 5.0 и выше) это

FDISK /MBR

Эта команда будет пытаться заново сформировать главную загрузочную запись диска для загрузки MS-DOS, переписывая LILO. Если у вас больше нет на жестком диске MS-DOS, вам потребуется загрузить Linux с дискеты и в последующем попытаться инсталлировать LILO.

Если вы создали раздел MS-DOS, используя версию команды fdisk из Linux или наоборот, это может быть причиной ошибки. Вам следует создавать разделы для MS-DOS, используя только версии FDISK для MS-DOS. (Это относится и к другим операционным системам, которые существуют наряду с MS-DOS). Здесь лучшее решение - либо начать с того, что все стереть и переразбить диск правильно, либо удалить и пересоздать плохие разделы, используя исправные версии fdisk. Инсталляционная процедура LILO может потерпеть неудачу. В этом случае вам следует либо загрузиться с загрузочной дискеты для Linux (если она у вас есть) или с исходного средства инсталляции. В любом случае вы будете иметь возможность для описании корневого раздела Linux, который будет использован при загрузке. Нажмите shift или ctrl во время загрузки и нажмите tab из меню загрузки, чтобы получить список опций. При загрузке системы с жесткого диска MS-DOS (или другая из существующих операционных систем) стартует вместо Linux. Прежде всего убедитесь, что вы действительно инсталлировали LILO при инсталляции программ Linux. Если это оказалось не так, система будет загружать MS-DOS (или какую-нибудь другую операционную систему из собранных вами), когда вы пытаетесь загрузиться с жесткого диска. Для того, чтобы загрузить Linux с жесткого диска, вам необходимо инсталлировать на жесткий диск LILO (см. Главу 4).

С другой стороны, если вы все-таки инсталлировали LILO, но другая операционная система загружается вместо Linux, то необходимо конфигурировать LILO так, чтобы она загружала другие операционные системы по умолчанию. Во время загрузки системы держите нажатой клавишу shift или ctrl, а затем нажмите tab в ответ на подсказку загрузчика. В результате вы получите список операционных систем, которые можно загрузить. Выберите соответствующую опцию (часто просто ``linux''), чтобы загрузить Linux.

Если вы хотите сделать Linux системой, загружаемой по умолчанию, вам необходимо реинсталлировать LILO. Смотрите Главу 4.

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



Проектирование и философия Linux


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

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

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

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

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

Linux первоначально создавался группой энтузиастов в Internet со всего мира. Любой, в Internet и за его пределами, имеющий достаточные знания и навыки, имеет возможность принять участие в совершенствовании и отладке ядра, переносе в Linux новых программ, написании документации, помощи новичкам. Нет определенной организации, отвечающей за развитие системы. Большей частью Linux-сообщество общается через группы по интересам USENET. Существует ряд соглашений для принимающих участие в разработках: например, любой, желающий, чтобы его код был включен в "официальное" ядро, должен написать Линусу Торвальдсy, который проведет тестирование и включит код в ядро (если предлагаемый код вписывается в систему и не противоречит ее принципам - скорее всего он будет включен).

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

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

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

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

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

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

Обычно программная система Linux распространяется в виде дистрибутива (distribution), содержащего средства инсталляции и раскрутки системы. Большинству пользователей трудно самим собрать систему из разрозненных частей. Но не существует некоего стандартного дистрибутива - их много, каждый со своими преимуществами и недостатками. О различных дистрибутивах Linux речь пойдет в Разделе 2.1.

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



Программные характеристики


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