Перед операційними системами, яка концепція була використана для того, щоб вони працювали? [зачинено]


50

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

До впровадження операційної системи,

Що було використано в комп'ютерних системах, щоб змусити їх працювати?

Яка концепція використовувалася в операційній системі в нашій еволюції комп'ютера?


5
"До цього те, що використовувалося в комп'ютерних системах ..." - Це було те саме, як ніби ви сьогодні не працювали з ОС. Ви запускаєте пакетні завдання, передаючи всю комп'ютерну систему одному користувачеві, по одному.
тирса


4
Подумайте про код, який працює на мікроконтролері. Він не працює в операційній системі, але це C-код, який компілюється до машинного коду, і запускається на реальному фізичному пристрої (після цього машинний код "прошитий" на прошивку). Операційні системи просто полегшують взаємодію декількох програм одночасно з усіма частинами комп'ютера, використовуючи концепції обміну ресурсами та планування процесів . Так само ви можете також використовувати операційну систему на тому маленькому мікроконтролері - якщо вам це потрібно.
Прорив

Багато відповідей зосереджено на вході / виводу, на завантаженні програм та на периферійні пристрої. Але це лише затьмарює мету ОС: управління ресурсами та обмін ресурсами, а можливо, і можливості для багатьох користувачів. Призначення ОС не змінюється, якщо ви завантажуєте код з дроту, перфорованої стрічки або барабана або використовуєте сучасну SD-карту.
тирса

Колода картки. Перфорована паперова стрічка. Оператор, щоб подавати те саме через комп’ютер.
Даніель Р Хікс

Відповіді:


42

Ранні комп’ютери запускали по одній програмі.

Програми безпосередньо завантажували з (наприклад) паперової стрічки з пробивними в ній отворами.

Ви запрограмували найдавніші комп'ютери , встановивши великий набір вимикачів.

Колос:

Атлас:

Манчестер:


Я використовую слово "Комп'ютер" для позначення типу пристрою, який існує сьогодні в мільярдах. З цієї величезної кількості комп’ютерів усі, крім незначно невеликої кількості, - це цифрові електронно-програмовані комп'ютери із збереженими програмами. Я впевнений, що оригінальне запитання не в тому, як люди з назвою "Комп'ютер" провели свій робочий день. Між цими двома типами комп'ютерів спостерігається прогресування цікавих пристроїв, не висвітлених у цій відповіді.


1
У мене є обладнання, з яким я працюю, і використовує ці перемикачі на другому малюнку. Він також запускає програми точно так само. Оновлення за використання такої чудової картини
Рамхаунд

хіба не найдавніші, скажімо, ENIAC, провідникові? Не переключений і не має збережених програм? Або це вже не комп’ютер через це ... цікаво
Річ Хомолка

1
@RichHomolka: Як ви розумієте, це дійсно залежить від того, що ви вважаєте комп'ютером. Більшість людей сьогодні, ймовірно, мають на увазі цифровий електронний програмований комп'ютер. Звичайно, були, наприклад, механічні аналогові комп’ютери, а найдавніші комп’ютери були людьми (це була посадова робота). Якщо я знайду час, я можу розширити відповідь на вирішення цього питання. Я вважаю, що ENIAC був запрограмований маніпулюванням комутаторами та кабелями.
RedGrittyBrick

Операційні системи з'явилися досить рано (1956 - див. En.wikipedia.org/wiki/GM-NAA_I/O ). Перший масовий комп'ютер був близько 1954 року
Брюс Мартін,

"Я впевнений, що первісне питання не в тому, як люди з назвою" Комп'ютер "провели свій робочий день" - моя бабуся була комп'ютером.
Пол Д. Уейт

13

Джерело: Історія операційних систем

Операційні системи розвивались через цілий ряд різних фаз чи поколінь, які приблизно відповідають десятиліттям.

1940-ті - перші покоління

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

1950-ті - друге покоління

На початку 50-х років розпорядок життя дещо покращився із впровадженням перфокарт. General Motors Research Laboratories реалізовані перші операційні системи на початку 1950 -х років їх IBM 701 . Система 50-х років зазвичай працювала по одній роботі. Їх називали однопотоковими системами пакетної обробки, оскільки програми та дані подавались групами або партіями.

Джерело: http://en.wikipedia.org/wiki/History_of_operating_systems

Найдавнішими комп'ютерами були мейнфрейми, у яких бракувало будь-якої форми операційної системи.

