Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Забродин УНИХ основы командного интерфейса 2010

.pdf
Скачиваний:
159
Добавлен:
16.08.2013
Размер:
1.33 Mб
Скачать

компьютером или host. Поэтому часто говорят об IP-адресе host. Поскольку человек лучше запоминает имена, чем числа, то еще используется DNS — доменная система имен, о которой будет рассказано далее.

12.3. ПРОТОКОЛ TCP

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

Протокол TCP обеспечивает установление соединения между двумя приложениями, работающими на разных компьютерах (можно и на одном). Поскольку на одном компьютере с многопроцессной OC UNIX может одновременно работать несколько приложений, то для идентификации соединения недостаточно только IP-адресов компьютеров. Каждое соединение идентифицируется четырьмя значениями: IP-адресами компьютеров и номерами портов приложений. Поэтому между двумя компьютерами может быть организовано несколько соединений, они будут различаться номерами портов. Порт – целое число, под хранение которого выделяется два байта, т.е. максимальное значение номера порта 65535. Известные приложения, использующие стандартные протоколы, имеют стандартный номер порта. Например, www-приложения используют номер 80.

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

151

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

Так как протокол TCP пользуется ненадежным сервисом IPпротокола, то пакет или квитанция могут быть потеряны. Каждая сторона при посылке каждого пакета запускает таймер, который сбрасывается при получении квитанции. Если время таймера истекло, а квитанция не была получена, то сторона повторно посылает предположительно потерянный пакет и заново запускает таймер. После определенного числа попыток соединение считается разорванным, т.е. протокол TCP констатирует, что в данных условиях надежная связь невозможна. Таким образом, возможно установление надежного соединения при использовании ненадежных сервисов низкого уровня.

12.4. ПРОТОКОЛ UDP

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

DNS.

152

Рассмотрим теперь доменную систему имен DNS. Как уже было отмечено, каждый компьютер в сети имеет уникальный IP-адрес, но человек плохо запоминает числовые идентификаторы, гораздо лучше символьные имена. Поэтому каждому компьютеру можно присвоить имя и вместо IP-адреса указывать его имя. Первоначально так и было. Компьютерные сети были маленькие, и каждому компьютеру не представляло труда присвоить уникальное имя. Список соответствий имен и адресов хранился на каждом компьютере в файле /etc/hosts. Но даже уже тогда возникала проблема: при подключении к сети нового компьютера было необходимо обновить содержимое файла /etc/hosts на каждом компьютере, подключенном к данной сети, т.е. необходима централизованная система, обеспечивающая преобразование символьных имен в адреса. С другой стороны, когда количество компьютеров превышает даже сотню, уже трудно обеспечить уникальность имени.

В доменной системе имен имя компьютера имеет следующую структуру: name3.name2.name1, где частей namen может быть несколько. Каждая часть носит название домена, причем нумерация доменов производится справа налево, т.е. name1 – домен первого уровня, например, www.dozen.mephi.ru, здесь ru – домен первого уровня, mephi – домен второго уровня, dozen – домен третьего уровня, a www.dozen.mephi.ru целиком – доменное имя. Доменная система имен обеспечивает преобразование доменного имени в IP-адрес. DNS также обеспечивает множество других полезных функций, в частности, обратное преобразование IP-адрес – доменное имя.

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

Вопросы для самоконтроля

1.Перечислите основныеособенности протоколов IP, TCP и UDP.

2.Для чего предназначена доменная система имен?

3.Какой протокол необходимо использовать для пересылки файлов между компьютерами?

153

13. ИНСТАЛЛЯЦИЯ. ОСНОВНЫЕ ПРАКТИЧЕСКИЕ ПРИЁМЫ

13.1. УСТАНОВКА ОС UNIX

Рассмотрим процесс установки ОС UNIX. В качестве примера будем использовать Slackware Linux. Это один из самых первых дистрибутивов Linux. Версия не имеет значения, так как основные этапы установки во всех версиях стандартны. Прежде всего, необходимо получить дистрибутив ОС. Существует множество wwwсайтов, где можно получить указанный дистрибутив. Например, www.slackware.com. Пользуясь средствами FTP, последнюю версию дистрибутива Slackware можно получить по адресу: ftp://ftp.slackware.com/pub/slackware. Особенностью данного дист-

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

Итак, нам достаточно 32 Мбайт оперативной памяти (конечно, чем больше, тем лучше: система будет работать гораздо быстрее) и 500 Мбайт свободного пространства жесткого диска. На компьютере может быть установлена другая ОС, например WINDOWS, тогда надобность во вспомогательном компьютере отпадает.

13.2. СОЗДАНИЕ ДИСТРИБУТИВНОГО ДИСКА

