1890-1950 - експлуатація, притаманна системі
Найбільш ранні комп'ютери мали еквівалент того, що зараз в них вбудована ОС. Ви (оператор) також були частиною операційної системи. Ви перевернули перемикачі реєстру (або використовували перфокарт) і фізично замінили дроти шини (подумайте про стан станції старого телефонного оператора), а пам’ять була пов’язана (через фізичні дроти) безпосередньо з лампочкою (монітором дня) та принтерами ( довготривале зберігання) таким чином, що програмний вихід засвітився б і надрукувався безпосередньо на пристрій під час його розміщення у буфері вихідної пам'яті. У цих речах не було потрібного водія, оскільки (завдяки тому, як проходили ті фізичні дроти) вони «просто працювали» (в наші дні також не було такого монітора, як монітор). Насправді, ще триватиме десятиліття цієї епохи, поки не буде винайдено цифровий цифровий дисплей, щоб ви могли фактично бачити числа, які ви вже внесли до реєстру, а вихідні дані у вигляді десяткових чисел; друкарі правили всю цю епоху до моніторів. Вони були підключені саме так, як потрібно, щоб правильно працювати. Жодна з цієї частини насправді не змінилася сильно з переходом від механічного (1890-ті) до електричного аналогового (1910-ті) до цифрового (1930-ті). Ця архітектура "Plug N play" була замінена системою переривань протягом цього часу і не з'явиться знову до кінця дев'яностих; Звичайно, до цього часу буде набагато менше підключень. При перериваннях пристрої дозволяли забирати час процесора, що дозволяло архітектурам, які були ' t безпосередньо пов'язане з обладнанням, але для цього знадобилося кілька поколінь, щоб це був справді спрощений процес, який ми бачимо в аркаді x86 (і новіші); ранні системи часто стикалися з жахливими умовами перегонів, проблемами сумісності обладнання та \ затримкою, та іншими дивними способами поведінки, що стосуються перебоїв. Тому що кожна машина використовувала докорінно різні (експериментальні) архітектури в цей період; майже всі пристрої були виготовлені на замовлення машини, над якою вони працювали.
1950-1973 - Робота в системі
Ця епоха спричинила появу більшості функцій, про які ми думаємо, коли говоримо про справжню операційну систему. У цю епоху були запроваджені налагодження, мови програмування, багато користувачів, багатозадачні завдання, термінали, дискові диски, мережа, стандартизація компонентів тощо. Цього разу відбувся величезний стрибок у напрямку стандартизації значної частини цього, що означало, що у нас є більш стандартизовані пристрої, але все ж кожна ОС була вручну виготовлена для кожної машини, що означало, що функціональність ОС суворо обмежена тим, що інженери, які розробили цю конкретну систему, вирішили, що потрібно . За цей час з'явилася значна сіра зона в тому, що таке операційна система, тому що різні архітектури обробляють річ набагато інакше, а машині загального призначення потрібно буде набагато більше ОС, ніж машина, що включає апаратне забезпечення для виконання тих же завдань. Справа в тому, що апаратне забезпечення завжди буде швидше, ніж програмне забезпечення, і практично все, що робиться в програмному забезпеченні, теоретично можна зробити апаратним способом (це вартість \ гнучкість \ розмір \ час \ і т.д., що обмежує нас від створення майже чистого апаратного забезпечення всього цього. день). ОС була зроблена для певного комп'ютера або типу комп'ютера; це б не працювало в іншому місці. Кожен новий комп'ютерний дизайн потребував того, щоб все програмне забезпечення низького рівня ОС було переписано з нуля для роботи з певною моделлю машини. Наприкінці цього часу з'явилася нова ОС, яка незабаром змінить цю парадигму, написаний UNIX, написаний в Bell Labs Кеном Томпсоном та Деннісом Річі.
1973 - Робота між системами
Єдина програма змінила все це, але це не було UNIX. Це був компілятор C (який, як відомо, був зроблений у гаражі Кеном Томпсоном та Деннісом Річі після того, як Bell Labs вирізав його). До цього моменту кожен раз, коли ви писали код, це був або машинний код (код, який машина безпосередньо розуміє, але не є портативним), або він був написаний мовою, яка склала ваш код до байтового коду (код, який інтерпретується іншою програмою як він пробіжки). Величезна різниця для ОС, яку C приніс із собою, полягала в можливості робити те, що відомо, як перехресне компілювання в машинний код. Це означало, що код можна написати один раз і скомпілювати для запуску багатьох різних типів машин до тих пір, поки компілятор був написаний для цієї машини. Операційні системи повинні бути записані в машинному коді, оскільки машинний код - це буквально єдиний код, який машина знає.
Я б сказав, що лише тоді, коли Кен і Денніс вперше склали ядро UNIX за допомогою компілятора C, народилася справжня ОС у сучасному розумінні. До цього ОС була або фізичним об'єктом, або просто попередньо ініціалізованим фрагментом простору пам'яті, розробленим спеціально для конкретної машини. Додавання нових пристроїв до системи буквально вимагає, щоб код «ядра» був переписаний. Тепер UNIX OS, яку вони розробили для певної машини, можна було перекомпілювати та працювати на інших машинах, не переписуючи ВСЕ. відносно високий рівень C коду).