
- •Загальні вказівки до виконання лабораторних робіт
- •Лабораторна робота № 1-3 програмування в windows script host
- •1 Основні теоретичні відомості
- •Виконання основних операцій з файловою системою
- •2 Порядок виконання роботи
- •3 Контрольні запитання
- •Лабораторна робота № 4 основи роботи з операційною системою unix
- •1 Основні теоретичні відомості
- •2 Порядок виконання роботи
- •3 Контрольні питання
- •Лабораторна робота № 5 керування процесами
- •1 Основні теоретичні відомості
- •2 Порядок виконання роботи
- •3 Контрольні запитання
- •Лабораторна робота № 6 права доступу в операційній системі unix
- •1 Основні теоретичні відомості
- •2 Порядок виконання роботи
- •3 Контрольні питання
- •Лабораторна робота № 7 взаємодія процесів в ос unix за допомогою іменованих каналів
- •1 Основні теоретичні відомості
- •2 Порядок виконання роботи
- •3 Контрольні запитання
- •Перелік рекомендованих джерел
3 Контрольні запитання
1 Мета й завдання Windows Script Host.
2 Який головний об'єкт Windows Script Host в сценарії служить для створення інших об'єктів або зв'язку з ними, містить зведення про сервер сценаріїв, а також дозволяє вводити дані з клавіатури і виводити інформацію на монітор або у вікно Windows?
3 Який об'єкт Windows Script Host в сценарії забезпечує доступ до спеціальних папок Windows?
4 Який об'єкт Windows Script Host в сценарії забезпечує доступ до файлової системи комп'ютера?
5 Який об'єкт Windows Script Host в сценарії забезпечує доступ до параметрів командного рядка запущеного сценарію або ярлика Windows?
6 Який об'єкт Windows Script Host в сценарії дозволяє запускати незалежні процеси, створювати ярлики, працювати із змінними середовища, системним реєстром і спеціальними папками Windows?
7 Який об'єкт Windows Script Host в сценарії використовується при роботі з локальною мережею: містить мережеву інформацію для локального комп'ютера, дозволяє підключати мережеві диски і принтери?
8 Який об'єкт Windows Script Host в сценарії дозволяє управляти сценарієм, запущеним на видаленій машині?
Лабораторна робота № 4 основи роботи з операційною системою unix
Мета: Метою роботи є знайомство з операційними системами сімейства UNIX. Набуття навичок роботи в ОС FreeBSD.
Тривалість роботи – 2 години
1 Основні теоретичні відомості
Загальна характеристика ОС сімейства UNIX
Майже три десятиріччя існування UNIX — доволі великий термін для операційної системи. Сміливо можна вважати, що вона цілковито витримала перевірку часом. На кожному етапі свого розвитку ОС UNIX розв’язувала певні задачі, і сьогодні, незважаючи на з’явлення більш простих і зручних, з погляду адміністрування, систем, UNIX посідає чільне місце з-посеред лідерів. Найдивовижніше є те, що в багатьох випадках при цьому йдеться не про конкретну версію, наприклад Solaris або SCO, а саме, про систему UNIX як таку.
Перелічимо основні риси UNIX, котрі дозволяють зрозуміти причини тривалої “живучості” цієї системи:
системний код написано мовою високого рівня С, що зробило UNIX простішою для розуміння, змін і перенесення на інші платформи. За оцінками одного з її творців, Деніса Рітчі, система мовою С мала на 20...40 % більший розмір, а продуктивність її була на 20 % нижче за продуктивність аналогічної системи, код якої написано мовою асемблер. Більшість UNIX постачається сьогодні у вигляді не вихідних текстів, а бінарних файлів, але система залишається легко розширюваною;
UNIX — багатозадачна багатокористувацька система з широким спектром послуг. Один потужний сервер може обслуговувати запити великої кількості користувачів. UNIX-система може виконувати різноманітні функції: працювати як обчислювальний сервер, який обслуговує сотні користувачів; як сервер бази даних; як сервер мережі, що він підтримує найважливіші сервіси мережі (telnet, ftp, електронну пошту, службу імен DNS тощо), або навіть як мережний маршрутизатор;
наявність стандартів. Незважаючи на різноманітність версій UNIX, основою всього сімейства є принципово однакова архітектура й низка стандартних інтерфейсів. Досвідчений адміністратор без великої напруги зможе обслуговувати іншу версію системи, для користувачів перехід на іншу версію може стати непомітним;
простий, але потужний модульний користувацький інтерфейс. Маючи у своєму розпорядженні набір утиліт, кожна з яких розв’язує вузьку спеціалізовану задачу, можна конструювати з них складні комплекси;
використання єдиної, легко обслуговуваної ієрархічної файлової системи. Файлова система — це не лише доступ до даних, які зберігаються на диску. Через уніфікований інтерфейс файлової системи здійснюється доступ до терміналів, принтерів, магнітних стрічок, мережі й навіть до пам'яті;
надто велика кількість додатків, у тому числі вільно розповсюджуваних, розпочинаючи від найпростіших текстових редакторів і завершуючи потужними системами керування базами даних.
Архітектура UNIX
Побіжний погляд дозволяє побачити дворівневу модель системи, яка відображена на рисунку 1.1.
Рисунок 4.1 – Дворівнева модель UNIX-системи
У центрі розміщено ядро системи (kernel). Ядро безпосередньо взаємодіє з апаратною частиною комп’ютера, ізолюючи прикладні програми від особливостей її архітектури. Ядро має набір послуг, надаваних прикладним програмам. До послуг ядра належать операції введення/виведення (відкриття, читання, записи й керування файлами), створення й керування процесами, їхньої синхронізації й міжпроцесної взаємодії. Усі додатки запитують послуги ядра за допомогою системних викликів.
Другий рівень становлять додатки та задачі, як системні, які визначають функціональність системи, так і прикладні, які забезпечують користувацький інтерфейс UNIX. Однак, незважаючи на зовнішню різнорідність додатків, схеми їхньої взаємодії з ядром є однакові.
Функціонування системи UNIX
Ядро системи
Ядро забезпечує базову функціональність ОС: створює процеси й керує ними, розподіляє пам'ять і забезпечує доступ до файлів та периферійних пристроїв.
Взаємодія прикладних задач з ядром відбувається за допомогою стандартного інтерфейсу системних викликів.
Інтерфейс системних викликів являє собою набір послуг ядра і визначає формат запитів на послуги. Процес запитує послугу за допомогою системного виклику певної процедури ядра, зовні схожого на звичайний виклик бібліотечної функції. Ядро від імені процесу виконує запит — і повертає процесові необхідні дані.
У наведеному прикладі програма відкриває файл, зчитує з нього дані і закриває цей файл. При цьому операція відкриття (open), читання (read) і закриття (close) файла виконуються ядром за запитом задачі, а функції open (2), read (2), close (2) є системними викликами.
main()
{
int fd;
char buf [80];
/*Відкриємо файл–одержимо надсилання (файловий дескриптор) fd*/
fd=open(“filed”,O_RDONLY);
/*Вводимо в буфер buf 80 символів*/
read (fd,buf, sizeof(buf));
/*Закриємо файл*/
close (fd);
}
Ядро складається з трьох основних підсистем:
— файлова підсистема;
— підсистема керування процесами і пам’яттю;
— підсистема введення/виведення.
Файлова підсистема забезпечує уніфікований інтерфейс доступу до даних, розташованих на дискових накопичувачах, і до периферійних пристроїв. Ті самі функції open (2), read (2), write (2) можуть використовуватися як при зчитуванні запису даних на диск, так і при виведенні тексту на принтер або термінал.
Файлова підсистема контролює права доступу до файла, виконує операції розміщення і вилучення файла, а також виконує запис/читання даних файла. Оскільки більшість прикладних функцій виконується через інтерфейс файлової системи, права доступу до файлів визначають привілей користувача в системі.
Файлова підсистема забезпечує переспрямовування запитів, адресованих периферійним пристроям, котрі збігаються з модулями підсистеми введення/виведення. Внутрішню структура ядра наведено на рисунку 1.2.
Підсистема керування процесами і пам’яттю контролює:
— створення й вилучення процесів;
— розподіл системних ресурсів поміж процесами;
— синхронізацію процесів;
— міжпроцесну взаємодію.
Вочевидь, що в загальному випадку кількість активних процесів перевищує кількість процесорів комп’ютера, але в кожен окремий момент часу на кожнім процесорі може виконуватися лише один процес. ОС керує доступом процесів до обчислювальних ресурсів, створюючи відчуття одночасного виконання декількох задач.
Спеціальна задача ядра, називана розпорядником, планувальником процесів (scheduler), розв’язує конфлікти поміж процесами в конкуренції за системні ресурси (процесор, пам’ять, пристрої введення/виведення). Планувальник запускає процес на виконання, стежачи за тим, щоб процес монопольно не захопив поділювані системні ресурси. Процес звільнює процесор, очікуючи на тривалу операцію введення/виведення або на завершення кванта часу. У цьому разі планувальник обирає процес з найвищим пріоритетом і запускає його на виконання.
Рисунок 4.2 — Внутрішня структура ядра UNIX
Модуль керування пам’яттю забезпечує розміщення оперативної пам’яті для прикладних задач. Оперативна пам’ять — коштовний ресурс, її рідко буває “забагато”. Якщо для всіх процесів недостатньо пам’яті, ядро переміщує частини процесу у вторинну пам’ять, звільнюючи ресурси для виконуваного процесу. Усі сучасні системи зреалізовують віртуальну пам’ять: процес виконується у власному логічному адресному просторі, що може перевищувати доступну фізичну пам’ять.
Модуль міжпроцесної взаємодії відповідає за повідомлення процесів про події за допомогою сигналів і забезпечує можливість передавання даних поміж різними процесами.
Підсистема введення/виведення виконує запити файлової підсистеми і підсистеми керування процесами для доступу до периферійних пристроїв. Вона забезпечує необхідну буферизацію даних і взаємодіє з драйверами пристроїв — спеціальними модулями ядра, які обслуговують зовнішні пристрої.
Початок і завершення сеансу робіт
Кожен користувач системи має:
ім’я користувача (для установлення взаємодії користувачів);
пароль користувача (для контролю входу в систему й захисту своїх даних).
Користувачі можуть бути об’єднані в групи (наприклад, під час роботи над спільними проектами) для поділу загальних ресурсів, тоді ще є ім’я групи користувачів.
Один користувач, називаний superuser, є адміністратором системи (його ім’я root). Зокрема він реєструє решту користувачів.
Виправлення помилок при набиранні тексту команди
При набиранні тексту команди користувач може зробити помилку. Для її виправлення передбачено такі позначки:
backspace (переміщення назад);
^H (переміщення назад);
^K (вилучення рядка).
Деякі прості команди
Основні сполучення клавіш та їхні позначення |
||||
[Ctrl][Alt][F1] |
Перемикання на перший консольний термінал |
|||
[Ctrl][Alt][F#] |
Перемикання на #ий консольний термінал (#=1..8, але може змінюватися як завгодно) |
|||
[Tab] |
Доповнення поточної послідовності символів, набраної в консолі, до, виконуваної команди. Ця особливість надто спрощує набір команд! |
|||
[Ctrl][Alt][Del] |
Перезавантаження комп’ютера |
|||
[Ctrl]c |
Убити поточний процес |
|||
[Ctrl]d |
Вихід з поточного термінала (зазвичай працює) |
|||
[Ctrl]d |
Надсилання поточному процесові сигналу завершення файла |
|||
[Ctrl]s |
Зупинка виведення на термінал |
|||
[Ctrl]q |
Поновлення виведення на термінал. Спробуйте цю комбінацію клавіш, якщо ваш термінал незрозуміло чому припинив відповідати на ваші запити |
|||
~ |
Моя домашня директорія. Наприклад, cd ~/моя_піддиректорія |
|||
. |
(крапка) Поточна директорія |
|||
.. |
(дві крапки) Батьківська директорія для поточного каталогу |
|||
Стандартні команди, що надають інформацію із системи |
||||
Команди (завжди набираються в одному рядку) |
Опис |
|||
pwd |
Вивести поточну директорію |
|||
hostname |
Вивести — змінене мережне ім’я машини |
|||
whoami |
Ввести ім’я, під яким я зареєстрований |
|||
date |
Вивести змінені дату й час |
|||
time |
Одержати інформацію про час, необхідний для виконання процесу, плюс ще деяку інформацію. Не плутайте цю команду з date. Наприклад: Я можу визначити, як багато часу потрібно для виведення списку файлів у директорії, набравши послідовність: time ls |
|||
who |
Визначити, хто з користувачів працює на машині |
|||
finger [ім’я_користу-вача] |
Системна інформація про зареєстрованого користувача. Спробуйте: finger root |
|||
uptime |
Кількість часу, що пройшов після останнього перезавантаження |
|||
ps |
Список поточних процесів |
|||
top |
Інтерактивний список поточних процесів відсортованих за використанням cpu |
|||
uname |
Вивести системну інформацію |
|||
df –h |
(=місце на диску) Вивести інформацію про вільне й використовуване місце на дисках (у зручному для читання вигляді) |
|||
du / -bh | more |
(=хто скільки зайняв) Виведення детальної інформації про обсяг файлів по директоріях, починаючи з кореневої (у зручному для читання вигляді) |
|||
set|more |
Вивести поточні значення зміни оточення |
|||
Робота з мережею |
||||
mail [адреса] |
Програма mail дозволяє надсилати та одержувати E-mail |
|||
ping [ім’я_машини] |
Перевірка, є чи немає контакту з іншою машиною (у якості параметрів команді можна передавати мережне ім’я або IP адресу), натисніть <Ctrl>-C, коли вся необхідна інформація буде отримана |
|||
ifconfig |
(як root) Вивести інформацію про поточні мережні інтерфейси (ethernet, ppp тощо). Ваша перша ethernet плата буде подана як ed0, друга — як ed1, перший ppp модем — як ppp0 і т. д. “lo” розшифровується як “loopback only” — мережний інтерфейс, який має бути постійно активований. Використовуйте відповідні опції (переглядайте результат виконання ifconfig-help) для налаштування мережних інтерфейсів |
|||
Найпростіші дії |
||||
cd [директорія] |
Змінити директорію |
|||
cp [що копіювати] [куди копіювати] |
Копіювати файли |
|||
mv [що переміщувати] [куди переміщувати] |
Перемістити перейменований файл |
|||
ln -s [на що зробити посилання][ім’я посилання] |
Створити символічне посилання |
|||
rm [файли] |
Вилучити файли |
|||
mkdir [директорію] |
Створити нову директорію |
|||
rmdir [директорію] |
Вилучити порожню директорію |
|||
rm -r [файли і/чи директорії] |
(рекурсивне вилучення) Вилучити файли, директорії та їхні піддиректорії. ОБЕРЕЖНІШЕ з цією командою, якщо у вас є права суперкористувача! Поки в FreeBSD немає системи повного відновлення вилучених файлів (якщо ви не користуєтесь спеціальними програмами для розміщення вилученого файла в спеціальному каталозі — аналогічно до кошика під W95) |
|||
cat [ім’я файла] | more |
Перегляд вмісту текстового файла по одній сторінці за один раз |
|||
less [ім’я файла] |
Перегляд вмісту текстового файла з можливістю повернутися до попередніх сторінок. Натисніть q, коли захочете вийти з програми. “Less” — аналог команди DOS “more”, хоча надто часто “less” буває більш зручною, ніж “more” |
|||
ee [ім’я файла] |
Редагувати текстовий файл (для виходу Esc+Enter) |
|||
lynx [html чи файл посилання] |
Переглядання файла html чи WWW посилання за допомогою текстового браузера Lynx |
|||
tar -zxvf файли] |
Розпакувати архів tgz або tar.gz |
|||
find / -name “ім’я файла” |
Віднайти файл з іменем “ім’я файла”. Пошук розпочинається з директорії /. “ім’я файла” може містити маску для пошуку |
|||
mc |
Запустити програму керування файлами “Midnight Commander” (Виглядає як “Norton Commander”, але за своїми можливостями є ближче до far чи dn) |
|||
telnet [сервер] |
Зв’язатися по telnet з іншою машиною. Використовуйте ім'я машини або її IP адресу. Увійдіть за допомогою вашого пароля (ви повинні бути зареєстровані на цій вилученій машині). Це дозволить вам увійти на іншу машину і працювати на ній, начебто ви сидите за її клавіатурою (майже жодних відмінностей) |
|||
ftp [сервер] |
Зв’язатися по ftp з вилученим комп’ютером |
|||
Основні команди адміністрування |
||||
аdduser [ім’я_користу-вача] |
Зареєструвати нового користувача (у вас повинні бути права суперюзера). Наприклад: adduser ivanov Налаштувати пароль користувача; директорія користувача розміщена в каталозі /home/ім’я_користувача |
|||
rmuser [ім’я_користу-вача] |
Вилучити користувача із системи (ви повинні увійти як root). З користувацьким каталогом і непрочитаними листами вилученого користувача слід займатися окремо |
|||
Groupadd [ім’я_групи] |
Створити нову групу користувачів на вашій системі. Не обов’язково створювати групу безпосередньо на основній машині |
|||
passwd |
Змінити пароль. Якщо ви є суперкористувач, то можете змінити пароль кожного зареєстрованого користувача, набравши команду: passwd ім’я_користувача |
|||
chown [новий_хазяїн][файли] chgrp [нова_група] [файли] |
Змінити хазяїна і групу для файла. Ви можете використовувати ці дві команди, після того як зробили копію файла для іншого користувача |
|||
su |
(=super user) Вхід у систему як суперкористувача (у вас запитають ваш пароль). Набравши “exit”, ви повернетеся у вашу попередню користувацьку оболонку. Користувач root існує для адміністрування системи — і команда su надає швидкий доступ до можливостей суперкористувача, коли вам це буде потрібно. Ніколи не заходьте в систему під користувачем root, використовуйте для цієї мети команду su. |
Довідкова система
Для одержання довідки скористайтеся командою man; наприклад, команда man cp виводить інформацію про команду копіювання файлів. Для одержання інформації про використання команди man наберіть: man man.
Командний рядок і формат команд
Командний рядок — це послідовність слів, розділених прогалинами. Перше слово і є команда, інші — параметри.
Типи параметрів:
ім’я файла = ідентифікатор;
опція (ключ) уточнює зміст команди (зазвичай розпочинається зі знаку “мінус”);
Порядок параметрів у команді:
команда-ключ
Приклади команд:
- ls –all; Перегляд повного змісту каталога
- ls –FA; Перегляд скороченого змісту каталога, з позначенням файлів, програм, директорій
- rm –r; Вилучити все.