Кожен користувач користувався машиною виключно протягом запланованого періоду часу і приїжджав до комп'ютера з програмою та даними, часто на перфорованих паперових картах та магнітній або паперовій стрічці. Програма буде завантажена в машину, і машина буде налаштована на роботу до тих пір, поки програма не завершиться або завершиться збоєм.

Програми, як правило, можна налагоджувати через панель управління, використовуючи тумблери та індикатори панелі. Кажуть, що Алан Тьюрінг був майстром цього на ранній машині Манчестер Марк 1, і він вже виводив примітивну концепцію операційної системи з принципів універсальної машини Тьюрінга.


10

Повернувшись до запуску комп'ютерних систем, у вас не було єдиних комп'ютерних систем, натомість у вас були основні кадри.

введіть тут опис зображення

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

В основному саме так воно і працювало.


4
Отже, "операційна система" тут - це, хто робить планування для користувачів?
Кайл Странд

2
Моя думка полягає в тому, що ваша відповідь насправді не пояснює, що ви маєте на увазі під "чітко кажучи, операційні системи існують вже дуже давно в тій чи іншій формі". Ви надаєте основний опис мейнфреймів, але зовсім не ясно, що ці мейнфрейми мали щось віддалене, схоже на те, що ми називаємо "операційними системами".
Кайл Странд

3
Я знаю, що ви намагаєтесь сказати, але мені це не дуже приємно з цим описом, будучи достатньо старшим, щоб працювати над мейнфреймами, які відповідають вашому точному опису мейнфрейму вище, але який дійсно містив операційну систему. Основним кадром на вашому зображенні, ймовірно, буде мейнфрейм IBM 70-х років (як / 360 або s / 370?) З ОС / 360 або рання версія MVS.
Роб Моїр

2
Немає такого поняття, як "перфоровані магнітні карти" . Ваше фото "мейнфрейму" відповідає думі Голлівуду та мирян на комп’ютері: ряди транспортувань магнітофонних стрічок.
тирса

1
Тут доволі мало помилок. Як сказав @sawdust, перфокарти не були магнітними. Також перфокарти часто містили вашу програму та ваші дані; або ваша програма може бути на паперовій (перфорованій) стрічці. Магнітні котушки були набагато пізніше. До цього програми завантажувалися за допомогою панельних комутаторів, як показано у відповіді RedGrittyBrick, або шляхом перезарядки комп'ютера за допомогою плати. Я знайшов батька, сина та компанії цікавою та інформативною історією.
Stephen P

6

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 коду).


1
Хтось згадав, що ОС \ 360 прийшли до UNIX. Це також вірно, але, як і всі інші ОС цього дня, він був кодований вручну для кожної окремої моделі машини, на якій він працював.
krowe

1
Хтось згадав, що FORTRAN також може перетинати компіляцію. це правда, це зробив і ALGOL (попередник C), але C першим був завантажений, щоб створити машину, незалежну ОС.
krowe

1
" поки Кен і Денніс вперше не склали ядро ​​UNIX ... що народилася справжня ОС у сучасному розумінні .." OMG. Менш правдивих слів рідко написано на цьому сайті. Немає сенсу, в якому це твердження віддалено точно.
RBarryYoung

1
також ігнорує MULTICS (і BCPL)
Френсіс Деві

Більшість речей, перерахованих вище про пріоритет UNIX та C, є невірними, особливо, чому UNIX та C були настільки важливими в історії ОС. Це було майже повністю пов'язано з Указом про згоду 1974 року проти AT&T, який означав, що він (і багато інших технологій AT&T) був безкоштовним , включаючи вихідний код . Через це справжніми "першими" були як перша вільно повнофункціональна сучасна ОС і компілятор низького рівня, включаючи весь вихідний код. Поодиноке становище, яке він би обіймав протягом 10-20 років, перш ніж його конкуренти чесно визнають перевагу, яку йому дали.
RBarryYoung

3

На початку програми були вбудовані в комп'ютер, який запустив програму негайно з певного місця завантаження.

Тоді були винайдені різні форми зберігання в режимі офлайн: перфокарти, стрічка, барабани, навіть диски. Набагато гнучкіший. Але безпосередньо доступний з процесора. Програма повинна бути завантажена в пам'ять до її запуску. Отже, ви пишете програму для завантаження програми. Це відоме як завантажувач або завантажувальний пристрій (від виразу "підтягувати себе за ремінці завантаження").

