Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS_PRAKTIKUM_osnovnoy.doc
Скачиваний:
51
Добавлен:
25.02.2016
Размер:
4.63 Mб
Скачать

2.Задание

  1. Зарегистрироваться в системе;

  2. В родительском каталоге пользователя просмотреть существующие файлы;

  3. Создать папку work1;

  4. Создать папку work2;

  5. Создать папку work3;

  6. Прейти в папку work1;

  7. Создать файл file1, содержащий строку текста с номером вашей группы;

  8. Добавить в созданный файл строку с названием вашей специальности;

  9. Создать файл file2, содержащий строку с текущей датой и временем;

  10. Объединить файлы file1 и file2 в файл file3;

  11. Скопировать файл file1 в файл file4;

  12. Переименовать файл file4 в файл file5;

  13. Скопировать файл file1 из каталога work1 в каталог work2;

  14. Переместить файл file3 из каталога work1 в каталог work2 с именем help;

  15. Скопировать все файлы, начинающиеся с буквы f из каталога work2 в каталог work3;

  16. Переместить папку work3 в папку work2;

  17. Удалить все файлы из каталога work3;

  18. Удалить каталог work2;

  19. Просмотреть содержимое родительского каталога;

  20. Установить маску создания новых файлов в режим:

  • Запись и чтение для пользователя;

  • Чтение для группы;

  • Нет доступа для остальных пользователей.

  1. Создать файлы file6 и file7;

  2. Проверить правильность работы команды umask, для чего просмотреть содержимое каталога;

  3. Установить права доступа к файлу file6 : go+r;

  4. Установить права доступа к файлу file7, аналогично файлу file6, но используя абсолютную установку;

  5. Просмотреть содержимое каталога;

  6. Установить доступ к каталогу work1 в режим чтение и запись для всех пользователей системы.

  7. Показать работу преподавателю.

Содержимое отчета

  1. Цель ПЗ.

  2. Записать команду просмотра содержания текущего каталога.

  3. Записать команду для создания подкаталога в домашнем (рабочем) каталоге.

  4. Как удалить каталог.

  5. Записать команды для удаления файла, переименования файла, копирования файла.

  6. Как вывести содержимое файла на экран.

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

Лабораторная работа №17

Назначение учётных записей пользователей. Администрирование

Цель работы: Получить навыки создания, удаления и управления пользователями и группами в ОС Linux.

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

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

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

  • заведение новых пользователей;

  • распределение пользователей по группам;

  • задание прав и полномочий для нового пользователя;

  • установление для него квот;

  • блокирование, при необходимости, бюджета пользователя.

Рассмотрим кратко хотя бы основные из этих задач.

Для начала надо отметить, что список всех известных системе пользователей находится в файле /etc/passwd. Каждая строка этого файла соответствует одному пользователю и состоит из семи полей, разделенных двоеточиями:

  • регистрационное имя пользователя;

  • зашифрованный пароль;

  • UID (идентификатор пользователя);

  • GID (идентификатор группы);

  • информация о пользователе (обычно полное имя, должность и телефоны);

  • домашний каталог пользователя;

  • регистрационный shell.

С точки зрения системы поля GID и информация о пользователе не имеют никакого значения, а имя пользователя используется только на этапе входа пользователя в систему (логировании). Дальше система идентифицирует пользователя по его UID. Идентификатор группы включается в этот файл только по традиции, потому что включение пользователей в различные группы определяется теперь файлом /etc/group. Второе поле каждой строки тоже уже не содержит зашифрованного пароля, теперь в этом поле стоит просто звездочка (*), а зашифрованные пароли переместились в файл /etc/shadow. Дело в том, что с увеличением производительности компьютеров появилась возможность определять открытый пароль по зашифрованному методом простого перебора всех возможных комбинаций символов. А поскольку файл etc/passwd доступен по чтению всем пользователям, безопасность многопользовательской системы ставится под удар. Файл же /etc/shadow доступен только суперпользователю, что уменьшает, если не снимает совсем, эту угрозу.

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

  • занесение информации в файл /etc/passwd;

  • задание исходного пароля для нового пользователя;

  • создание для него домашнего каталога;

  • копирование в этот каталог стандартных вариантов файлов запуска;

  • установка адреса электронной почты и почтовых псевдонимов;

  • включение пользователя в необходимые группы;

  • установка квот и ограничений.

