Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекції_СПр.docx
Скачиваний:
37
Добавлен:
21.08.2019
Размер:
947.09 Кб
Скачать
  1. Додаткова функціональність ос.

  2. Безпека ос.

Навчальна мета: Засвоїти основні функціональності операційної системи та питання безпеки у операційних системах.

Виховна мета: Дати студентам розуміння важливості знання функціональностей операційної системи та питань безпеки у операційних системах.

Актуальність: Донести до відома студентів, що на сьогоднішній день питання безпеки у ОС є чи нне найважливішими!

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

Додаткова функціональність операційних систем

Основні функції (найпростіші ОС):

- завантаження додатків в оперативну пам'ять і їхнє виконання;

- стандартизований доступ до периферійних пристроїв (пристрою вводу-виводу);

- керування оперативною пам'яттю (розподіл між процесами, віртуальна пам'ять);

- керування доступом до даних на енергонезалежних носіях (таких як жорсткий диск, компакт-диск і т.д. ), як правило за допомогою файлової системи;

- користувальницький інтерфейс;

- мережні операції, підтримка стека протоколів;

Додаткові функції ОС:

- паралельне або псевдопаралельне виконання завдань (багатозадачность);

- взаємодія між процесами;

- захист самої системи, а також користувальницьких даних і програм від зловмисних дій користувачів або додатків;

- розмежування прав доступу й багатокористувальницький режим роботи (аутентифікація, авторизація).

Хмарні операційні системи

Основна ідея такої системи — легкий перехід від одного комп'ютера до іншого. Тут можуть виникнути мимовільні аналогії з акаунтом соціальної мережі, який можна підвантажувати на будь-якому доступному терміналі з доступом до Мережі в незалежності від встановленої ОС. Приблизно така ідея і переслідується творцями цієї нової революційної операційної системи

Безпека ОС базується на двох ідеях:

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

  2. ОС може розділити запити ресурсів від авторизованих користувачів, дозволивши доступ, та неавторизованих, заборонивши його.

Запити, в свою чергу, також діляться на два типи:

  1. Внутрішня безпека — вже запущені програми. На деяких системах програма, оскільки вона вже запущена, не має ніяких обмежень, але все ж типово вона має ідентифікатор, котрий використовується для перевірки запитів до ресурсів.

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

На додачу до моделі дозволити/заборонити системи з підвищеним рівнем безпеки також слідкують за діяльністю користувачів, що дозволяє пізніше дати відповідь на питання типу «Хто читав цей файл?»

Контрольні запитання:

  1. Основні функції ОС

  2. Додаткові функції ОС

  3. Хмарні операційні системи

  4. Безпека ОС базується на яких двох ідеях?

  5. Типи запитів

Лекція 12 «Командний рядок ОС»

  1. Інтерфейс командного рядка.

  2. Застосування.

  3. Формат команд.

  4. Переваги й недоліки.

Навчальна мета: Вивчити інтерфейс командного рядка. Розуміти як влаштований командний рядок у операційній системі, з’ясувати формат команд.

Виховна мета: Допомогти студентам зрозуміти переваги та недоліки командного рядка, виховати у студентів розуміння значення командного рядка.

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

Мотивація: Мотивацією вивчати даний напрямок у курсі ситемного програмування є однією з важливих частин при виконанні курсового проекту.

Інтерфейс командного рядка

(англ. command-line interface, CLI) — різновид текстового інтерфейсу користувача і комп'ютера, в якому інструкції комп'ютера даються тільки шляхом введення з клавіатури текстових рядків (команд). Також відомий під назвою консоль.

Призначення

Невелика витрата пам'яті в порівнянні з системою меню.

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

Природне розширення інтерфейсу командного рядка — пакетний інтерфейс. Його суть в тому, що у файл звичайного текстового формату записується послідовність команд, після чого цей файл можна виконати в програмі, що має такий самий ефект якби ці команди були по черзі введені в командний рядок. Приклади — bat-файли в Windows, shell-скрипти в Unix-системах.

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

Доступ до аргументів командного рядка

Для збільшення кількості завдань, виконуваних програмою, C++ дозволяє вашій програмі звертатися до аргументів командного рядка, використовуючи два параметри, які C++ передає в main. Перший параметр argc містить кількість аргументів командного рядка (включаючи ім'я програми). Другий параметр argv являє собою масив покажчиків на символьні рядки. Кожний символьний рядок відповідає аргументу командного рядка. Щоб звернутися до аргументів командного рядка, зміните заголовок функції main, як показано нижче:

void main(int argc, char *argv[])

Використання циклів для роботи з аргументами командного рядка

Як ви вже знаєте, програми C++ використають символ NULL для завершення символьного рядка. Подібним способом C++ використає символ NULL, щоб відзначити останній елемент масиву argv. Наступна програма ARGVNULL.CPP змінює оператор for попередньої програми, щоб виконувати цикл по елементах argv, поки поточний елемент argv не буде дорівнює NULL:

#include <iostream.h>

void main(int argc, char *argv[])

{  int i;   for (i = 0; argv[i] != NULL; i++) cout << "argv[" << i << "] містить " << argv[i] << endl; }

Трактування argv як покажчика

Як ви вже знаєте, C++ дозволяє вам звертатися до елементів масивів, використовуючи покажчики. Наступна програма ARGVPTR.CPP трактує argv як покажчик на покажчик символьного рядка (інакше кажучи, покажчик на покажчик), щоб вивести вміст командного рядка:

#include <iostream.h>

void main(int argc, char **argv)

{   int i = 0;   while (*argv) cout << "argv[" << i++ << "] містить " << *argv++ << endl; }

Виберіть час, щоб проаналізувати оголошення параметра argvв main:

void main(int argc, char **argv)

Перша зірочка в оголошенні повідомляє компіляторові C++, що argv являє собою покажчик. Друга зірочка повідомляє компіляторові, що argv являє собою покажчик на покажчик — у цьому випадку покажчик на покажчик типу char. Представте argv як масив покажчиків. Кожний елемент масиву в цьому випадку вказує на масив типу char.

Використання аргументів командного рядка

Наступна програма FILESHOW.CPP використає аргументи командного рядка для виводу вмісту зазначеного користувачем файлу на екран. Наприклад, щоб використати програму FILESHOW для виводу вмісту файлу AUTOEXEC.BAT з кореневого каталогу, ваш командний рядок стає наступною:

C: \> FILESHOW \AUTOEXEC.BAT <Enter>

Наступні оператори реалізують програму FILESHOW.CPP. Ця програма починається з перевірки параметра argc, щоб переконатися, що користувач указав файл у командному рядку. Якщо користувач включає ім'я файлу параметр argc буде містити значення 2.

Переваги та недоліки

Переваги:

  • Будь-яку команду можна викликати невеликою кількістю натискань.

  • Пакетні файли — це, по суті, найпростіша програмованість.

  • Можна керувати програмами, що не мають графічного інтерфейсу (наприклад, виділеним сервером).

  • Переглянувши вміст консолі, можна повторно побачити повідомлення, яке ви не встигли прочитати.

Недоліки:

  • Інтерфейс командного рядка не є дружнім для початківців.

  • Шукати невідому команду з довідників не менш складно, ніж відшукувати в меню потрібну команду.

Контрольні запитання:

  1. Інтерфейс командного рядка

  2. Призначення командного рядка

  3. Доступ до аргументів командного рядка

  4. Використання циклів для роботи з аргументами командного рядка

  5. Трактування argv як покажчика

  6. Використання аргументів командного рядка

  7. Переваги та недоліки командного рядка

Лекція 13 «Інтерпретатор команд операційної системи»