Оскільки система ускладнюється, вам, можливо, простий завантажувач завантажить більш складний навантажувач. Це почалося з мікрокомп'ютерів: звичайний завантажувач стрічки був повільним, тому завантажте декомпресор і швидко завантажте решту стрічки. Або дискові завантажувачі, які збільшилися вдвічі як системи захисту від копіювання, роблячи нестандартні речі з диском.

Або процес завантаження ПК UEFI: процесор починає виконувати в BIOS. Це завантажує перший диск з диска і переходить на нього. Це шукає активний розділ і завантажує звідти завантажувач, який завантажує операційну систему. Спочатку це було б COMMAND.COM для MSDOS; зараз це зазвичай NTLDR.EXE для Windows.


3

Слід зазначити, що на початку обладнання (до 1960 року) введення / виведення було значно спрощеним. Ви можете прочитати карту, пробити карту або надрукувати рядок на принтері, кожен з однією інструкцією: розмір буфера був фіксований, а часто буферну адресу також фіксували.

Навіть на початку 60-х років, за допомогою більш досконалих процесорів (наприклад, 7090) ви все ще могли читати чи пробивати картки з невеликою рутиною (приблизно 20 інструкцій), яку легко було скопіювати у кожну програму.

Оскільки комп'ютер повністю присвячений одній роботі, не має значення, чи процесор простоював, дочекавшись, коли зчитувач карт буде готовий прочитати наступну карту, чи лінійний принтер підживить наступний рядок.

Що ж, це мало значення, адже час на обчислення насправді був дорогим. Ось чому люди винайшли багатообробну обробку, розподіл часу, додали асинхронний введення-виведення та переривання та драйвери пристроїв та операційні системи. Інтерфейси апаратних пристроїв стали більш складними для програміста, надаючи доступ до регістрів вводу / виводу нижчого рівня, що вимагало більшої складності від драйверів пристроїв. Ця вартість складності (пам'ять, час програмування) була амортизована за декількома програмами з використанням пристроїв "одночасно", мультиплексованих операційною системою.

Ще в 80-х я використовував комп'ютер на базі мікропроцесора, емуляції однієї з тих старих систем. Інструкції машини мали єдиний формат понад 80 біт (10 октетів), а інструкція зчитувати перший сектор першого жорсткого диска та зберігати його в пам'яті за адресою 0 була дуже зручною: 0000000000. Отже процедура завантаження полягала щоранку набрати цю інструкцію на термінал, який зберігав її за адресою 0 та виконав її, яка потім завантажила завантажувальний сектор та продовжила виконання наступної інструкції (за адресою 10). Файлова система складалася зі статичного таблиці, що відображає файл "імена" в діапазони секторів, які були виділені вручну! Введення / виведення було виконано в асемблері до цих файлів шляхом прямого читання або запису секторів, компенсованого положенням файлу на жорсткому диску, який було відновлено "


2

Перше покоління комп'ютерів, розроблених для більш широкого особистого користування, мала так званий "Монітор" в ПЗУ (лише для читання в пам'яті).

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

На відміну від операційної системи, Monitor не мав жодної підтримки файлової системи. Людський оператор відповідав за пошук потрібної стрічки, поклавши її на диктофон і розмістивши на початку необхідну програму для завантаження.

Контролюйте комбіновані функції як BIOS, так і операційної системи і вже дуже чітко було програмним забезпеченням.

Після включення короткий сигнал "скидання" просто нулював програмний лічильник так само, як і будь-який інший лічильник, одночасно перемикаючи відображувач пам'яті (якщо такий був), щоб відобразити адресу 0000 на ПЗУ Monitor. Пізніше було встановлено деяку апаратну схему для перестановки Монітора у високий адресний простір пізніше. Крім запуску коду, кнопка «Скинути» також використовувалася для припинення запущеної програми, щоб можна було завантажити іншу.

Рудиментарну кнопку «скидання» можна знайти на деяких настільних ПК навіть у ці дні.


Це стосується першого (або другого) покоління "персональних комп'ютерів" для домашнього використання. Перш ніж вони існували, учні середніх шкіл мали віддалений доступ до комп’ютерів із розподілом часу, які працювали по-різному, але все ще були "розроблені для широкого використання". Я не впевнений, що в першому поколінні домашнього комп’ютера, Altairs і Heathkits, усі були монітори командного рядка.
RedGrittyBrick

0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.