Лаб_СПО_10

advertisement
Лабораторная работа №10
Установка виртуальной машины и инсталляция ОС семейства
UNIX. Изучение команд для работы с файловой системой ОС
семейства UNIX
Цель: изучить работу с виртуальными машинами, установку ОС
семейства UNIX и основные команды для работы с файлами и каталогами.
1. Общие положения
1.1. Способы работы с программами разных операционных систем на
одном компьютере
Способ №1: многовариантная загрузка
Это самый распространенный способ (до недавнего времени) решения
проблемы, который использует подавляющее большинство пользователей.
Жесткий диск компьютера разбивается на несколько разделов и на каждый из
них устанавливается своя операционная система и программы для нее. Кроме
того, настраивается менеджер многовариантной загрузки, позволяющий
выбрать операционную систему при загрузке компьютера. При таком
подходе невозможно одновременно работать с приложениями разных
операционных систем и для смены операционной системы необходимо
перезагрузить компьютер. Зато операционные системы и их приложения
исполняются без потерь в скорости и надежности. Если операционные
системы совместимы по типу файловой системы, то возможно создание
общего раздела для обмена файлами между ними.
Способ №2: эмуляция API операционной системы
Обычно приложения работают в изолированном адресном
пространстве и взаимодействуют с оборудованием при помощи API,
предоставляемым операционной системой. Если две ОС совместимы по
своим API (например, Windows ХР и Windows 2000), то приложения,
разработанные для одной из них, будут работать и на другой. Если две
операционные системы несовместимы по своим API (например, Windows
2000 и Linux), то существует способ перехватить обращения приложений к
API и сымитировать поведение одной операционной системы средствами
другой операционной системы.
При таком подходе можно поставить одну операционную систему и
работать одновременно как с ее приложениями, так и с приложениями
другой операционной системы. Поскольку весь код приложения исполняется
без эмуляции и лишь вызовы API эмулируются, потеря в производительности
незначительная. Но из-за того, что многие приложения используют
недокументированные функции API или обращаются к операционной
системе в обход API, даже хорошие эмуляторы API имеют проблемы
совместимости.
Способ №3: виртуальная машина эмулирует реальное аппаратное
обеспечение
Концепция виртуальной машины доводит подход, основанный на
уровнях абстракции, до своего логического завершения. Согласно данной
концепции, совокупность аппаратуры и ОС трактуется как аппаратура
(машина).
Виртуальная
машина
предоставляет
интерфейс,
полностью
аналогичный интерфейсу обычной машины без базового программного
обеспечения.
Идея естественной виртуализации: поверх аппаратного уровня
(физический сервер) располагается уровень монитора виртуальных машин
VMM (гипервизор). Гипервизор полностью эмулирует компьютер, и
способен поддерживать выполнение более чем одной операционной системы.
На VMM выполняются так называемые гостевые операционные системы
(guest OS) виртуальных машин, непосредственно поддерживающие работу
приложений.
Рисунок 1 - Модели ОС без использования виртуальных машин и на основе
виртуальных машин
Платформа VirtualBox представляет собой настольную систему
виртуализации для Windows, Linux и Mac OS хостов, поддерживающую
операционные системы Windows, Linux, OS/2 Warp, OpenBSD и FreeBSD в
качестве гостевых.
1.2. Краткая характеристика ОС семейства UNIX
ОС UNIX является одной из наиболее распространенных
операционных систем современных компьютеров. Своим поразительным
долголетием UNIX обязана таким качествам, как хорошо продуманная
логическая организация, возможность достаточно простого переноса на
компьютеры с другой архитектурой, а также доступность исходных текстов
системы (по крайней мере в ранний период развития UNIX).
В начале 90-х годов Линус Торвальдс заново написал основную часть
операционной системы, соответствующей спецификациям UNIX. Новая
система, ориентированная прежде всего на архитектуру процессоров Intel,
получила название Linux. Хотя внутренняя организация Linux отличается от
ранее известных версий UNIX, с точки зрения использования это
практически одна и та же операционная система, но при этом Linux
отличается высокой надежностью и неплохой производительностью.
Возобновление традиции свободного распространения исходных текстов
привлекает к Linux дополнительный интерес.
Далее, если не оговорено иное, под термином UNIX будет пониматься
также и Linux.
ОС
Linux
это
многопользовательская,
многозадачная,
многотерминальная операционная система (OC) из семейства UNIX, под
управлением которой могут одновременно выполняться несколько задач. Она
предназначена для работы на серверах и рабочих станциях, обеспечивает
подключение дополнительных терминалов и допускает этом режиме
использование графических оболочек.
UNIX-сеpвеpы предназначены для хранения и обработки больших
объемов информации. Особенно эффективно использование UNIX-серверов
при распределенной обработке данных. Для этого разработаны системы
распределенных вычислений в соответствии со стандартом CORBA. К таким
системам относятся системы управления базами данных (СУБД типа Oracle,
Informix), файл-серверы, FTP-серверы, WWW-серверы и др., которые
поддерживаются ОС Linux. В распределенных системах информация может
находиться на различных рабочих станциях, различных дисках, программные
модули могут функционировать на различных компьютерах, но система
работает таким образом, что это составляет единое целое. При обработке
больших объемов информации используется технология клиент - сервер, при
которой пользователь работает только с той информацией, которая ему
необходима. Развитием технологии клиент - сервер является технология
интеллектуальных агентов.
ОС Linux является сетевой операционной системой для 32-х или 64-х
разрядных платформ. Она обеспечивает маштабируемость в диапазоне от
игровых приставок (Sony Play Station) до кластерных серверов Internet.
ОС Linux не связана с конкретной моделью компьютеров. Её ядро
реализовано на языке высокого уровня (языке СИ), что позволяет достаточно
легко переносить эту систему с одной платформы на другую. Система
распространяется по лицензии GNU либо подобным свободным лицензиям,
обеспечивается как коммерческое, так и свободное сопровождение через
Internet. Поставка исходных модулей системы обеспечивает возможность
адаптации прикладных программ в случае перехода на другую платформу и
дает возможность контроля кодов, реализующих несанкционированный
доступ. В разработке системы приняло участие большое количество
специалистов, зарегистрировавших свои авторские права, что дает гарантии
ее немонополизации.
Подключение персональных компьютеров (ПК) в вычислительную сеть
с UNIX - серверами может осуществляться по протоколу TCP/IP, при этом
пользователи получают следующие возможности:
1) использование UNIX-сервера, как файл - сервера;
2) эмуляция на ПК удаленного терминала (режим TELNET);
3) организация системы клиент - сервер (рабочая станция формирует
SQL - запросы, сервер их обрабатывает);
4) непосредственный обмен файлами между ПК по протоколу FTP;
5) организация распределенных вычислений по стандарту CORBA.
Все действия в ОС UNIX оформлены как процессы. Процесс
представляет собой совокупность выполняемых программ или одну
выполняемую программу, которые вызываются при исполнении системной
команды. Процесс может породить один или несколько других процессов,
которые могут выполняться параллельно. ОС Linux поддерживает
многопроцессорную архитектуру для параллельного выполнения процессов.
Работа в консоли —самый быстрый и удобный интерфейс для решения
ряда задач. Независимо от того, какой дистрибутив используется, базовые
команды будут одни и те же. Нельзя забывать и о том, что текстовый режим
устойчивее графического.
Поскольку графический интерфейс Linux — это по сути дела обычная
прикладная программа, то ее неработоспособность не приводит к общему краху
системы. Если пользователь не боится текстового режима, то он быстро внесет
необходимые изменения в соответствующий конфигурационный файл и заново
запустит систему. В противном случае придется прибегнуть к полной ее
переустановке, что значительно дольше.
Перейти в режим командной строки можно двумя способами. Первый —
активация текстовой консоли. Для этого следует нажать комбинацию клавиш
Ctrl+Alt+F[номер консоли]. Появится строка приглашения на регистрацию в
системе, где нужно последовательно набрать логин и пароль. Второй способ —
открытие консоли непосредственно в оконном менеджере. При этом
пользователь продолжает работать в графическом режиме. Важно понимать,
что и в первом, и во втором случаях все запущенные программы будут
продолжать нормально функционировать.
Для переключения текстовых консолей нужно нажимать не
Ctrl+Alt+F[номер консоли], а просто Alt+F[номер консоли] — клавиша Ctrl
применяется только в графическом режиме.
При работе в текстовом режиме визуальный маркер начала строки может
быть двух видов:

