Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вступ, ст 22-93.doc
Скачиваний:
5
Добавлен:
02.09.2019
Размер:
1.62 Mб
Скачать

Безпека

Комп'ютери містять велику кількість інформації, конфіденційність якої користувачі часто хочуть зберегти: електронну пошту, бізнес-плани та багато іншого. У завдання операційної системи входить управління системою захисту подібних файлів, так щоб вони, наприклад, були доступні тільки осіб, які мають на це права.

В якості найпростішого прикладу, що дає уявлення про те, як працює

система безпеки, розглянемо систему UNIX. У UNIX для захисту файлів їм

присвоюється 9-бітовий двійковий код. Цей код захисту складається з трьох полів

по три біта, одне для власника, другий для інших членів групи власника

(Користувачі поділяються на групи системним адміністратором) і третє - для всіх інших. У кожному полі є біт, що визначає доступ для читання, біт, що визначає доступ для запису, і біт, що дозволяє виконання. Ці три біта називаються rwx-бітами (read, write, execute). Наприклад, код захисту rwxr-x – x означає, що власник файлу може читати, писати чи виконувати файл, інші члени групи можуть читати або виконувати файл (але не писати в нього), а інші можуть тільки виконувати файл (але не читати або писати). Для каталогах означає дозвіл на пошук. Дефіс означає, що відповідний дозвіл відсутня. Крім захисту файлів, існує ще безліч інших питань безпеки: захист системи від небажаних гостей, людей, і не тільки (вірусів). Ми обговоримо різні питання, пов'язані з безпекою, у розділі 9.

Оболонка

Операційна система являє собою програму, що виконує системні

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

інтерпретатори не є частиною операційної системи, незважаючи на їх велику

важливість та корисність. Оскільки є ризик заплутатися в цих речах, в даному

розділі ми коротко розглянемо тільки командний інтерпретатор UNIX, званий оболонкою (shell). Хоча вона не входить в операційну систему, але на всю

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

використовує графічний інтерфейс. Існує безліч оболонок, наприклад sh,

csh, ksh і bash. Всі вони підтримують описані нижче функції, оскільки походять від первісної оболонки (sh).

Коли який-небудь користувач входить в систему, запускається оболонка.

Стандартним вхідним і вихідним пристроєм для оболонки є термінал (Монітор з клавіатурою). Оболонка починає роботу з друку запрошення (prompt) - знака долара, говорить користувачеві, що оболонка очікує введення команди.

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

date> file

Таким же чином можна перевизначити пристрій, з якого читаються вхідні дані, як показано нижче: sort file2. Ця команда наказує програмі сортування вважати дані з файла 1 і вивест результат в файл 2. Вихідні дані однієї програми можна використовувати як вхідні даних для іншої, з'єднавши їх каналом. Так, команда cat filel file2 file3 | sort> / dev / lp наказує програмі cat об'єднати (concatenate) три файли і послати вихідні дані програмі sort, яка розставить всі рядки в алфавітному порядку. Результат роботи sort перенаправляється в файл / dev / lp, зазвичай позначає принтер.

Якщо користувач набере знак після команди, оболонка не чекатиме

закінчення її виконання. У цьому випадку вона негайно напише нове запрошуємо

запрошення. Тобто в результаті команди cat filel file2 file3 | sort> / dev / lp. Але більшість книг з UNIX описують оболонки досить детально [179, 185, 232, 245, 278].