Операционные системы были тесно связаны с компьютерной архитектурой. ОС заботится обо всем вводе и выводе в компьютерной системе. Он управляет пользователями, процессами, управлением памятью, печатью, телекоммуникациями, сетями и т. Д. Он отправляет данные на диск, принтер, экран и другие периферийные устройства, подключенные к компьютеру.
До введения операционной системы,
Что использовалось в компьютерных системах, чтобы заставить их работать?
Какая концепция была использована для операционной системы в нашей эволюции компьютера?
operating-systems
Итачи Учиха
источник
источник
Ответы:
Ранние компьютеры † запускали одну программу за раз.
Программы загружались напрямую (например) с бумажной ленты с пробитыми в ней отверстиями.
Вы запрограммировали самые ранние компьютеры † , установив большой набор выключателей.
Колосс:
Атлас:
Манчестер:
† Я использую слово «компьютер» для обозначения устройства, которое существует в настоящее время в миллиардах. Из этого огромного количества компьютеров все, кроме незначительно малого числа, представляют собой цифровые электронные программируемые компьютеры с сохраненными программами. Я уверен, что оригинальный вопрос не о том, как люди с названием «Компьютер» провели свой рабочий день. Между этими двумя типами компьютеров есть ряд интересных устройств, не охваченных этим ответом.
источник
Источник: История операционных систем
Источник: http://en.wikipedia.org/wiki/History_of_operating_systems
источник
Возвращаясь к началу компьютерных систем, у вас не было ни одной компьютерной системы, вместо этого у вас были мэйнфреймы.
Эти мэйнфреймы будут работать на перфокартах, которые будут содержать вашу программу (и часто ваши данные). Люди получат выделенное время на этих системах, возьмут с собой свои карты и подключат их к машинам, чтобы они могли их обработать. Машина будет запускать программу до тех пор, пока она не закончит, затем следующий пользователь придет со своей лентой и карточками.
По сути, так оно и было.
источник
1890-1950 - Операция, присущая системе Самые ранние компьютеры имели эквивалент того, что сейчас делает в них ОС. Вы (оператор) также были частью операционной системы. Вы щелкнули переключатели регистра (или использовали перфокарту) и физически поменяли местами провода шины (вспомните телефонную станцию старого образца), и память была связана (через физические провода) напрямую с лампочкой (монитор дня) и принтерами ( долговременное хранение) таким образом, чтобы вывод программы загорелся и распечатывался непосредственно на устройстве, поскольку он был помещен в буфер памяти вывода. Для этих вещей не было необходимости в драйвере, потому что (из-за того, как эти физические провода работали) они «просто работали» (в наши дни не было такого понятия, как монитор). На самом деле, до этой эры прошло еще несколько десятилетий, пока не будет изобретен цифровой цифровой дисплей, чтобы вы могли фактически видеть числа, которые вы уже ввели в регистр, и выводить их как десятичные числа; Принтеры правили всю эту эпоху вплоть до мониторов. Они были подключены именно так, как им нужно, чтобы работать правильно. Ничто из этого не сильно изменилось с переходом с механического (1890-е годы) на электрический аналоговый (1910-е годы) на цифровой (1930-е годы). Эта архитектура «Plug N play» была заменена системой прерываний в течение этого времени, и она не появится снова до конца девяностых; конечно к тому времени было бы намного меньше подключения. При наличии прерываний устройствам разрешалось занимать процессорное время, что позволяло архитектурам, напрямую связан с аппаратным обеспечением, но потребовалось несколько поколений, чтобы этот процесс стал действительно упорядоченным процессом, который мы видим в арке x86 (и новее); ранние системы часто сталкивались с ужасными условиями гонки, проблемами с совместимостью оборудования / задержками и другим странным поведением в случае прерываний. Потому что каждая машина использовала радикально разные (экспериментальные) архитектуры в этот период; почти все устройства были сделаны на заказ для машины, на которой они работали.
1950-1973 - работа в системе В эту эпоху появилось большинство функций, о которых мы думаем, когда говорим о настоящей операционной системе. В эту эпоху были представлены отладка, языки программирования, многопользовательская работа, многозадачность, терминалы, дисковые накопители, работа в сети, стандартизация компонентов и т. Д. На этот раз произошел гигантский скачок в направлении стандартизации большей части этого, что означало, что у нас было больше стандартизированных устройств, но все же каждая ОС создавалась вручную для каждой машины, что означало, что функциональность ОС была строго ограничена тем, что инженеры, которые разрабатывали эту конкретную систему, решили, что им нужно , В течение этого времени существовала серая область, в которой находилась операционная система, потому что разные архитектуры работают по-разному, и машине более общего назначения потребуется намного больше ОС, чем машине, которая включает аппаратное обеспечение для выполнения тех же задач. Дело в том, что аппаратное обеспечение всегда будет быстрее, чем программное обеспечение, и практически все, что делается в программном обеспечении, теоретически может быть сделано в аппаратном обеспечении (это стоимость \ гибкость \ размер \ время \ и т. Д., Что ограничивает нас от создания практически чистой аппаратной версии всего этого) день). ОС была создана для конкретного компьютера или типа компьютера; это не будет работать в другом месте. Каждый новый компьютерный дизайн требовал переписывания всего программного обеспечения низкого уровня для работы с конкретной моделью машины. Ближе к концу этого времени появилась новая ОС, которая вскоре изменит эту парадигму, UNIX, написанная в Bell Labs Кеном Томпсоном и Деннисом Ричи.
1973 - Работа между системами Одна программа изменила все это, но это была не UNIX. Это был компилятор Си (который был классно сделан в гараже Кеном Томпсоном и Деннисом Ричи после того, как Bell Labs его сократил). До этого момента каждый раз, когда вы писали код, он был либо машинным кодом (код, который машина непосредственно понимает, но не является переносимым), либо он был написан на языке, который компилировал ваш код в байтовый код (код, который интерпретируется другой программой как работает). Огромная разница для ОС, которую принес C, заключалась в возможности делать то, что известно как кросс-компиляция в машинный код. Это означало, что код мог быть написан один раз и скомпилирован для работы на множестве разных типов машин, если компилятор был написан для этой машины. Операционные системы должны быть написаны в машинном коде, потому что машинный код буквально единственный код, который машина знает.
Я бы сказал, что только когда Кен и Деннис впервые скомпилировали ядро UNIX с использованием компилятора C, родилась настоящая ОС в современном понимании. До этого операционная система представляла собой либо физический объект, либо просто предварительно инициализированный кусок пространства памяти, предназначенный специально для конкретной машины. Добавление новых устройств в систему буквально требовало переписывания кода «ядра». Теперь ОС UNIX, которую они разработали для конкретной машины, можно было перекомпилировать и запускать на других машинах без переписывания ВСЕГО (если эта машина могла компилировать компилятор C из среды начальной загрузки, остальная часть ОС могла быть записана в относительно высокий уровень кода С).
источник
В начале программы были зашиты в компьютер, который запускал программу сразу из определенного места при загрузке.
Затем были изобретены различные формы автономного хранилища: перфокарты, кассета, барабаны, даже диски. Гораздо более гибкий. Но не доступны напрямую из процессора. Перед запуском программа должна быть загружена в память. Итак, вы пишете программу для загрузки вашей программы. Это называется загрузчиком или начальной загрузкой (от выражения «чтобы подтянуть себя к ботинкам»).
Поскольку система усложняется, у вас может быть простой загрузчик, загружающий более сложный загрузчик. Это началось с микрокомпьютеров: обычный загрузчик ленты работал медленно, поэтому загрузите декомпрессор и быстро загрузите оставшуюся часть ленты. Или дисковые загрузчики, которые удваиваются как системы защиты от копирования, выполняя нестандартные действия с диском.
Или процесс загрузки ПК до UEFI: процессор начинает выполняться в BIOS. Это загрузит первый сектор с диска и перейдет к нему. Он ищет активный раздел и оттуда загружает загрузчик, который загружает операционную систему. Первоначально это было бы COMMAND.COM для MSDOS; теперь это обычно NTLDR.EXE для Windows.
источник
Следует отметить, что в раннем оборудовании (до 1960 года) ввод / вывод был намного проще. Вы могли прочитать карточку, или перфорировать карточку, или напечатать строку на принтере, каждая с одной инструкцией: размер буфера был фиксирован, и часто адрес буфера тоже фиксирован.
Даже в начале 60-х годов, с более сложными процессорами (например, 7090), вы все равно могли читать или перфорировать карты с помощью небольшой подпрограммы (около 20 инструкций), которая была легко скопирована в каждую программу.
Поскольку компьютер был полностью предназначен для выполнения одной работы, не имело значения, находится ли процессор в режиме ожидания, ожидая, когда устройство чтения карт будет готово прочитать следующую карту, или чтобы линейный принтер заполнил следующую строку.
Ну, это имело значение, потому что вычислительное время было на самом деле дорого Вот почему люди изобрели многопроцессорность, совместное использование времени, добавили асинхронный ввод-вывод, а также прерывания, драйверы устройств и операционные системы. Интерфейсы аппаратных устройств стали более сложными для программиста, предоставляя доступ к регистрам ввода-вывода более низкого уровня, что требовало большей сложности от драйверов устройств. Эта сложность (память, время программирования) амортизировалась для нескольких программ с использованием устройств «одновременно», мультиплексированных операционной системой.
Еще в 80-х годах я использовал компьютер на базе микропроцессора, эмулирующий одну из этих старых систем. Машинные инструкции имели единый формат более 80 бит (10 октетов), и инструкция для чтения первого сектора первого жесткого диска и сохранения его в памяти по адресу 0 была очень удобной: 0000000000. Таким образом, процедура загрузки состояла каждое утро набрать эту инструкцию на терминале, который сохранил ее по адресу 0 и выполнил ее, после чего загрузил загрузочный сектор и продолжил выполнение при следующей инструкции (по адресу 10). Файловая система состояла из статической таблицы, сопоставляющей «имена» файлов с диапазонами секторов, которые были выделены вручную! Операции ввода / вывода выполнялись в ассемблере для этих файлов путем непосредственного чтения или записи секторов, смещенных на положение файла на жестком диске, который был восстановлен командой "
источник
Компьютеры первого поколения, предназначенные для более широкого личного использования, имели в ПЗУ так называемый «Монитор» (постоянная память).
Сразу после загрузки монитор предоставил очень ограниченный интерфейс командной строки, главным образом, для загрузки программы из хранилища данных, такого как магнитофон, и для запуска выполнения (несколько других команд были доступны для ручного ввода кода, хотя это редко требовалось). Только одна программа может быть запущена одновременно.
В отличие от операционной системы, у Monitor не было никакой поддержки файловой системы. Оператор-человек отвечал за поиск нужной ленты, ее установку на магнитофон и позиционирование в начале нужной программы для загрузки.
Мониторинг объединил функции как BIOS, так и операционной системы и уже был очень четко программным обеспечением.
После включения короткий сигнал «сброса» просто обнулял программный счетчик так же, как и любой другой счетчик, одновременно переключая устройство отображения памяти (если оно было), чтобы отобразить адрес 0000 в ПЗУ монитора. Позднее было принято иметь какую-то аппаратную схему для переназначения Monitor в большое адресное пространство. Помимо запуска кода, кнопка «Сброс» также использовалась для завершения работающей программы, чтобы можно было загрузить другую.
Элементарную кнопку «перезагрузить» можно найти на некоторых настольных ПК даже в наши дни.
источник
Самым прямым предшественником операционной системы будет комбинация стандартных библиотек для взаимодействия с устройствами и система загрузчика для загрузки программы в память и начала работы.
источник