- •Глава 1
- •Введення
- •Операційна система як менеджер ресурсів
- •Історія операційних систем
- •Ibm 1401 записує пакет завдань на магнітну стрічку (б); оператор приносить вхідні
- •360. Ми не можемо тут дати повну оцінку цієї книги, але достатньо буде сказати, що на її обкладинці зображено стадо доісторичних тварин, загрузли у
- •77, 82, 253, 285]. Системі multics також присвячений все ще активний web-сайт www.Multicians.Org, з великою кількістю інформації про систему, її проектувальників і користувачів.
- •Ibm захотіла деяких удосконалень у програмі, Білл Гейтс запрошуємо
- •Xerox [307]. Тоді Джобе приступив до створення Apple з графічним інтерфейсом. Це привело до проекту Lisa, який був дуже дорогий і зазнав комерційних
- •Онтогенез повторює філогенез
- •Серверні операційні системи
- •Операційні системи реального часу
- •VX Works і qnx є добре відомими операційними системами реального часу.
- •Вбудовані операційні системи
- •Огляд апаратного забезпечення комп'ютера
- •Процесори
- •Пристрої введення-виведення
- •Процесори
- •Взаємоблокировка
- •Управління пам'яттю
- •Введення-виведення даних
- •Безпека
- •Оболонка
- •Повторне використання ідей
- •Системні виклики
- •Системні виклики для управління процессами
- •Лістинг 1.1. Усічена оболочка1
- •Системні виклики для управління файлами
- •Системні виклики для управління каталогами
- •Iink ("/ usr/jim/memo", "/ usr / ast / note"): то файл memo в каталозі Джима з'явиться у каталозі Аста під назвою note.
- •Різні системні виклики
- •Багаторівневі системи
- •Віртуальні машини
- •Екзоядро
- •Модель клієнт-сервер
- •Дослідження в області операційних систем
- •Короткий огляд наступних глав
- •Одиниці виміру
- •1024 Байта, а не 1000 байт. Точно так же 1 Мбайт містить 220 a 048 576) байт,
Дослідження в області операційних систем
Кібернетика - це швидко прогресуюча область, тому, говорячи про неї,
вкрай важко передбачати майбутнє. Дослідники в університетах і комерційних дослідницьких лабораторіях постійно видають нові ідеї, деякі з них не розвиваються далі, а інші закладаються в основу майбутніх програмних продуктів і роблять величезний вплив на виробників і користувачів. Відрізнити перші від других виявляється значно легше заднім розумом, ніж в режимі реального часу. Відокремити зерна від плевел важко, тому часто проходить 20-30 років між зародженням ідеї та її розквітом. Наприклад, коли президент Ейзенхауер (Eisenhower) заснував в 1958 році в Міністерстві оборони управління ARPA (Advanced Research Projects Agency - управління перспективних дослідницьких програм), він намагався не допустити знищення армією флоту і військово-повітряних сил з-за проблем дослідницького бюджету Пентагону. Він зовсім не намагався винайти Інтернет. Але серед іншого ARPA створила фонд для досліджень деяких університетів, присвячених тоді ще неясною ідеї пакетної комутації, яка незабаром лягла в основу першої експериментальної мережі з комутацією пакетів ARPANET.
Вона з'явилася в 1969 році. Незабаром інші фінансуються ARPA дослідні мережі приєдналися до ARPANET, і так народився Інтернет (Internet). Потім інтернет успішно використовувався протягом 20 років академічними дослідниками. Вони надсилали одне одному листи по електронній пошті. На початку 1990-х років Тім Бернерс-Лі (Tim Berners-Lee) винайшов Всесвітню павутину (World Wide Web) у дослідницькій лабораторії CERN в Женеві, а Марк Андресен (Маге Andreesen) в університеті Іллінойсу написав для неї графічний браузер. Після цього Інтернет заповнився бовтаються підлітками, чого явно не очікував президент Ейзенхауер.
Дослідження в області операційних систем також призвели до драматичних змін у практичних системах. Як вже говорилося раніше, всі перші комерційні комп'ютерні системи були системами пакетної обробки до тих пір, поки на початку 60-х в Массачусетському технологічному інституті не зображені
винайшли інтерактивні системи з поділом часу. Комп'ютери були текстовими машинами, поки в кінці 60-х Даг Енгельбарт (Doug Engelbart) з Стенфордського дослідного інституту не винайшов миша і графічний інтерфейс користувача. Хто знає, що з'явиться слідом за цим?
У цьому і наступних розділах книги ми коротко опишемо частина з досліджень в області операційних систем, які мали місце за останні 5-10 років,
щоб дати уявлення про те, що може з'явитися в майбутньому. Це введення,
звичайно, не є всеосяжним і в основному базується на статтях, опублікованих у найкращих дослідницьких журналах та матеріалах конференцій, тому що ці ідеї, принаймні, пережили ретельний неупереджений процес аналізу перед публікацією. Більшість наукових статей, цитованих в присвячених дослідженням розділах, були опубліковані або асоціацією з обчислювальної техніки АСМ, або комп'ютерним суспільством IEEE, або USENIX. Крім того, вони доступні в Інтернеті для членів цих організацій, у тому числі студентів. За додатковою інформацією про ці організації та їх цифрових бібліотеках слід звертатися на наступні сайти:
АСМ http://www.acm.org
IEEE Computer Society http://www.computer.org
USENIX http://www.usenix.org
Насправді всі дослідники розуміють, що сучасні операційні системи масивні, не гнучкі, ненадійні, не забезпечують захисту інформації та рясніють помилками, причому деякі системи більшою мірою, ніж решта (назви не повідомляються, щоб захистити винуватців). Природно, величезна кількість досліджень було присвячено побудові гнучкої і надійної системи. Багато досліджень стосуються систем мікроядра. Ядра таких систем мають мінімальні розміри, тому є шанс, що їх зможуть цілком налагодити і зробити надійними. При цьому такі системи гнучкі, тому що велика частина операційної системи працює як процеси користувальницького режиму і тому їх легко перемістити або адаптувати до нових умов, можливо, навіть під час роботи. Зазвичай у завдання мікроядра входить лише управління на низькому рівні і передача повідомлень між процесами користувача. Мікроядра першого покоління, такі як Amoeba [324], Chorus [282], Mach [4] і V [66], довели, що ці системи можна побудувати і змусити працювати. Друге покоління намагається довести, що вони не тільки працюють, але і роблять це з високою продуктивністю [119, 147, 208, 209, 270, 371]. Грунтуючись на опублікованих вимірах, можна стверджувати, що ця мета досягнута.Безліч досліджень в області ядра в наші дні фокусується на
конструюванні розширюваних операційних систем. Це звичайно системи з мікроядром, в яких підтримується можливість їх розширення чи переробки в певному напрямку. Такими прикладами є Fluke [121], Paramecium [137],
SPIN [28] і Vino [299]. Деякі дослідники також шукають можливості розширення існуючих систем [126]. Багато з цих систем дозволяють користуватися
користувачам додавати свій власний код до ядра, але при цьому постає очевидна
проблема забезпечення безпеки надбудов користувача. Серед методів вирішення цих проблем зустрічаються такі, як інтерпретація розширень, ізоляція
на час виконання завантаження віддаленого коду в обмежену середу, так
звану «пісочницю», використання мов, забезпечують типову безпеку, і постачання виконуваних програм електронним підписом [137, 306]. В [100] представлена інша точка зору: на забезпечення безпеки розширюваних користувачами систем витрачається занадто багато зусиль. На думку авторів, дослідники повинні обчислити, які надбудови корисні, і потім зробити їх нормальною частиною ядра, не надаючи користувачам можливостей розширю-вати ядро на льоту.Хоча один підхід до поліпшення величезних, містять масу помилок, ненадійних операційних систем полягає в зменшенні їх розмірів, існує
другий, більш радикальний метод - взагалі усунути операційну систему. Він
був узятий на озброєння групою Каашойка (Kaashoek) в Массачусетському технологічному інституті в їх роботі над екзоядром. Ідея полягає в тому, щоб
залишити тонкий шар програмного забезпечення, що працює безпосередньо з
апаратурою, всі дії якого полягають у надійному розподілі ресурсів апаратури між користувачами. Наприклад, воно повинно вирішувати, хто і яку частину
диска отримує в користування, куди повинні доставлятися приходять мережні
пакети. Все інше залишається на розсуд процесів користувацького рівня, що робить можливим побудову як універсальних, так і вузькоспеціалізованих систем [ПЗ, 108,168].