Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ос.лаба 3.doc
Скачиваний:
177
Добавлен:
11.11.2019
Размер:
71.68 Кб
Скачать

Воронежский государственный технический университет

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторной работе 3 по курсу Операционные системы

ЭМУЛЯЦИЯ КОМАНДНОГО ПРОЦЕССОРА

Воронеж 2010

1. Теоретическая часть.

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

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

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

Пример синтаксиса командной строки:

command option(s) argument(s) <CR>

Для каждой командной строки системы UNIX вы должны ввести как минимум два компонента: имя команды и клавишу <RETURN>. (Обозначение <CR> используется в документации как инструкция для нажатия клавиши RETURN). Командная строка может также содержать ключи и аргументы. В указанном примере синтаксиса командной строки: command - это имя программы, которую вы хотите выполнить; option - ключи, которые указывают как запустить команду; argument - указывает на данные, которые эта команда обрабатывает, обычно это имя каталога или файла.

В командной строке, которая включает ключи и/или аргументы, каждый компонент отделяется друг от друга по крайней мере одним пробелом. Если аргумент содержит пробел, его надо заключить в двойные кавычки. Например, если аргумент sample 1, то вы должны указать его в командной строке как "sample 1". Если вы позабудете поставить двойные кавычки, то shell будет интерпретировать sample и 1 как два отдельных аргумента.

Некоторые команды позволяют вам указывать несколько и/или аргументов в одной командной строке. Например:

Пример.

ls -l -i file1 file2 file3

команда ключи аргументы

В этом примере команда ls использует два ключа -l и -i и три аргумента file1, file2 и file3. Ключ -l обеспечивает информацию в длинном формате, включая режим, владельца и размер, а ключ -i печатает номер inode. Система UNIX обычно позволяет вам группировать ключи, например -li, и выводить их в любом порядке. Этого нельзя делать с аргументами.

Чтобы выполнить команду, введите командную строку, когда на экране появится подсказка (например, символ #). Shell рассмотрит вашу команду как ввод, найдет один или более каталогов, чтобы вызвать программу, которую вы указали, и перенаправит ваш запрос вместе с затребованными программами ядру. Ядро последует инструкциям в программе и выполнит команду, которую вы запрашивали.

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

Команда ls выдает на экран перечень файлов и каталогов (по умолчанию из текущего каталога). Например,

/home/user1# ls

Mail

letters

papers

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

/home/User1/foo# ls -l stuff

-rw-r--r-- 1 User1 users 505 Mar 13 19:05 stuff

/home/User1/foo#

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

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

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

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

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

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

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

-rwxr-xr-x

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

-rw-------

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

-rwxrwxrwx

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

Важно заметить, что права доступа, которые имеет файл, зависят также от прав доступа к каталогу, в котором этот файл находится. Например, даже если файл имеет -rwxrwxrwx, другие пользователи не смогут до него добраться, если у них не будет прав на чтение и выполнение каталога, в котором находится файл. Например, если User1 захочет ограничить доступ ко всем своим файлам, он может просто изменить права доступа своего домашнего каталога /home/User1 на drwx------. Таким образом, никто другой не будет иметь доступ в его каталог, а следовательно посторонним будут недоступны и все файлы. Так что User1 может не заботиться об индивидуальной защите своих файлов.

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

Обычно пользователи UNIX весьма открыты всеми своими файлами. Обычно файлам устанавливается защита -rw-r--r--, которая позволяет другим пользователям читать файлы, но ни коим образом их не менять. Каталогам обычно устанавливаются права доступа drwxr-xr-x, что позволяет другим пользователям ходить с правами экскурсантов по вашим каталогам. Но ничего в них не трогать и не записывать.