
- •Поняття операційної системи
- •Операційна система як розширена машина
- •Операційна система як менеджер ресурсів
- •Історія розвитку операційних систем
- •Перше покоління (1945-1955): електронні лампи і комутаційні панелі
- •Друге покоління (1955-1965): транзистори і системи пакетної обробки
- •Третє покоління (1965-1980): інтегральні схеми і багатозадачність
- •Четверте покоління (з 1980 року по наші дні): персональні комп'ютери
- •Історія minix 3
- •Основні концепції
- •Процеси
- •Оболонка
- •Системні виклики
- •Системні виклики для управління процесами
- •Системні виклики для управління сигналами
- •Системні виклики для управління файлами
- •Системні виклики для управління каталогами
- •Системні виклики для захисту
- •Системні виклики для управління часом
- •Структура операційної системи
- •1.5.2. Багаторівневі системи
- •1.5.3. Віртуальні машини
- •1.5.4. Екзоядра
- •1.5.5. Модель клієнт-сервер
- •2.1.1. Модель процесів
- •2.1.2. Створення процесів
- •2.1.3. Завершення процесів
- •2.1.4. Ієрархії процесів
- •2.1.5. Стани процесів
- •2.1.6. Реалізація процесів
- •2.1.7. Програмні потоки
- •2.2. Взаємодія між процесами
- •5.1. Файли
- •5.1.1. Іменування файлів
- •5.1.2. Структура файлу
- •5.1.3. Типи файлів
- •5.1.4. Доступ до файлів
- •5.1.5. Атрибути файлів
- •5.1.6. Операції з файлами
- •5.2. Каталоги
- •5.2.1. Прості каталоги
- •5.2.2. Ієрархічні системи каталогів
- •5.2.3. Шляхи
- •5.2.4. Операції з каталогами
- •5.3. Реалізація файлової системи
- •5.3.1. Структура файлової системи
- •5.3.2. Реалізація файлів
- •5.3.4. Організація дискового простору
Історія розвитку операційних систем
Історія розвитку операційних систем налічує вже багато років. В наступних
наступних розділах книги ми коротко розглянемо деякі основні моменти. Так
як операційні системи з'явилися і розвивалися в процесі
конструювання комп'ютерів, то ці події історично тісно пов'язані. Тому щоб
уявити, як виглядали операційні системи, ми обговоримо наступні один
за одним покоління комп'ютерів. Така схема взаємозв'язку поколінь
операційних систем і комп'ютерів досить груба, але вона забезпечує деяку
структуру, без якої нічого не було б зрозуміло.
Перший справжній цифровий комп'ютер був винайдений англійським
математиком Чарльзом Беббіджем (Charles Babbage, 1792-1871). Хоча більшу частину
життя Беббідж присвятив спробам створення своєї «аналітичної машини», він
так і не зміг змусити її працювати належним чином. Це була чисто
механічна машина, а технології того часу не були достатньо розвинені. Не варто
і говорити, що аналітична машина Беббіджа не мала операційної системи.
Цікавий історичний факт: Беббідж розумів, що для аналітичної
машини йому необхідно програмне забезпечення, тому він найняв молоду
жінку на ім'я Ада Лавлейс (Ada Lovelace), дочку знаменитого британського
поета Лорда Байрона. Вона і стала першим в світі програмістом, а мова
програмування Ada названий на її честь.
Перше покоління (1945-1955): електронні лампи і комутаційні панелі
Після невдалих спроб Беббіджа аж до Другої світової війни в
конструюванні цифрових комп'ютерів не було практично ніякого прогресу.
Приблизно в середині 1940-х Говард Айкен (Howard Aiken) в Гарварді, Джон
фон Нейман (John von Neumann) в Прінстонському інституті, Дж. Преспер
Керт (J. Presper Eckert), Вільям Мочлі (William Mauchley) в Пенсильванському
університеті, Конрад Цузе (Konrad Zuse) в Німеччині та багато інших продовжили роботу в напрямку створення обчислювальних машин. На перших машинах
використовувалися механічні реле, але вони були дуже повільні, тривалість такту становила кілька секунд. Пізніше реле замінили електронними лампами. Машини виходили громіздкими, що займають цілі кімнати, з десятками тисяч електронних ламп, але все одно вони були в мільйони разів повільніше, ніж навіть найдешевший сучасний персональний комп'ютер.
У ті часи кожну машину і розробляла, і будувала, і програмувати,
і експлуатувала, і підтримувала в робочому стані одна команда. Все
програмування виконувалося на абсолютній машинній мові, управління
основними функціями машини здійснювалося просто шляхом з'єднання
комутаційних панелей проводами. Тоді ще не були відомі мови програмування
(навіть асемблера не було). Про операційні системи ніхто і не
чув. Звичайний режим роботи програміста був такий: записатися на
певний час на спеціальному стенді, потім спуститися в машинну кімнату,
вставити свою комутаційну панель в комп'ютер і провести кілька наступних
наступних годин в надії, що під час роботи жодна із двадцяти тисяч
електронних ламп не вийде з ладу. Фактично, тоді на комп'ютерах займалися
тільки прямими числовими обчисленнями, наприклад розрахунками таблиць
синусів, косинусів і логарифмів.
На початок 50-х, з випуском перфокарт,становище дещо
покращилося. Стало можливо замість використання комутаційних панелей
записувати програми на карти і зчитувати їх з карт, але в усьому іншому
процедура обчислень залишалася колишньою.