Здесь нам понадобится компьютер c установленным MSDOS или WINDOWS. Конечно, и эту стадию можно выполнить в установленной UNIX-системе, но поскольку мы рассчитываем на неподготовленного пользователя UNIX, который устанавливает первую в своей жизни систему, то предполагаем, что ему недоступен компьютер с уже установленной версией UNIX, а WINDOWS или, на худой конец, MSDOS можно всегда найти. Если дистрибутив представлен набором CD, то эту стадию можно пропустить. Мы не приводим пример установки с загрузочных дискет, так как во всех

154

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

BIOS.

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

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

13.3. ПОДГОТОВКА ЖЕСТКОГО ДИСКА

Информация, записанная на жесткий диск, обычно структурирована следующим образом: в начале дискового пространства имеется главная загрузочная запись MBR, которая в своем составе содержит таблицу разделов. В этой таблице может содержаться информация не более чем о четырех разделах, которые носят название основных разделов. Запись о каждом разделе содержит среди прочего начальный адрес раздела, его размер, тип раздела и т.п. Каждый раздел может начинаться со своей загрузочной записи. Операционные системы DOS и WINDOWS позволяют создать только два раздела. Первый соответствует диску С:, а второй – расширенный раздел, в котором можно создавать логические диски

D:, Е: и т.д.

Для установки UNIX необходимо иметь две свободных записи в таблице разделов. Поскольку DOS и WINDOWS используют только две записи, то возможно мирное сосуществование двух ОС на одном компьютере. Возможны два варианта: первый – установка UNIX на чистый жесткий диск либо на новый компьютер, либо на

155

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

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

Итак, нам необходимо, по крайней мере, 500 Мбайт свободного пространства. Прежде всего необходимо убедиться в наличии этого пространства, так как использовать сжатие данных в этом случае нельзя. Необходима неиспользуемая область на каком-либо логическом диске. Например, диск Е: имеет размер 1 Гбайт, а содержит всего три файла, суммарный размер которых составляет 5 Мбайт. Лучше всего выделение этого пространства произвести с помощью удобных графических WINDOWS-программ, позволяющих менять размеры разделов без потери информации. (Все равно перед такой операцией необходимо создать резервные копии важных файлов на другом жестком диске или компьютере по сети.) Можно вручную сохранить информацию, содержащуюся на всех логических дисках расширенного раздела (диски D:, Е: и т.д.), например на другом компьютере по сети. Далее с помощью программы fdisk удалить расширенный раздел и создать новый меньшего размера, после чего в нем создать все логические диски. Выполнить обратное копирование сохраненных файлов. Существует вероятность, что после такой операции все файлы могут не поместиться на новых логических дисках меньшего объема. Лучше такие операции проводить под присмотром опытного пользователя или использовать новый диск для установки UNIX.

156

13.4. ЗАГРУЗКА С УСТАНОВОЧНОГО ДИСКА

Итак, место найдено или мы используем новый диск для установки UNIX. Устанавливаем в BIOS первым приоритетом загрузку с CD-ROM и перезагружаем компьютер, поместив в CD-ROM CD с дистрибутивом Slackware Linux. В ответ на приглашение загрузчика boot: можно просто нажать клавишу Enter. По умолчанию будет загружать ядро bare.i. Это ядро поддерживает большинство стандартного оборудования. Если загрузка не удалась, то можно повторно провести загрузку, указав после приглашения boot: необходимое ядро. Описание различных ядер и поддерживаемого ими оборудования всегда легко прочитать в электронной документации на дистрибутивных CD. В частности, при наличии USBконтроллера (например, клавиатура подключена по USB) необходимо использовать ядро usb.i.

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

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

13.5. СОЗДАНИЕ ДИСКОВЫХ РАЗДЕЛОВ

Для создания дисковых разделов (изменения и удаления существующих) используется команда fdisk. В качестве параметра ей необходимо передать имя специального файла устройства, соответствующего жесткому диску, на котором необходимо корректировать таблицу разделов. Например, /dev/hda – первый диск, подключенный к первому IDE-контроллеру (обычно жесткий диск), /dev/hdb – второй диск, подключенный к первому IDEконтроллеру, /dev/hdc – первый диск, подключенный ко второму IDE-контроллеру (чаще всего это CD-ROM) и т.п. Все имена специальных файлов устройств, подключенный посредством IDE-

157

контроллера будут иметь префикс hd. Аналогично файлы устройств SCSI-контроллера будут иметь префикс sd. Предположим, что планируется установить UNIX на IDE-диск. Если используются другие типы контроллеров, то всю необходимую информацию можно получить в электронной документации на дистрибутивных CD.