знак диеза (#)- указывает на то, что пользователь
работает под именем root и ему открыты все файлы системы. В
этом случае необходимо проявлять особую осторожность —
необдуманные действия чреваты серьезными последствиями

знак доллара ($) - обычный пользователь. Концепция
ограничения прав доступа приводит к тому, что некоторые
команды, выполнение которых подразумевает расширенные
полномочия, откажутся запускаться. Причем специфика UNIX
такова, что никаких подсказок или пояснений на экране не
появится — предполагается, что человек полностью контролирует
систему и нисколько не нуждается в помощи программ, от которых
требуется только беспрекословное выполнение распоряжений
хозяина.
Пользователи часто сетуют на то, что работа в командной строке
связана с повышенной нагрузкой на память - приходится держать в голове
все названия служебных утилит. Это не совсем так — в большинстве случаев
достаточно знать лишь несколько первых символов. По нажатии клавиши
Tab оболочка сама попытается дописать полное название команды (или
предложить варианты, если таковые имеются)
Пользовательские оболочки Linux принято делить на две категории:
оконные менеджеры и интегрированные графические среды. Первые
предоставляют потребителю только механизм управления визуальными
объектами, тогда как вторые включают в себя дополнительное ПО. XWindow
(именно Window, а не Windows: обратите на это внимание) — графическая
среда для UNIX-систем. В ее основу легла клиент-серверная модель, только
реализована она в пределах одной рабочей станции. Для передачи данных
используется специальный протокол сетевой связи (X Network Protocol).
1.3. Установка виртуальной машины и инсталляция ОС семейства
UNIX
Существует большое количество реализаций виртуальных машин.
1.1. Необходимо задать параметры виртуальной машины (размер
оперативной памяти, жесткого диска, наличие CD дисков и т.д.)
способ и источник загрузки ОС.
Процесс установки виртуальной машины описывается для программы
VMware Player.
После запуска программы появляется окно управления виртуальными
машинами.
1.
Нажимаем кнопку Create a New Virtual Machine.
2.
Выбираем пункт Installer disc image file (iso), выбираем ISOобраз с установочным диском и нажимаем открыть.
3.
Нажимаем кнопку Next.
4.
Нажимаем кнопку Next, вводим имя виртуальной машины и
выбираем место расположения виртуальной машины на диске.
5.
Нажимаем кнопку Next, вводим максимальный размер и
выбираем тип хранения виртуальной машины: одним файлом или
несколькими. Нажимаем кнопку Next.
6.
Нажимаем кнопку Finish.
7.
Виртуальная машина установлена. Нажимаем на кнопку Play
Virtual Machine.
8. Появляется окно загрузки операционной системы
9. После непродолжительной загрузки система готова к использованию.
1.4. Команды ОС семейства UNIX для работы с файловой системой
Принятые обозначения
Формат команд в ОС UNIX следующий:
имя команды [аргументы] [параметры] [метасимволы]
Имя команды может содержать любое допустимое имя
файла; аргументы - одна или несколько букв со знаком минус (-);
параметры - передаваемые значения для обработки; метасимволы
интерпретируются как специальные операции.

В квадратных скобках [] указываются необязательные
части команд.

Аргумент –l - «минус буква ЭЛ».

1.4.1. Получение справки
Команда
man файл
где файл - команда, программа, конфигурационный файл или
библиотечная функция, по которой требуется получить справку. Справочник
man состоит из нескольких разделов:
1: Команды пользователя
1M: Команды для системного администрирования
2: Системные вызовы
3 (3B,3S,...): Библиотечные функции
4: Форматы файлов
5: Заголовки, таблицы, макросы, разное
6: Демонстрации
7: Интерфейсы устройств и сети
При упоминании какой-либо команды, функции или системного файла
в литературе по Unix часто в скобках указывается номер раздела справочника
man, например: "команда ls(1) предназначена для вывода списка файлов".
Как правило, man сам находит раздел с требуемой справкой, просматривая
все разделы по очереди, поэтому для получения справки по команде ls
достаточно ввести
man ls
Управление скролингом текста:

<пробел> - страница вниз

<Enter> - строка вниз

<Ctrl>+B - страница вверх

/word - поиск слова word

q - выход
Однако иногда требуемый термин может находиться сразу в
нескольких разделах (printf - команда и библиотечная функция); в этом
случае man выдаст документ из первого найденного раздела. Следующие
ключи используйте для получения справки по команде printf :
 -s раздел – для получения документа из другого раздела;
 -l – для получения списка разделов, в которых встречается
требуемый термин;
 -a – дает указание вывести все найденные справки из всех
разделов друг за другом.
Обращайте внимание на номера разделов (они указываются в
заголовке каждой страницы).
Выполните:
man printf
1.4.2. Изучение файловой системы
Команда
pwd
выводит полное имя текущего каталога (в котором вы находитесь).
Команда
ls
выводит список файлов текущего каталога.
Команда
ls –l
выводит список файлов с их атрибутами. «минус буква ЭЛ».
Информация о файле предоставляется пользователю в следующем
формате:
ABBBBBBBBB
Символ
A
C DDDD
Информация
Тип файла
EEEEEEEE
FFFFF GGGGGGGGGGGG HHHHH
Дополнительно
обычный файл;
d
каталог (фактически, каталог - это
специальный файл, в котором перечислены
файлы этого каталога);
l
символическая
связь
(файл,
содержащий имя другого файла - является
ссылкой на этот файл; подробности ниже в
команде ln);
c
символьное устройство (устройство, с
которым
операции
чтения-записи
производятся побайтно);
b
блочное устройство (операции чтениязаписи буферизуются). Некоторые устройства
являются только символьными (например,
последовательный порт), а некоторые
Символ
Информация
Дополнительно
представлены в обоих вариантах (например,
диск).
p
конвейер (pipe; программный канал,
организованный в виде очереди, для передачи
данных между двумя процессами).
B
Права
на Следующие после типа файла 9 символов
представляют собой права на использование
использование
файла: первая тройка символов - для
файла
пользователя-владельца файла, вторая - для
группы-владельца, третья - для всех
остальных. Наличие буквы в каждой тройке
означает наличие соответствующего права:
для обычных файлов:
r - право на чтение содержимого файла
w - право на изменение содержимого
файла
x - право на исполнение (запуск) файла
для каталогов:
r - право на получение списка файлов
каталога
w - право на создание и удаление
файлов в каталоге
x - право на "поиск" в каталоге
Набор прав --x для каталога позволяет войти
в него и прочитать файл, имя которого
заранее известно (при условии наличия прав
чтения этого файла). Можно также
выполнить команды ls и ls -l для этого файла.
При этом получить список файлов (ls (-l) для
каталога), а также создать или удалить файл
нельзя.
Право r-- для каталога позволяет произвести
чтение каталога, то есть получить список
имен его файлов. При этом ни войти в
каталог, ни узнать атрибуты файлов (ls -l), ни
прочесть файл (даже при наличии прав
чтения этого файла) нельзя. Создать или
удалить файл, естественно, нельзя.
Модификация файла требует прав на запись в
файл, так как это операция над файлом.
Удаление файла требует прав на запись в
Символ
Информация
Дополнительно
каталог, в котором находится этот файл - это
операция над каталогом. Наличие права
записи в файл не обязательно означает
возможность его удалить (хотя можно размер
файла уменьшить до нуля).
С
Число связей
Число жестких связей (имён) файла подробнее см. ниже команду ln. Для каталога
- число его подкаталогов (как минимум два '.' точка и '..' две точки. Текущий каталог
обозначается точкой; родительский каталог,
которому
принадлежит
текущий,
обозначается двумя точками).
D
Пользовательвладелец файла
Группавладелец файла
E
G
Размер файла в
байтах
Дата последней
модификации
файла
H
Имя файла
F
Группа - это именованное множество
пользователей;
группы
составляются
администратором. Каждый пользователь
является членом как минимум одной группы.
Пользователь-владелец файла (далее - просто
владелец) не обязательно является членом
группы-владельца, хотя и может быть
таковым.
Например,
-rwxr-xr--
1 asoi
students
24380 Feb
3
2014 hello
Команда
cd каталог
переходит в указанный каталог. Без указания каталога - переход в
домашний.
Каждый пользователь при входе в систему помещается в свой
домашний каталог. Все файлы в этом каталоге принадлежат ему - это его
собственное дисковое пространство в системе.
По умолчанию предполагается, что вы находитесь в своем домашнем
каталоге
1.4.3. Манипулирование файлами
Для дальнейшей работы создайте несколько файлов с произвольным
текстом с помощью стандартного текстового редактора.
Команды создания файла
Команда
touch имя_файла
изменяет время последней модификации файла на текущее. Побочный
эффект: если файла нет, он создается с нулевым размером.
>имя_файла
создает файл нулевого размера
перенаправляется вывод из ниоткуда).
(буквально:
в
этот
файл
Создание каталога
Команда
mkdir имя_директории
создает новый каталог. Если используется в следующем формате
(mkdir
имя_директории1
имя_директории2
имя_директории3), создаст папки: имя_директории1, имя_директории2 и
имя_директории3.
Копирование файла в другой файл или каталог
cp файл-источник файл-или-каталог-приемник
Если файл приемник существует, он будет удален (т.е. копирование
производится поверх). Каталог-приемник должен существовать.
UNIX
рассчитана
на
профессиональных
пользователей.
Предупреждений по поводу удаления файлов не выводится.
Рекурсивное копирование каталога в другой каталог
cp -R каталог-источник каталог-приемник
Перемещение/переименование файла или каталога
Команда
mv
файл-или-каталог-источник
каталог-приемник
файл-или-
используется
для
перемещения
или
переименования файлов или каталогов. Если в качестве аргументов заданы
имена двух файлов, то имя первого файла будет изменено на имя второго (mv
file1 file_1). Если последний аргумент является именем существующего
каталога, то mv перемещает все заданные файлы в этот каталог (mv file
./dir/).
Если последний аргумент не является каталогом и задано более чем два
файла, то будет выдано сообщение об ошибке.
Ключи, использующиеся с mv:

–f, не запрашивать подтверждения операций.

–i, выводить запрос на подтверждение операции, когда существует
файл, в который происходит переименование или перемещение.

– –, завершает список ключей. Применяется для использования с
файлами, имена которых начинаются на –.
Символические связи
Символическая связь - особый тип файла, содержащий имя другого
файла (в листинге ls -l такие файлы обозначаются буквой l в первой
колонке). Чтение-запись в файл-связь на самом деле приводят к чтениюзаписи в файл, на который он ссылается. Например, при выводе на экран
содержимого символической связи появятся данные файла, на который эта
символическая связь ссылается.
Создание символической связи:
ln -s сущестсвующий_файл файл_связь
(Файл с именем файл_связь не должен существовать.)
Жесткие связи
В файловой системе UNIX имя файла является указателем на
индексный дексриптор (i-node), который содержит атрибуты файла и массив
адресов дисковых блоков, в которых находятся данные файла. Однако файл
может иметь несколько имен. Дексриптор содержит только счетчик числа
этих имен, значение которого показывается во второй колонке листинга ls -l.
Рисунок 2 – Организация жесткой связи
Создание жесткой связи - это создание еще одного имени,
ссылающегося на тот же самый индексный дескриптор:
ln сущестсвующее_имя_файла новое_имя_файла
Удаление файлов и каталогов
rm имя_файла
удаляет файл, но не каталог;
rmdir имя_каталога
удаляет каталог, только если он пуст;
rm -r имя_каталога
удаляет каталог рекурсивно (т.е. со всеми подкаталогами), но просит
подтверждения при удалении файлов, в которые у вас нет права записи
(поскольку для удаления файла достаточно иметь право записи в его
каталог);
rm -rf имя_каталога
удаляет каталог рекурсивно и молча.
Удаление файла на самом деле представляет собой уменьшение на 1
счетчика его имен в индексном дескрипторе; соответствующий системный
вызов называется unlink(2). Физически файл удаляется системой, если он
закрыт и если счетчик имен равен нулю. Это свойство используется
программистами при создании временных файлов: после создания файла
функцией open сразу же вызывается unlink, сбрасывающий счетчик имен в 0.
Пока файл открыт, его можно использовать (через файловую переменную,
возвращенную функцией open; имени у файла уже нет). После вызова close
файл автоматически уничтожается.
1.5. Изучение содержимого файла
Команда
file имя_файла [имя_файла ...]
определяет тип файла путем анализа его содержимого
Выполните:
Определите тип всех файлов вашего домашнего каталога и каталога
prog.
Расширение файла (часть имени после точки) в Unix не имеет никакого
специального значения. Например, для запуска файла требуется не
расширение типа .exe, а право на исполнение.
Команда
cat имя_файла
- выводит содержимое файла на терминал.
Команда
more имя_файла
- пейджер (выводит файл постранично, с остановом). Фактически,
команда man формирует текст справки и пропускает его через more. Поэтому
команды управления прокруткой текста см. выше в описании man.
Команда
tail [-число] имя_файла
выводит последние 10 строк файла или сколько указано.
Команда
head [-число] имя_файла
выводит первые 10 строк файла или сколько указано.
Команда
od имя_файла
выводит файл в восьмеричном виде. Ключи:
-Nчисло - вывести только указанное число первых байт,
-jчисло - пропустить указанное число первых байт,
-j0xчисло - пропустить указанное число первых байт (число
является 16-ричным),
-tx - вывести в шестнадцатеричном виде,
-с - вывести каждый байт в виде символа (непечатные символы
отображаются как спецсимволы языка Си: \t,\n,\b,\f,\r,\0, либо как
трехзначное 8-ричное число).
2. Порядок выполнения работы
Установите виртуальную машину и ОС семейства UNIX. Выполните в
командной строке перечисленные ниже действия. Протоколируйте процесс
выполнения (с помощь скриншотов или записывая команды) и представьте их
в отчете.
1. Получите справку о команде printf с использованием разных ключей.
2. Создайте 2мя способами 2 файла (с помощью touch и >). Не забудьте
просмотреть содержимое каталога, где вы создали файлы.
3. В домашнем каталоге создайте 2 подкаталога d1 и d2 с помощью
отдельных команд для каждого каталога и одной команды для обоих
каталогов.
4. Создайте в домашнем каталоге текстовый файл test.txt и скопируйте его
в заранее созданный каталог d1.
5. Рекурсивно скопируйте каталог d1 в каталог d2. Просмотрите
содержимое домашнего и d2 каталогов
6. Создайте файл abc.txt и измените его имя на cba.txt. Далее переместите
этот файл в каталог d2. Создайте также каталог d3 и переместите его в
каталог d2.
7. Создайте текстовый файл b.txt и символическую связь для него c.txt.
Просмотрите содержимое рабочего каталога и обратите внимание на
файл c.txt и его размер: 5 - это число символов в имени "b.txt".
8. Создайте жесткую связь для файла b.txt – d.txt. Просмотрите
содержимое рабочего каталога и обратите внимание на значение
второй колонки для b.txt и d.txt и размер этих файлов, заметьте также
время последней модификации. Файлы b.txt и d.txt абсолютно
равноправны, т.к. это два разных имени одного и того же физического
файла. С помощью команды touch измените время последней
модификации файла d.txt и выведите данные об обоих файлах
(обратите внимание на время последней модификации). Далее
выведите номера индексных дескрипторов этих файлов и обратите
внимание на их значения (см. команду ls)
9. Удалите файлы b.txt, c.txt и d.txt. Рекурсивно удалите каталог d1 в
каталоге d2 (с просьбой подтверждения удаления), а также каталог d3
из каталога d2 (также рекурсивно, но без запроса подтверждения).
Удалите оставшееся содержимое каталога d2 и удалите ПУСТОЙ
каталог.
10. Создайте в текстовом редакторе файл test.txt и внесите в него
произвольный текст. ПОЛНОСТЬЮ выведите содержимое этого файла,
а затем повторите, но ПОСТРАНИЧНО.
Контрольные вопросы
3.
1.
2.
3.
4.
5.
Что такое виртуальная машина и каковы ее возможности?
Что считается файлами в OC UNUX?
Какие типы файлов существуют в OC UNUX?
Объясните назначение связей с файлами и способы их создания.
Какие методы создания и удаления файлов, каталогов Вы знаете?
Download