Добавление учетной записи пользователя

Конечно, можно все эти этапы выполнять и вручную, но все же проще и удобнее воспользоваться имеющимися в системе специальными программными средствами. Заводить в системе нового пользователя удобнее всего командой useradd. Однако перед тем, как заводить пользователя, надо подготовить типовые файлы конфигурации, которые используются при вводе новых пользователей, и располагаются в каталоге /etc/skel. Один полезный совет: не заводите много новых пользователей, пока вы не настроили конфигурационные файлы и не поместили образцы в /etc/skel/*. И сразу после того, как вы отредактировали какой-то конфигурационный файл, скопируйте его в /etc/skel/.

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

  • данные о пользователя (имя и т.д.), записываемые в поле комментария в файле /etc/passwd (опция -c);

  • имя или номер группы, к которой будет отнесен пользователь (опция –g);

  • список групп, в которые будет включен данный пользователь (опция –G);

  • UID пользователя, назначаемый вместо UID, задаваемого системой (опция –u);

  • какая оболочка назначается пользователю (опция –s)

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

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

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

Каждый пользователь может быть включен в произвольное число групп. Включение пользователя в различные группы может быть осуществлено путем "ручного" редактирования файла /etc/group суперпользователем, а может быть выполнено с помощью команд groupadd и groupmod.

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

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

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

Команда sg аналогична команде su, но используется для смены группы. Доступ предоставляется в том случае, если пользователь является членом указанной группы. В результате выполнения этой команды все вновь созданные файлы и запускаемые процессы получат новый идентификатор группы.

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

  • /etc/issue — сообщение, выдаваемое системой до приглашения "login:";

  • /etc/motd — сообщение, выдаваемое системой после входа пользователя в систему.

Если вы хотите сделать эти сообщения более приветливыми, можете немного подкорректировать их. После корректировки можно переключиться в другую консоль и несколько раз войти в систему и выйти из нее, чтобы насладиться плодами своего труда. Но учтите, что скрипт /etc/rc.d/rc.local может перезаписывать файлы /etc/issue и /etc/motd при каждом перезапуске системы (у меня, например, RedHat перезаписывает файл /etc/issue и не трогает /etc/motd). То есть корректировать, возможно, надо не сами эти файлы, а скрипт /etc/rc.d/rc.local.

Удаление учетной записи пользователя - процесс, обратный ее созданию. Удаление производится командой userdel. К счастью, по сравнению с командой useradd, ее применение гораздо проще. Чтобы удалить учетную запись с удалением соответствующих записей из системных файлов (например, из файла /etc/passwd), введите команду с именем пользователя в качестве аргумента.

# /usr/sbin/userdel username

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

# /usr/sbin/userdel -r username

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

# fitad / -type f -uid 503 -print -exec rm {} \;

Разобьем эту команду на составляющие.

  • Косая (/) указывает, что поиск ведется по всей структуре каталогов, начиная с верхнего уровня.

  • Параметр -type f указывает, что ведется поиск только файлов.

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

  • Параметр -print указывает на необходимость вывода имен файлов по мере их обнаружения для отслеживания выполнения команды.

  • Параметр -exec rm {} \ указывает, что при обнаружении каждого файла должна выполняться команда rm для его удаления.

Предупреждение

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

Управление группами

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

Примечание

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

Создание группы

Новая группа создается командой groupadd (в некоторых дистрибутивах - addgroup). Чтобы создать группу, введите эту команду с именем создаваемой группы в качестве аргумента.

# /usr/sbin/groupadd groupname

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

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

# groupadd -g 503 groupname

В файле /-etc/group должна появиться следующая запись:

groupname: :503: означающая пустую группу с идентификационным номером 503.

Примечание

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

Добавление пользователя в группу

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

groupname::password:groupid:userlist

Элементы этой строки следующие.

  • groupname — имя группы.

  • password - зашифрованный пароль группы. (Поскольку пароль для доступа к группам не применяется, обычно здесь нет никакой записи.)

  • groupid - уникальный идентификационный номер группы.

  • userlist - список пользователей группы, перечисленных через запятую.

Например, если в группу groupl с идентификационным номером 505 входят пользователи userl,user2 и user3, то строка этой группы в файле /etc/group будет следующей.

groupl::505:userl,user2,user3

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

Удаление группы происходит по команде groupdel. Это совсем простая команда без каких-либо флажков. Единственный параметр - имя удаляемой группы.

# /usr/sbin/groupdel groupname

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

Файлы, принадлежавшие удаленной группе, не удаляются и не передаются другой группе.

Если для некоторого пользователя группа первична (то есть, именно она указана как группа этого пользователя в файле паролей), ее нельзя удалить.

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

# find / -type f -gid 503 -print -exec chgrp newgroupname {} \;

По этой команде находятся все файлы, принадлежавшие группе с идентификационным номером 503, и при помощи команды chgrp передаются группе newgroupname.

Задание

  1. Зарегистрироваться в системе как root.

  2. Создание пользователя user1 с помощью редактирования необходимых файлов:

  • Присвоить ему идентификатор пользователя – 101;

  • Определить создаваемого пользователя в группу users по соответствующему идентификатору группы и с соответствующей записью в файлах passwd и group;

  • В поле комментария указать номер вашей группы;

  • Начальный каталог определить по имени пользователя;

  • В качестве начальной команды выбрать команду запуска командного интерпретатора, используемого в системе по умолчанию;

  • Задать пароль пользователю;

  • Сконфигурировать или переписать необходимые файлы командного интерпретатора для корректного входа в систему;

  • Дать полное право владения файлами и каталогами создаваемому пользователю;

  • Зарегистрироваться под созданным пользователем в системе в новом терминале.

  1. Создать пользователя user2 используя утилиты ОС Linux. Проверить корректность работы утилиты путём просмотра и, при необходимости, редактирования файлов passwd и group .Зарегистрироваться под созданным пользователем в новом терминале.

  2. Создать группу programmers отредактировав файл конфигурации групп.

  3. Создать группу programmers2 с помощью утилит ОС Linux.

  4. Определить во вновь созданные группы пользователя user1, а пользователя user2, только в группу programmers2.

  5. При помощи утилиты ОС Linux сменить группу для пользователя user1 с users на programmers и с programmers на programmers2.

  6. При помощи утилиты ОС Linux сменить группу для пользователя user2 с users на programmers и попытаться сменить группу с programmers на programmers2 (если работа выполнена верно, то будет отказано в доступе).

  7. С терминала пользователя user1 при помощи утилиты ОС Linux su получить права пользователя root, а затем пользователя user2.

  8. Показать работу преподавателю.

  9. Удалить созданные группы и пользователи.

Контрольные вопросы.

  1. С помощью каких команд создаются пользователи и группы в системе?

  2. Какими правами должны обладать пользователь root и остальные пользователи к файлам passwd и group?

  3. Как работает утилита su?

  4. Как сменить группу пользователю, если он относится к нескольким группам зарегистрированным в системе?

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

Лабораторная работа №18

Подключение и конфигурация устройств в операционной системе Linux. Установка программ и компонентов в операционной системе Linux

Цель работы: Получить навыки подключения и конфигурирования устройств, установки программ и компонентов в ОС Linux.

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

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

Plug and Play представляет собой технологию самоконфигурирования, призванную автоматически обнаруживать и конфигурировать подсоединенные к компьютеру устройства. Полностью соответствующая требованиям РпР система включает четыре разновидности компонентов: PnP BIOS, материнская плата РnР, PnP-устройства, и операционная система РnР.

Большинство современных BIOS и устройств удовлетворяют требованиям самоконфигурирования Plug and Play. Если у вас к тому же и материнская плата РпР, то BIOS установит каналы, порты и адреса для таких устройств, как накопители, мышь и клавиатура. Это конфигурирование завершается еще до начала загрузки операционной системы. Linux может использовать эти каналы для обнаружения и распознавания аппаратуры компьютера с разной степенью достоверности. Успех распознавания в частности зависит от типа устройства.

Технология самоконфигурирования Plug and Play устанавливает связь между устройствами и базовыми компонентами компьютера, такими как процессор и оперативная память. Устройства компьютера обмениваются, используя различные каналы, адреса и порты:

- IRQ (Запросы прерываний). Устройства могут использовать IRQ-порты запросов прерываний, чтобы получить доступ к процессору.

- I/O (Ввод-вывод) . Для обмена между отдельными компонентами компьютера необходимо место в адресном пространстве. Это место определяется адресами ввода-вывода (I/O).

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

Типы используемых устройствами каналов, адресов и портов зависят от типов устройств и способа подключения этих устройств к компьютеру. Если у вас возникают сложности с такими устройствами, как модем или акустический адаптер, то вполне вероятной причиной может служить попытка системы Linux использовать несоответствующие данному устройству IRQ-порт, I/O-адрес или DMA-канал.

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

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

Интерфейсный стандарт Peripheral Component Interconnect (PCI) был разработан, в частности, с целью преодоления ограничений стандарта ISA. Шина PCI обладает большим быстродействием, и PCI-устройства могут совместно использовать отдельные IRQ-каналы. Некоторые РпР BIOS в своих настроечных меню предусматривают возможность задания IRQ, I/O и DMA-каналов для отдельных PCI-устройств.

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

Исключением из этого правила являются внешние устройства с интерфейсом USB.

Шина Universal Serial Bus (USB) не является в полном смысле внешним интерфейсом компьютера. Каждый USB-хаб теоретически может обслуживать до 127 отдельных периферийных устройств. USB поддерживает технологию самоконфигурирования Plug and Play и "подключение на лету", т. е. возможность подсоединять устройства к компьютеру (и отсоединять их от него) без выключения компьютера. Операционная система автоматически распознает новую конфигурацию.

К сожалению, система Linux корректно поддерживает не все разновидности USB-устройств, Хотя некоторые версии системы Linux поддерживают широкий спектр разновидностей USB-устройств, в него не входят, например, сетевые USB-карты. Linux плохо работает с пассивными USB-хабами и не поддерживает загрузку с USB-накопителей на дискетах. Но работу над проблемой поддержки USB-устройств в среде системы Linux продолжают многие разработчики.

Модемы относятся к тому типу периферийных устройств, установка которых в Linux не составляет никакого труда. Обычно, Linux использует Plug-and-Play характеристики модема, чтобы, автоматически его сконфигурировать. Как правило, для установки внешнего модема достаточно подключить его к свободному последовательному порту, установка встроенного - немного сложнее.

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

Большинство последних дистрибутивов Linux поддерживают USB-мышь и USB-клавиатуру. В значительной мере такая поддержка была реализована в разных Linux-дистрибутивах даже до появления ядра Linux Kernel 2.4. Оба устройства и идентифицируются как интерфейсные USB-устройства для обмена с человеком: USB Human Interface Devices (HID).

Ядро Linux, начиная с версии 2 .2.7, поддерживает USB-устроиства. для надежного обслуживания USB необходимо ядро версии 2.2.18 или 2.4.2 либо более позднее.

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

Для начала выполните проверку сообщений ядра с помощью команды dmesg | less. Просмотрите сообщения и попытайтесь найти информацию, касающуюся загрузки USB или USB-устройств. Если ничего похожего нет, попытайтесь разобраться с изменениями в файле /proc/bus/ usb/devices. Время и дату последних изменений можно получить командой ls -l /proc/bus/ usb/devices.

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

# mount -t usbdevfs none /proc/bus/usb

Если все установлено корректно, то USB обеспечивает поддержку нескольких манипуляторов мышь. Linux может сконфигурировать все USB-мыши с помощью одного драйвера /dev/ input/ mice. Если ваш дистрибутив Linux не распознал USB-мышь (или несколько мышей) в рамках описанной ранее процедуры, внесите необходимые изменения в ядро Linux. Если для этого вы хотите добавить модули, убедитесь в том, что среди прочих используется и модуль mousedev. о.

Если указанный драйвер мыши не существует, его необходимо создать. Создайте при необходимости каталог /dev/input, затем создайте узловое USB-устройство с помощью следующей команды:

# mknod /dev/input/mice с 13 63

Если вы предполагаете использовать USB-мышь или несколько мышей с X Window, то вам придется добавить конфигурационные данные об этих устройствах в соответствующий конфигурационный файл XF86Config. Для стандартной USB-мыши можно добавить следующий раздел InputDevice:

Section "InputDevice"

Identifier "USB Mice"

Driver "mouse"

Option "Protocol" "IMPS/2"

Option "Device" "/dev/input/mice"

EndSection

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

InputDevice "USB Mice" "CorePointer"

Если используется также обычная (не-USB) мышь, необходима еще одна строка Input-Device:

InputDevice "USB Mice" "SendCoreEvents"

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

Необходимость в установке новых программных пакетов под LINUX возникает в двух основных случаях:

- когда появляется новая версия одного из уже установленных у вас пакетов;

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

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

Для дистрибутивов существует две основных формы распространения ПО: в исходных текстах и в виде исполняемых модулей. В первом случае пакет ПО обычно поставляется в виде tar-gz архива, во втором случае — в виде пакета (но это не обязательно, исполняемые модули также могут распространяться в виде tar-gz-архива).

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

Если пакеты с необходимым вам программным обеспечением нужно еще поискать (и не всегда можно найти), то tar-gz-архив любого ПО для Linux найдется в Интернете непременно. В некоторых случаях такие архивы содержат исполняемые модули приложений. Тогда установка приложения лишь немного сложнее, чем в случае установки из пакета: необходимо просто развернуть архив с помощью программ gunzip и tar, перейти в созданный каталог и можно уже запускать полученное приложение. Но чаще всего приложения поставляются в исходных текстах, т. е. в виде программы на языке Си. Установить их в этом случае немного сложнее, хотя и тут нет ничего невозможного даже для начинающего пользователя. Давайте рассмотрим, как это делается.

Начать стоит с того, что операционная система UNIX родилась на свет одновременно с языком программирования C (Си). Более того, язык C был создан специально для разработки этой ОС, значительная часть UNIX была написана на языке С. ОС Linux тоже написана на Си. Поэтому, а также в соответствии с принципом свободного распространения исходных кодов, многие приложения для Linux распространяются в виде текстов на С (а в последнее время — и на С++). Естественно, что для установки и запуска такого приложения на исполнение, его необходимо предварительно скомпилировать. Для выполнения процедур компиляции обычно используется программа gcc (хотя существуют и некоторые альтернативные разработки).

GNU-компилятор с языка С gcc, содержит в себе 4 основных компонента, соответствующие четырем этапам преобразования исходного кода в исполняемую программу.

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

В большинстве случаев выполнение этой последовательности команд достаточно для установки нового пакета.

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

Задание.

Провести процесс инсталляции пакета:

  1. Перейти (с помощью команды cd) в каталог, содержащий исходные коды устанавливаемого пакета.

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

  3. Выполнить команду make, для того, чтобы скомпилировать пакет.

  4. После этого можно выполнить (это шаг не является обязательным) команду make check, которая вызывает запуск процедур самотестирования, которые поставляются с пакетом.

  5. Выполнить команду make install для установки программ, а также файлов данных и документации.

  6. Заключительный этап состоит в выполнении команды make clean, которая удаляет промежуточные объектные и двоичные файлы из каталога с исходными кодами. Для удаления временных файлов, которые создала команда configure (после чего пакет можно компилировать для другого типа компьютеров), надо выполнить команду make distclean.

Контрольные вопросы.

  1. Что представляет собой технология Plug and Play?

  2. Перечислите 4 основных компонента GNU-компилятора.

3. Когда возникает необходимость в установке новых программных пакетов под LINUX?

Лабораторная работа №19

Использование в работе системы X Window. Конфигурирование рабочих столов Linux.

Цель работы: Получить навыки работы с системой X Window и конфигурирования рабочих столов Linux.

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

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

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

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

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

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

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

Можно заметить (судя по приведенному выше описанию), что X Windows и Microsoft Windows достаточно похожи. На самом деле это две принципиально различные системы.

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

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

Существует множество различий между двумя оконными системами. Основные различия таковы:

- гибкость интерфейса;

- настройка управления конфигурацией интерфейса;

- технология клиент-сервер.

Гибкость интерфейса X Windows - одна из прелестей многопользовательской среды. Уже упоминалось, что разделение интерфейса на 2 уровня - пользовательский и базовый, позволяет создавать множественные интерфейсы для X Windows посредством разработки различных диспетчеров окон.

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

Эти примеры иллюстрируют только две из многих возможностей диспетчеров окон X Windows.

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

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

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

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

Отсутствие такой возможности в Microsoft Windows обнаружилось совсем недавно. Теперь модель "клиент-сервер" реализована лишь в некоторых режимах многопользовательских систем Windows NT и 2000. В мире Linux, Unix и X даже малопроизводительные компьютерные системы способны выполнять функции клиента или сервера в системе "клиент-сервер" X Windows.

Ядром X Windows системы является X сервер. Он выполняет следующие задачи:

- поддержка различных типов видеоадаптеров и мониторов;

- управление разрешением, частотой регенерации и глубиной цвета изображения;

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

Существует множество X серверов, реализующих эти возможности. Для Linux наиболее часто используются XFree86, Metro-X и Accelerated-X.

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

Рабочий стол - это больше, чем диспетчер окон. Рабочий стол должен обеспечивать полный интерфейс GUI. При использовании простого диспетчера окон нет гарантий "мирного сосуществования" методов отображения/управления приложения и соответствующих возможностей другой операционной системы (например, метод "перенести-и-оставить" (drag-and-drop) между приложениями или внедрение данных из одного приложения в другое).

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

Два рабочих стола - К Desktop Environment и GNOME - свободно распространяются и позиционируются как конкуренты рабочего стола Linux, являющегося стандартом de facto.

Задание:

С помощью Панели управления настроить:

- принтер и системы печати;

- аутентификацию (параметры входа в систему);

- сети и сетевых устройств;

- удаленного доступа к сети;

- оборудования.

Контрольные вопросы.

    • Что представляет собой X Windows?

    • Перечислите преимущества X Windows.

    • Что представляет собой Х сервер? Какие задачи он выполняет?

Лабораторная работа №20

Использование приемов работы в сети. Управление процессами

Цель работы: Получить навыки работы и управления процессами в ОС Linux.

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

Первым делом необходимо определить, какие процессы в системе запущены. Для этого в Linux (как и во всех UNIX-системах) имеется команда ps. Если ее запустить без всяких параметров, то она выдает список процессов, запущенных в текущей сессии. Если вы хотите увидеть список всех процессов, запущенных в системе, надо задать ту же команду с параметром -ax.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]