Для редактирования таблицы разделов первого жесткого диска, подключенного к первому IDE-контроллеру, необходимо ввести команду: fdisk /dev/hda. Еще раз предупреждаем, что если на этом диске уже есть другая ОС, то подобные манипуляции лучше проводить под присмотром опытного пользователя, сохранив при этом важные данные на другом диске/компьютере.

Команда fdisk выводит приглашение:

Command (m for help):

По команде m всегда можно получить список подкоманд команды fdisk. Первое, что нужно всегда сделать при работе с командой fdsik, это распечатать существующую таблицу разделов при помощи подкоманды p. Рекомендуется это сделать, даже если используется новый диск, чтобы убедиться в отсутствии разделов. На диске с установленной ОС это необходимо, чтобы еще раз убедиться в наличии свободного дискового пространства.

Теперь определимся с объемами разделов. Нам необходим основной раздел и раздел свопинга. Под раздел свопинга обычно отводят пространство, равное удвоенному объему оперативной памяти. Например, если объем ОП равен 128 Мбайт, то под раздел свопинга целесообразно выделить 256 Мбайт. При этом не следует забывать, что хотя бы 450 Мбайт должно остаться под основной раздел. Надеемся, что используется разумное соотношение объема ОП и жесткого диска, т.е. если объем ОП равен 128 Мбайт, то на жестком диске планируется выделить как минимум 1 Гбайт. Отметим, что опытные пользователи UNIX обычно выделяют более двух разделов, например, каталог /home, содержащий головные каталоги пользователей, занимает обычно отдельный раздел. Но мы для первого знакомства будем использовать только два раздела: корневой раздел (в нем будут размещены все традиционные ката-

логи UNIX: /usr, /home, /var и т.п.) и раздел свопинга.

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

158

ет указать из диапазона 1 – 4. Если используется новый диск, то номера разделов будут 1 и 2. Первый раздел корневой, раздел номер 2 для свопинга. Если на диске уже имеются разделы, используемые другой ОС, то следует использовать номера 3 и 4. Программа fdisk выдаст предупреждающее сообщение при попытке присвоить создаваемому разделу номер уже существующего раздела.

При создании раздела необходимо указать начальный и конечный цилиндры раздела. Причем система покажет рекомендуемый номер начального цилиндра (первый свободный цилиндр), с которым можно согласиться. Рекомендуемый номер конечного цилиндра – это всегда последний цилиндр. Поэтому, чтобы не осталось неиспользуемого пространства на диске, можно с этим номером согласиться при создании последнего раздела. (Раздела свопинга.) При создании корневого раздела вместо указания конечного номера цилиндра можно указать размер раздела, что гораздо удобнее. Для этого перед числом необходимо указать знак +, а после числа единицу измерения: М – мегабайт, Г – гигабайт. Система автоматически рассчитает номер конечного цилиндра. Поскольку раздел всегда должен занимать целое число цилиндров, то это значение будет округлено в большую сторону до конца очередного цилиндра.

После создания разделов они автоматически создаются с типом 83 – раздел Linux. Нам же для второго раздела нужно задать другой тип82 – разделсвопинга. Дляэтогоследуетиспользоватьподкомандуt.

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

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

# reboot

Рассмотрим пример создания разделов для нового диска. Предположим, что объем жесткого диска составляет 1 Гбайт=1024 Мбайт, а объем ОП – 64 Мбайт. В этом случае можно для корневого раздела выделить 896 Мбайт, а для свопинга — 128 Мбайт:

# fdisk /dev/hda

159

Command (m for help): p

Disk /dev/hda: 255 heads, 63 sectors, 131 cyl-

inders

 

 

Units = cylinders of 16065 * 512 bytes

Sys-

Device Boot Start End Blocks

Id

tem

 

 

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

Command (m for help): n Command action

e extended

p primary partition (1-4): p Partition number (1-4): 1

First cylinder (1-131): 1

Last cylinder or +size or +sizeM or +sizeK (1- 131): +896M

Command (m for help): n Command action

e extended

p primary partition (1-4): p Partition number (1-4): 2

First cylinder (116-131): 116

Last cylinder or +size or +sizeM or +sizeK (116-131): 131

Command (m for help): t Partition number (1-4): 2

Hex code (type L to list codes): 82 Command (m for help): p

Disk /dev/hda: 255 heads, 63 sectors, 131 cyl-

inders

 

 

 

 

Units = cylinders of 16065 * 512 bytes

Sys-

Device Boot

Start End Blocks

Id

tem

1 115

923736+

83

/dev/hda1

Linux

116 131

128520

82

/dev/hda2

Linux swap

 

 

 

 

Command (m for help): w

 

 

 

Command (m for help): q

 

 

 

 

160