Что явилось прообразом первых операционных систем. Эволюция операционных систем

Среди всех системных программ, с которыми приходится иметь дело пользователям компьютеров, особое место занимают операционные системы.
Операционная система - это программа, которая запускается сразу после включения компьютера и позволяет пользователю управлять компьютером.

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

Операционная система Multics
Итак, все началось в далеком 1965-м... Четыре года компания American Telegraph & Telephone Bell Labs совместно с фирмой General Electric и группой исследователей из Масачусетского технологического института творила проект Os Multics (также именуемый MAC - не путать с МасOS). Целью проекта было создание многопользовательской интерактивной операционной системы, обеспечивающей большое число пользователей удобными и мощными средствами доступа к вычислительным ресурсам. Эта ОС основывалась на принципах многоуровневой защиты. Виртуальная память имела сегментно-страничную организацию, где с каждым сегментом связывался уровень доступа. Для того, чтобы какая-либо программа могла вызвать программу или обратиться к данным, располагающимся в некотором сегменте, требовалось, чтобы уровень выполнения этой программы был не ниже уровня доступа соответствующего сегмента. Также впервые в Multics была реализована полностью централизованная файловая система. То есть, даже если файлы находятся на разных физических устройствах, логически они как бы присутствуют на одном диске. В директории же указан не сам файл, а лишь линк на его физическое местонахождение. Если вдруг файла там не оказывается, умная система просит вставить соответствующий девайс. Помимо этого, в Multics наличествовал большой объем виртуальной памяти, что позволяло делать имэйджи файлов из внешней памяти в виртуальную. Увы, но все попытки наладить в системе относительно дружественный интерфейс провалились. Было вложено много денег, а результат был несколько иной, нежели хотелось ребятам из Bell Labs. Проект был закрыт. Кстати, участниками проекта значились Кен Томпсон и Денис Ритчи. Несмотря на то, что проект был закрыт, считается, что именно ОС Multics дала начало ОС Unix.

Операционная система Unix
Считается, что в появлении Юникса в частности виновата... компьютерная игра. Дело в том, что Кен Томпсон (смотрите фото слева) непонятно чего ради создал игрушку «Space Travel». Он написал ее в 1969 году на компьютере Honeywell-635, который использовался для разработки Multics. Но фишка в том, что ни вышеупомянутый Honeywell, ни имевшийся в лаборатории General Electric-645 не подходили для игрушки. И Кену пришлось найти другую ЭВМку - 18-разрядный компьютер РDР-7. Кен с ребятами разрабатывал новую файловую систему, дабы облегчить себе жизнь и работу. Ну и решил опробовать свое изобретение на новенькой машине. Опробовал. Весь отдел патентов Bell Labs дружно радовался. Томпсону этого показалось мало и он начал ее усовершенствовать, включив такие функции как inodes, подсистему управления процессами и памятью, обеспечивающую использование системы двумя пользователями в режиме TimeSharing"а (разделения времени) и простой командный интерпретатор. Кен даже разработал несколько утилит под систему. Собственно, сотрудники Кена еще помнили, как они мучались над ОС Multics, поэтому в честь старых заслуг один из них - Брайан Керниган - решил назвать ее похожим именем - UNICS. Через некоторое время название сократили до UNIX (читается так же, просто писать лишнюю букву настоящим нрограммистам во все времена было лень). ОС была написана на ассемблере.

Вот мы и подбираемся к тому, что известно в мире как «Первая редакция UNIX». В ноябре 1971 года был опубликован первый выпуск полноценной доки по Юниксу. В соответствии с этим и ОС была названа «Первой редакцией UNIX». Вторая редакция вышла довольно быстро - меньше, чем через год. Третья редакция ничем особенным не отличалась. Разве что заставила Дениса Ритчи (смотрите фото слева) «засесть за словари», вследствие чего тот написал собственный язык, известный сейчас как С. Именно на нём была написана 4-я редакция UNIX в 1973 году. В июле 1974 года вышла 5-я версия UNIX. Шестая редакция UNIX (аkа UNIX V6), выпущенная в 1975 году, стала первым коммерчески распространяемым Юниксом. Большая ее часть была написана на С.
Позже была полностью переписана подсистема управления оперативной и виртуальной памятью, заодно изменили интерфейс драйверов внешних устройств. Все это позволило сделать систему легко переносимой на другие архитектуры и было названо «Седьмая редакция» (aka UNIX version 7). Когда в 1976 году в Университет Беркли попала «шестерка», там возникли местные юникс-гуру. Одним из них был Билл Джой.
Собрав своих друзей-программистов, Билли начал разработку собственной системы на ядре UNIX .Запихнув помимо основных функций кучу своих (включая компилятор Паскаля), он назвал всю эту сборную солянку Distribution (BSD 1.0). Вторая версия BSD почти ни чем не отличалась от первой. Третья версия BSD основывалась на переносе UNIX Version 7 на компьютеры семейства VAX, что дало систему 32/V, легшую в основу BSD 3.x. Ну, и самое главное - при этом был разработан стек протоколов ТСР/IР; разработка финансировалась Министерством Безопасности США.
Первая коммерческая система называлась UNIX SYSTEM III и вышла она в 1982 году. В этой ОС сочетались лучшие качества UNIX Version 7.
Далее Юниксы развивались примерно так:
Во-первых, появились компании, занимавшиеся коммерческим переносом UNIX на другие платформы. К этому приложила руку и небезызвестная Microsoft Corporation, совместно с Santa Cruz Operation произведшая на свет UNIX-вариацию под названием XENIX.
Во-вторых, Bell Labs создала группу по развитию Юникса и объявила о том, что все последующие коммерческие версии UNIX (начиная с System V) будут совместимы с предыдущими.
К 1984-му году был выпущен второй релиз UNIX System V, в котором появились: возможности блокировок файлов и записей, копирования совместно используемых страниц оперативной памяти при попытке записи (сору-on-write), страничного замещения оперативной памяти и т. д. К этому времени ОС UNIX была установлена на более чем 100 тыс. компьютеров.
В 1987-м году выпущен третий релиз UNIX System V. Было зарегистрировано четыре с половиной миллиона пользователей этой эпической операционной системы...Кстати, что касается Linux’а, то он возник лишь в 1990 году, а первая официальная версия ОС вышла лишь в октябре 1991 . Как и BSD, Linux распространялся с исходниками, чтобы любой пользователь мог настроить ее себе так, как ему хочется. Настраивалось практически ВСЕ, чего не может себе позволить, например, Windows 9x.

Операционная система DOS
ДОСы были всегда. Первые - от IВМ, году в 1960-х, они были весьма ограничены функционально. Нормальные, дошедшие и до наших времен, и пользовавшиеся относительной известностью, ведут свой счет с QDOS...
Эта менее длинная история, нежели развитие UNIX, началась в 1980 году в фирме Seattle Computer Products. Первоначально названная QDOS, ОС была модифицирована и, переименовавшись к концу года в MS-DOS, была продана нашей всенародно любимой Microsoft. Корпорация IВМ поручила Microsoft работу над ОС для новых моделей компьютеров «Голубого Гиганта» - IВМ-РС. В конце 1981 года вышла первая версия новой ОС - РС-DOS 1.0. Проблема операционной системы была в том, что под каждую конкретную машину ее приходилось настраивать заново. РС-DOS"ом занялась сама IВМ, а Микрософту досталась ее собственная модификация, именуемая MS-DOS. В 1982-м одновременно появились РС-DOS и МS-DOS версии 1.1 с некоторыми добавленными и расширенными возможностями. К 1983-му году были разработаны версии 2.0, в которых появилась поддержка винчестеров, а также улучшенная система администрирования файлов. Третья версия MS-DOS, выпущенная в 1984-м году, дала лишь некоторые улучшения. Последующие версии были направлены на управление базовой и виртуальной памятью вплоть до версии 6.22, после которой появилась жутко урезанная 7.0, входящая в состав какой-то из Windows 9х. Больше Microsoft DOS"ами не занималась.
А тем временем, MS-DOS не умирала. Последняя версия включала в себя практически все, что могла МS-DOS 6.22 плюс такие функции, как средства резервного копирования и восстановления поврежденных данных, встроенные в систему средства антивирусного контроля, обеспечение синхронизации файлов на двух компьютерах и т. д. Еще из ДОСов была такая штука, как РТS-DOS производства одной из российских физических лабораторий. Последняя ее версия означена как 6.65. Но самой необычной является DR-ОреnDos 7.02. Изначально эту OC разрабатывала Digital Research, но потом по каким-то причинам от нее отказалась и продала ее компании Novell. Новелл встроил в нее свои сетевые штучки и продал дальше - фирме CALDERA, которая дополнила DR-DOS средствами доступа в Интернет и сейчас распространяет ее бесплатно.

Операционная система OS/2
Все началось с OC VM (Virtual Machine), что вышла в 1972 году. Выпущенный тогда продукт назывался VM/370 и был предназначен для поддержания сервера для определенного количества пользователей. Эта ОС, давно отметившая свой 25-летний юбилей, по истории которой можно изучать развитие технологий IВМ в области серверных операционных систем и сетевых решений, является надежной и мощной базой для организации корпоративной информационно-вычислительной cистемы, ориентированной на многопользовательскую среду крупной современной фирмы. Система VM/ESA очень эффективно использует возможности аппаратного обеспечения и несколько менее требовательна к вычислительным ресурсам компьютера по сравнению с OS/390, что делает ее хорошим вариантом для использования в качестве платформы для корпоративной системы, информационного сервера крупной организации или сервера в Интернете. Позже IBM организовала совместный проект компаний Microsoft и IВМ, нацеленный на создание операционной системы, лишенной недостатков. Первая версия 0S/2 вышла в конце 1987 года. Она была в состоянии использовать развитые вычислительные возможности процессора и обладала средствами обеспечения связи с большими машинами фирмы IВМ. В 1993 году фирма IВМ выпустила 0S/2 2.1, полностью 32-разрядную систему, обладавшую способностью выполнять приложения, созданные для Windows, имевшую высокую производительность и поддерживающую большое количество периферийных устройств. В 1994 году вышла 0S/2 WARP 3. В этой реализации, помимо дальнейшего повышения производительности и снижения требований к аппаратным ресурсам, появилась поддержка работы в Интернете. Сейчас же из последних версий следует отметить лишь 0S/2 Warp4, способная работать с 64-разрядными процессорами. Кроме того, в ней довольно полно представлены средства взаимодействия с Интернетом, позволяющие 0S/2 выполнять не только клиентские программы, но и выступать в качестве веб-сервера. Начиная с третьей версии, фирмой IВМ поставляются локализованные версии 0S/2 для России. Пройдя довольно большой и сложный путь, эта ОС для персональных компьютеров обладает сегодня такими особенностями, как реальная многозадачность, продуманные и надежные подсистемы управления памятью и администрирования процессов, встроенная поддержка работы в сети и дополнительные функции сетевого сервера, мощный язык программирования REXX, предназначенный для решения задач системного администрирования. Перечисленные возможности позволяют использовать 0S/2 в качестве операционной системы для мощных рабочих станций или сетевых серверов.

Операционная система Windows
Windows была, наверное, первой операционной системой, которую Биллу Гейтсу (смотрите фото слева) никто не заказывал, а разрабатывать ее он взялся на свой страх и риск. Что в ней такого особенного? Во-первых, графический интерфейс. Такой на тот момент был только у пресловутой Мас 0S. Во-вторых, многозадачность. В общем, в ноябре 1985 вышла Windows 1.0. Основной платформой ставились 286-е машины.
Ровно через два года, в ноябре 87-го вышла Windows 2.0, через полтора года вышла 2.10. Ничего особенного в них не было. И вот, наконец, революция! Май 1990-го года, вышла Windows 3.0. Чего там только не было: и ДОС-приложения выполнялись в отдельном окне на полном экране, и Сору-Paste работал для обмена с данными ДОС - приложений, и сами Винды работали в нескольких режимах памяти: в реальном (базовая 640 Кб), в защищенном и расширенном. При этом можно было запускать приложения, размер которых превышает размер физической памяти. Имел место быть и динамический обмен данными (DDE). Через пару лет вышла и версия 3.1, в которой уже отсутствовали проблемы с базовой памятью. Также была введена новомодная функция, поддерживающая шрифты True Туре. Обеспечена нормальная работа в локальной сети. Появился Drag&Drop (перенос мышкой файлов и директорий). В версии 3.11 была улучшена поддержка сети и введено еще несколько малозначительных функций. Параллельно вышла Windows NT 3.5, которая была на тот момент сбором основных сетевых примочек, взятых из 0S/2.

В июне 1995 вся компьютерная общественность была взбудоражена сообщением Microsoft о релизе в августе новой операционной системы, существенно иной, нежели Windows 3.11.
24 августа - дата официального релиза Windows 95 (другие названия: Windows 4.0, Windows Chicago).Теперь это была не просто операционная среда - это была полноценная операционная система. 32-битное ядро позволяло улучшить доступ к файлам и сетевым функциям. 32-битные приложения были лучше защищены от ошибок друг друга, имелась и поддержка многопользовательского режима на одном компьютере с одной системой. Множество отличий в интерфейсе, куча настроек и улучшений.
Чуть позже вышла новая Windows NT с тем же интерфейсом, что и 95-е. Поставлялась в двух вариантах: как сервер и как рабочая станция. Системы Windows NТ 4.x были надежны, но не столько потому, что у Microsoft проснулась совесть, сколько потому, что NТ писали программисты, когда-то работавшие над VАХ/VMS.
В 1996-м году вышла Windows-95 OSR2 (это расшифровывается как Open Service Relase). В дистрибутив входил Internet Explorer 3.0 и какая-то древняя версия Outlook’а (тогда называемая просто Exchange). Из основных функций - поддержка FАТ32, улучшенный инициализатор оборудования и драйверов. Некоторые настройки (в том числе и видео) можно менять без перезагрузки. Имелась и встроенная DOS 7.10 с поддержкой FАТ32.
Год 1998. Вышла Windows-98 со встроенным Internet Explorer 4.0 и Outlook. Появился так называемый Active Desktop. Улучшена поддержка универсальных драйверов и DirectX. Встроена поддержка нескольких мониторов. Опционально можно было добавить замечательную утилиту по переводу жестких дисков из FАТ16 в FАТ32. Встроенный DOS датировался все тем же 7.10.
Через год вышла Windows 98 Special Edition. С оптимизированным ядром. Internet Explorer добрался до версии 5.0, который по большому счету мало чем отличался от 4.x. Интеграция с Всемирной Паутиной, заключающаяся в поставке нескольких слабеньких утилит типа FrontPage и Web Publisher. DOS был все тем же - 7.10.
Год 2000. Выходит полная версия Windows Millenium. Интернет Explorer стал версией 5.5, DOS вроде умер, но умные лица утверждают, что он был, но назывался 8.0. Досовские приложения просто игнорируются. Интерфейс улучшился за счет графических функций и акселерации всего, что может двигаться (включая курсор мышки), плюс пара сетевых функций. Ну и совсем недавно, можно сказать в наше время вышли ОС Windows Vista и Windows server 2008.

Поделитесь с друзьями:

ГЛАВА 1


Эволюция операционных систем

История любой отрасли науки или техники позволяет не только удовлетворить естественное любопытство, но и глубже понять сущность основных достижений этой отрасли, осознать существующие тенденции и правильно оценить перспективность тех или иных направлений развития. За почти полувековой период своего существования операционные системы прошли сложный путь, насыщенный многими важными событиями. Огромное влияние на развитие операционных систем оказали успехи в совершенствовании элементной базы и вычислительной аппаратуры, поэтому многие этапы развития ОС тесно связаны с появлением новых типов аппаратных платформ, таких как мини-компьютеры или персональные компьютеры. Серьезную эволюцию операционные системы претерпели в связи с новой ролью компьютеров в локальных и глобальных сетях. Важнейшим фактором развития ОС стал Интернет. По мере того как эта Сеть приобретает черты универсального средства массовых коммуникаций, ОС становятся все более простыми и удобными в использовании, включают развитые средства поддержки мультимедийной информации, снабжаются надежными средствами защиты.

Появление первых операционных систем

Идея компьютера была предложена английским математиком Чарльзом Бэбиджем (Charles Babage) в середине девятнадцатого века. Его механическая «аналитическая машина» так и не смогла по-настоящему заработать, потому что технологии того времени не удовлетворяли требованиям, необходимым для изготовления нужных деталей точной механики. Конечно, никакой речи об операционной системе для этого «компьютера» не шло.

Настоящее рождение цифровых вычислительных машин произошло вскоре после окончания Второй мировой войны. В середине 40-х были созданы первые ламповые вычислительные устройства. В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, ив программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке. Не было никакого системного программного обеспечения , кроме библиотек математических и служебных подпрограмм, которые программист мог использовать для того, чтобы не писать каждый раз коды, вычисляющие значение какой-либо математической функции или управляющие стандартным устройством ввода-вывода. Операционные системы все еще не появились, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления, который представлял собой примитивное устройство ввода-вывода, состоящее из кнопок, переключателей и индикаторов. С середины 50-х годов начался новый период в развитии вычислительной техники, связанный с появлением новой технической базы - полупроводниковых элементов. Выросло быстродействие процессоров, увеличились объемы оперативной и внешней памяти. Компьютеры стали более надежными, теперь они могли непрерывно работать настолько долго, чтобы на них можно было возложить выполнение действительно практически важных задач.

Наряду с совершенствованием аппаратуры заметный прогресс наблюдался также в области автоматизации программирования и организации вычислительных работ. В эти годы появились первые алгоритмические языки, и таким образом к библиотекам математических и служебных подпрограмм добавился новый тип системного программного обеспечения - трансляторы.

Выполнение каждой программы стало включать большое количество вспомогательных работ: загрузка нужного транслятора (АЛГОЛ, ФОРТРАН, КОБОЛ и т. п.), запуск транслятора и получение результирующей программы в машинных кодах, связывание программы с библиотечными подпрограммами, загрузка программы в оперативную память, запуск программы, вывод результатов на периферийное устройство. Для организации эффективного совместного использования трансляторов, библиотечных программ и загрузчиков в штат многих вычислительных центров были введены должности операторов, профессионально выполнявших работу по организации вычислительного процесса для всех пользователей этого центра.

Но как бы быстро и надежно ни работали операторы, они никак не могли состязаться в производительности с работой устройств компьютера. Большую часть времени процессор простаивал в ожидании, пока оператор запустит очередную задачу. А поскольку процессор представлял собой весьма дорогое устройство, то низкая эффективность его использования означала низкую эффективность использования компьютера в целом. Для решения этой проблемы были разработаны первые системы пакетной обработки, которые автоматизировали всю последовательность действий оператора по организации вычислительного процесса. Ранние системы пакетной обработки явились прообразом современных операционных систем, они стали первыми системными программами, предназначенными не для обработки данных, а для управления вычислительным процессом.

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

Оператор составлял пакет заданий, которые в дальнейшем без его участия последовательно запускались на выполнение управляющей программой - монитором. Кроме того, монитор был способен самостоятельно обрабатывать наиболее часто встречающиеся при работе пользовательских программ аварийные ситуации, такие как отсутствие исходных данных, переполнение регистров, деление на ноль, обращение к несуществующей области памяти и т. д. Пакет обычно представлял собой набор перфокарт, но для ускорения работы он мог переноситься на более удобный и емкий носитель, например на магнитную ленту или магнитный диск. Сама программа-монитор в первых реализациях также хранилась на перфокартах или перфоленте, а в более поздних - на магнитной ленте и магнитных дисках.

Ранние системы пакетной обработки значительно сократили затраты времени на вспомогательные действия по организации вычислительного процесса, а значит, был сделан еще один шаг по повышению эффективности использования компьютеров. Однако при этом программисты-пользователи лишились непосредственного доступа к компьютеру, что снижало эффективность их работы - внесение любого исправления требовало значительно больше времени, чем при интерактивной работе за пультом машины.

Появление мультипрограммных операционных систем для мэйнфреймов

Следующий важный период развития операционных систем относится к годам.

В это время в технической базе вычислительных машин произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам, что открыло путь к появлению следующего поколения компьютеров. Большие функциональные возможности интегральных схем сделали возможным реализацию на практике сложных компьютерных архитектур, таких, например, как IBM/360.

В этот период были реализованы практически все основные механизмы, присущие современным ОС: мультипрограммирование, мультипроцессирование, поддержка многотерминального многопользовательского режима, виртуальная память, файловые системы, разграничение доступа и сетевая работа. В эти годы начинается расцвет системного программирования. Из направления прикладной математики, представляющего интерес для узкого круга специалистов, системное программирование превращается в отрасль индустрии, оказывающую непосредственное влияние на практическую деятельность миллионов людей. Революционным событием данного этапа явилась промышленная реализация мультипрограммирования. (Заметим, что в виде концепции и экспериментальных систем этот способ организации вычислений существовал уже около десяти лет.) В условиях резко возросших возможностей компьютера по обработке и хранению данных выполнение только одной программы в каждый момент времени оказалось крайне неэффективным. Решением стало мультипрограммирование - способ организации вычислительного процесса, при котором в памяти компьютера находилось одновременно несколько программ, попеременно выполняющихся на одном процессоре. Эти усовершенствования значительно улучшили эффективность вычислительной системы: компьютер теперь мог использоваться почти постоянно, а не менее половины времени работы компьютера, как это было раньше.

Мультипрограммирование было реализовано в двух вариантах - в системах пакетной обработки и разделения времени.

Мультипрограммные системы пакетной обработки так же, как и их однопрограммные предшественники, имели своей целью обеспечение максимальной загрузки аппаратуры компьютера, однако решали эту задачу более эффективно. В мультипрограммном пакетном режиме процессор не простаивал, пока одна программа выполняла операцию ввода-вывода (как это происходило при последовательном выполнении программ в системах ранней пакетной обработки), а переключался на другую готовую к выполнению программу. В результате достигалась сбалансированная загрузка всех устройств компьютера, а следовательно, увеличивалось число задач, решаемых в единицу времени. В мультипрограммных системах пакетной обработки пользователь по-прежнему был лишен возможности интерактивно взаимодействовать со своими программами. Для того чтобы хотя бы частично вернуть пользователям ощущение непосредственного взаимодействия с компьютером, был разработан другой вариант мультипрограммных систем - системы разделения времени. Этот вариант рассчитан на многотерминальные системы, когда каждый пользователь работает за своим терминалом. В числе первых операционных систем разделения времени, разработанных в середине 60-х годов, были TSS/360 (компания IBM), CTSS и MULTICS (Массачусетский технологический институт совместно с Bell Labs и компанией General Electric). Вариант мультипрограммирования, применяемый в системах разделения времени, был нацелен на создание для каждого отдельного пользователя иллюзии единоличного владения вычислительной машиной за счет периодического выделения каждой программе своей доли процессорного времени. В системах разделения времени эффективность использования оборудования ниже, чем в системах пакетной обработки, что явилось платой за удобства работы пользователя.

Многотерминальный режим использовался не только в системах разделения времени, но и в системах пакетной обработки. При этом не только оператор, но и все пользователи получали возможность формировать свои задания и управлять их выполнением со своего терминала. Такие операционные системы получили название систем удаленного ввода заданий. Терминальные комплексы могли располагаться на большом расстоянии от процессорных стоек, соединяясь с ними с помощью различных глобальных связей - модемных соединений телефонных сетей или выделенных каналов. Для поддержания удаленной работы терминалов в операционных системах появились специальные программные модули, реализующие различные (в то время, как правило, нестандартные) протоколы связи, Такие вычислительные системы с удаленными терминалами, сохраняя централизованный характер обработки данных, в какой-то степени являлись прообразом современных сетей, а соответствующее системное программное обеспечение - прообразом сетевых операционных систем.

К этому времени можно констатировать существенное изменение в распределении функций между аппаратными и программными средствами компьютера. Операционные системы становились неотъемлемыми элементами компьютеров, играя роль «продолжения» аппаратуры. В первых вычислительных машинах программист, напрямую взаимодействуя с аппаратурой, мог выполнить загрузку программных кодов, используя пультовые переключатели и лампочки индикаторов, а затем вручную запустить программу на выполнение, нажав кнопку «пуск». В компьютерах 60-х годов большую часть действий по организации вычислительного процесса взяла на себя операционная система. (В большинстве современных компьютеров не предусмотрено даже теоретической возможности выполнения какой-либо вычислительной работы без участия операционной системы. После включения питания автоматически происходит поиск, загрузка и запуск операционной системы, а в случае ее отсутствия компьютер просто останавливается.)

Реализация мультипрограммирования потребовала внесения очень важных изменений в аппаратуру компьютера, непосредственно направленных на поддержку нового способа организации вычислительного процесса. При разделении ресурсов компьютера между программами необходимо обеспечить быстрое переключение процессора с одной программы на другую, а также надежно защитить коды и данные одной программы от непреднамеренной или преднамеренной порчи другой программой. В процессорах появился привилегированный и пользовательский режимы работы, специальные регистры для быстрого переключения с одной программы на другую, средства защиты областей памяти, а также развитая система прерываний.

В привилегированном режиме, предназначенном для работы программных модулей операционной системы, процессор мог выполнять все команды, в том числе и те из них, которые позволяли осуществлять распределение и защиту ресурсов компьютера. Программам, работающим в пользовательском режиме, некоторые команды процессора были недоступны. Таким образом, только ОС могла управлять аппаратными средствами и исполнять роль монитора и арбитра для пользовательских программ, которые выполнялись в непривилегированном, пользовательском режиме.

Система прерываний позволяла синхронизировать работу различных устройств компьютера, работающих параллельно и асинхронно, таких как каналы ввода-вывода, диски, принтеры и т. п. Аппаратная поддержка операционных систем стала с тех пор неотъемлемым свойством практически любых компьютерных систем, включая персональные компьютеры.

Еще одной важной тенденцией этого периода является создание семейств программно-совместимых машин и операционных систем для них. Примерами семейств программно-совместимых машин, построенных на интегральных микросхемах, являются серии машин IBM/360 и IBM/370 (аналоги этих семейств советского производства - машины серии ЕС), PDP-11 (советские аналоги - CM-3, CM-4, CM-1420). Вскоре идея программно-совместимых машин стала общепризнанной.

Программная совместимость требовала и совместимости операционных систем. Однако такая совместимость подразумевает возможность работы на больших и на малых вычислительных системах, с большим и с малым количеством разнообразной периферии, в коммерческой области и в области научных исследований. Операционные системы, построенные с намерением удовлетворить всем этим противоречивым требованиям, оказались чрезвычайно сложными. Они состояли из многих миллионов ассемблерных строк, написанных тысячами программистов, и содержали тысячи ошибок, вызывающих нескончаемый поток исправлений. Операционные системы этого поколения были очень дорогими. Так, разработка OS/360, объем кода для которой составил 8 Мбайт, стоила компании IBM 80 миллионов долларов.

Однако несмотря на необозримые размеры и множество проблем, OS/360 и другие ей подобные операционные системы этого поколения действительно удовлетворяли большинству требований потребителей. За это десятилетие был сделан огромный шаг вперед и заложен прочный фундамент для создания современных операционных систем.

Операционные системы и глобальные сети

В начале 70-х годов появились первые сетевые операционные системы, которые в отличие от многотерминальных ОС позволяли не только рассредоточить пользователей, но и организовать распределенное хранение и обработку данных между несколькими компьютерами, связанными электрическими связями. Любая сетевая операционная система, с одной стороны, выполняет все функции локальной операционной системы, а с другой стороны, обладает некоторыми дополнительными средствами, позволяющими ей взаимодействовать по сети с операционными системами других компьютеров. Программные модули, реализующие сетевые функции, появлялись в операционных системах постепенно, по мере развития сетевых технологий, аппаратной базы компьютеров и возникновения новых задач, требующих сетевой обработки.

Хотя теоретические работы по созданию концепций сетевого взаимодействия велись почти с самого появления вычислительных машин, значимые практические результаты по объединению компьютеров в сети были получены в конце 60-х, когда с помощью глобальных связей и техники коммутации пакетов удалось реализовать взаимодействие машин класса мэйнфреймов и суперкомпьютеров. Эти дорогостоящие компьютеры часто хранили уникальные данные и программы, доступ к которым необходимо было обеспечить широкому кругу пользователей, находившихся в различных городах на значительном расстоянии от вычислительных центров.

В 1969 году Министерство обороны США инициировало работы по объединению суперкомпьютеров оборонных и научно-исследовательских центров в единую сеть. Эта сеть получила название ARPANET и явилась отправной точкой для создания самой известной ныне глобальной сети - Интернета. Сеть ARPANET объединяла компьютеры разных типов, работавшие под управлением различных ОС с добавленными модулями, реализующими коммуникационные протоколы, общие для всех компьютеров сети.

В 1974 году компания IBM объявила о создании собственной сетевой архитектуры для своих мэйнфреймов, получившей название SNA (System Network Architecture). Эта многоуровневая архитектура, во многом подобная стандартной модели OSI, появившейся несколько позже, обеспечивала взаимодействие типа «терминал-терминал», «терминал-компьютер» и «компьютер-компьютер» по глобальным связям. Нижние уровни архитектуры были реализованы специализированными аппаратными средствами, наиболее важным из которых является процессор телеобработки. Функции верхних уровней SNA выполнялись программными модулями. Один из них составлял основу программного обеспечения процессора телеобработки. Другие модули работали на центральном процессоре в составе стандартной операционной системы IBM для мэйнфреймов.

В это же время в Европе велись активные работы по созданию и стандартизации сетей Х.25. Эти сети с коммутацией пакетов не были привязаны к какой-либо конкретной операционной системе. После получения статуса международного стандарта в 1974 году протоколы Х.25 стали поддерживаться многими операционными системами. С 1980 года компания IBM включила поддержку протоколов Х.25 в архитектуру SNA и в свои операционные системы.

Операционные системы мини-компьютеров и первые локальные сети

К середине 70-х годов наряду с мэйнфреймами широкое распространение получили мини-компьютеры, такие как PDP-11, Nova, HP. Мини-компьютеры первыми использовали преимущества больших интегральных схем, позволившие реализовать достаточно мощные функции при сравнительно невысокой стоимости компьютера.

Архитектура мини-компьютеров была значительно упрощена по сравнению с мэйнфреймами, что нашло отражение и в их операционных системах. Многие функции мультипрограммных многопользовательских ОС мэйнфреймов были усечены, учитывая ограниченность ресурсов мини-компьютеров. Операционные системы мини-компьютеров часто стали делать специализированными, например только для управления в реальном времени (ОС RT-11 для мини-компьютеров PDP-11) или только для поддержания режима разделения времени (RSX-11M для тех же компьютеров). Эти операционные системы не всегда были многопользовательскими, что во многих случаях оправдывалось невысокой стоимостью компьютеров.

Важной вехой в истории мини-компьютеров и вообще в истории операционных систем явилось создание ОС UNIX. Первоначально эта ОС предназначалась для поддержания режима разделения времени в мини-компьютере PDP-7. С середины 70-х годов началось массовое использование ОС UNIX. К этому времени программный код для UNIX был на 90 % написан на языке высокого уровня С. Широкое распространение эффективных С-компиляторов сделало UNIX уникальной для того времени ОС, обладающей возможностью сравнительно легкого переноса на различные типы компьютеров. Поскольку эта ОС поставлялась вместе с исходными кодами, то она стала первой открытой ОС, которую могли совершенствовать простые пользователи-энтузиасты. Хотя UNIX была первоначально разработана для мини-компьютеров, гибкость, элегантность, мощные функциональные возможности и открытость позволили ей занять прочные позиции во всех классах компьютеров: суперкомпьютерах, мэйнфреймах, мини-компьютерах, серверах и рабочих станциях на базе RISC-процессоров, персональных компьютерах.

Доступность мини-компьютеров и вследствие этого их распространенность на предприятиях послужили мощным стимулом для создания локальных сетей. Предприятие могло себе позволить иметь несколько мини-компьютеров, находящихся в одном здании или даже в одной комнате. Естественно, возникала потребность в обмене информацией между ними и в совместном использовании дорогого периферийного оборудования.

Первые локальные сети строились с помощью нестандартного коммуникационного оборудования, в простейшем случае - путем прямого соединения последовательных портов компьютеров. Программное обеспечение также было нестандартным и реализовывалось в виде пользовательских приложений. Первое сетевое приложение для ОС UNIX - программа UUCP (UNIX-to-UNIX Copy program) -. появилась в 1976 году и начала распространяться с версией 7 AT&T UNIX с 1978 года. Эта программа позволяла копировать файлы с одного компьютера на другой в пределах локальной сети через различные аппаратные интерфейсы - RS-232, токовую петлю и т. п., а кроме того, могла работать через глобальные связи, например модемные.

Развитие операционных систем в 80-е годы

К наиболее важным событиям этого десятилетия можно отнести разработку стека TCP/IP, становление Интернета, стандартизацию технологий локальных сетей, появление персональных компьютеров и операционных систем для них.

Рабочий вариант стека протоколов TCP/IP был создан в конце 70-х годов. Этот стек представлял собой набор общих протоколов для разнородной вычислительной среды и предназначался для связи экспериментальной сети ARPANET с другими «сателлитными» сетями. В 1983 году стек протоколов TCP/IP был принят Министерством обороны США в качестве военного стандарта. Переход компьютеров сети ARPANET на стек TCP/IP ускорила его реализация для операционной системы BSD UNIX. С этого времени началось совместное существование UNIX и протоколов TCP/IP, а практически все многочисленные версии Unix стали сетевыми.

Внедрение протоколов TCP/IP в ARPANET придало этой сети все основные черты, которые отличают современный Интернет. В 1983 году сеть ARPANET была разделена на две части: MILNET, поддерживающую военные ведомства США, и новую ARPANET. Для обозначения составной сети ARPANET и MILNET стало использоваться название Internet, которое в русском языке со временем (и с легкой руки локализаторов Microsoft) превратилось в Интернет. Интернет стал отличным полигоном для испытаний многих сетевых операционных систем, позволившим проверить в реальных условиях возможности их взаимодействия, степень масштабируемости, способность работы при экстремальной нагрузке, создаваемой сотнями и тысячами пользователей. Стек протоколов TCP/IP также ждала завидная судьба. Независимость от производителей, гибкость и эффективность, доказанные успешной работой в Интернете, а также открытость и доступность стандартов сделали протоколы TCP/IP не только главным транспортным механизмом Интернета, но и основным стеком большинства сетевых операционных систем.

Все десятилетие было отмечено постоянным появлением новых, все более совершенных версий ОС UNIX. Среди них были и фирменные версии UNIX: SunOS, HP-UX, Irix, AIX и многие другие, в которых производители компьютеров адаптировали код ядра и системных утилит для своей аппаратуры. Разнообразие версий породило проблему их совместимости, которую периодически пытались решить различные организации. В результате были приняты стандарты POSIX и XPG, определяющие интерфейсы ОС для приложений, а специальное подразделение компании AT&T выпустило несколько версий UNIX System III и UNIX System V, призванных консолидировать разработчиков на уровне кода ядра.

Начало 80-х годов связано с еще одним знаменательным для истории операционных систем событием - появлением персональных компьютеров. С точки зрения архитектуры персональные компьютеры ничем не отличались от класса мини-компьютеров типа PDP-11, но их стоимость была существенно ниже. Если мини-компьютер позволил иметь собственную вычислительную машину отделу предприятия или университету, то персональный компьютер дал такую возможность отдельному человеку. Компьютеры стали широко использоваться неспециалистами, что потребовало разработки «дружественного» программного обеспечения, и предоставление этих «дружественных» функций стало прямой обязанностью операционных систем. Персональные компьютеры послужили также мощным катализатором для бурного роста локальных сетей, создав для этого отличную материальную основу в виде десятков и сотен компьютеров, принадлежащих одному предприятию и расположенных в пределах одного здания. В результате поддержка сетевых функций стала для ОС персональных компьютеров необходимым условием.

Однако и дружественный интерфейс, и сетевые функции появились у операционных систем персональных компьютеров не сразу. Первая версия наиболее популяркой операционной системы раннего этапа развития персональных компьютеров - MS-DOS компании Microsoft - была лишена этих возможностей. Это была однопрограммная однопользовательская ОС с интерфейсом командной строки, способная стартовать с дискеты. Основными задачами для нее были управление файлами, расположенными на гибких и жестких дисках в UNIX-подобной иерархической файловой системе, а также поочередный запуск программ. MS-DOS не была защищена от программ пользователя, так как процессор Intel 8088 не поддерживал привилегированного режима. Разработчики первых персональных компьютеров считали, что при индивидуальном использовании компьютера и ограниченных возможностях аппаратуры нет смысла в поддержке мультипрограммирования, поэтому в процессоре не были предусмотрены привилегированный режим и другие механизмы поддержки мультипрограммных систем.

Недостающие функции для MS-DOS и подобных ей ОС компенсировались внешними программами, предоставлявшими пользователю удобный графический интерфейс (например, Norton Commander) или средства тонкого управления дисками (например, PC Tools). Наибольшее влияние на развитие программного обеспечения для персональных компьютеров оказала операционная среда Windows компании Microsoft, представлявшая собой надстройку над MS-DOS.

Сетевые функции также реализовывались в основном сетевыми оболочками, работавшими поверх ОС. При сетевой работе всегда необходимо поддерживать многопользовательский режим, при котором один пользователь - интерактивный, а остальные получают доступ к ресурсам компьютера по сети. В таком случае от операционной системы требуется хотя бы некоторый минимум функциональной поддержки многопользовательского режима. История сетевых средств MS-DOS началась с версии 3.1. Эта версия MS-DOS добавила к файловой системе необходимые средства блокировки файлов и записей, которые позволили более чем одному пользователю иметь доступ к файлу. Пользуясь этими функциями, сетевые оболочки могли обеспечить разделение файлов между сетевыми пользователями.

Вместе с выпуском версии MS-DOS 3.1 в 1984 году компания Microsoft также выпустила продукт, называемый Microsoft Networks, который обычно неформально называют MS-NET. Некоторые концепции, заложенные в MS-NET, такие как введение в структуру базовых сетевых компонентов - редиректора и сетевого сервера, успешно перешли в более поздние сетевые продукты Microsoft: LAN Manager, Windows for Workgroups, а затем и в Windows NT.

Сетевые оболочки для персональных компьютеров выпускали и другие компании: IBM, Artisoft, Performance Technology и другие.

Иной путь выбрала компания Novell. Она изначально сделала ставку на разработку операционной системы со встроенными сетевыми функциями и добилась на этом пути выдающихся успехов. Ее сетевые операционные системы NetWare на долгое время стали эталоном производительности, надежности и защищенности для локальных сетей.

Первая сетевая операционная система компании Novell появилась на рынке в 1983 году и называлась OS-Net. Эта ОС предназначалась для сетей, имевших звездообразную топологию, центральным элементом которых был специализированный компьютер на базе микропроцессора Motorola 68000. Немного позже, когда фирма IBM выпустила персональные компьютеры PC XT, компания Novell разработала новый продукт - NetWare 86, рассчитанный на архитектуру микропроцессоров семейства Intel 8088.

С самой первой версии ОС NetWare распространялась как операционная система для центрального сервера локальной сети, которая за счет специализации на выполнении функций файл-сервера обеспечивает максимально возможную для данного класса компьютеров скорость удаленного доступа к файлам и повышенную безопасность данных. За высокую производительность пользователи сетей Novell NetWare расплачиваются стоимостью - выделенный файл-сервер не может использоваться в качестве рабочей станции, а его специализированная ОС имеет весьма специфический прикладной программный интерфейс (API), что требует от разработчиков приложений особых знаний, специального опыта и значительных усилий.

В отличие от Novell большинство других компаний развивали сетевые средства для персональных компьютеров в рамках операционных систем с универсальным интерфейсом API, то есть операционных систем общего назначения. Такие системы по мере развития аппаратных платформ персональных компьютеров стали все больше приобретать черты операционных систем мини-компьютеров.

В 1987 году в результате совместных усилий Microsoft и IBM появилась первая многозадачная операционная система для персональных компьютеров с процессором Intel 80286, в полной мере использующая возможности защищенного режима - OS/2. Эта система была хорошо продуманна. Она поддерживала вытесняющую многозадачность, виртуальную память, графический пользовательский интерфейс (не с первой версии) и виртуальную машину для выполнения DOS-приложений. Фактически она выходила за пределы простой многозадачности с ее концепцией распараллеливания отдельных процессов, получившей название многопоточности.

OS/2 с ее развитыми функциями многозадачности и файловой системой HPFS со встроенными средствами многопользовательской защиты оказалась хорошей платформой для построения локальных сетей персональных компьютеров. Наибольшее распространение получили сетевые оболочки LAN Manager компании Microsoft и LAN Server компании IBM, разработанные этими компаниями на основе одного базового кода. Эти оболочки уступали по производительности файловому серверу NetWare и потребляли больше аппаратных ресурсов, но имели важные достоинства - они позволяли, во-первых, выполнять на сервере любые программы, разработанные для OS/2, MS-DOS и Windows, а во-вторых, использовать компьютер, на котором они работали, в качестве рабочей станции.

Сетевые разработки компаний Microsoft и IBM привели к появлению NetBIOS - очень популярного транспортного протокола и одновременно интерфейса прикладного программирования для локальных сетей, получившего применение практически во всех сетевых операционных системах для персональных компьютеров. Этот протокол и сегодня применяется для создания небольших локальных сетей.

Не очень удачная рыночная судьба OS/2 не позволила системам LAN Manager и LAN Server захватить заметную долю рынка, но принципы работы этих сетевых систем во многом нашли свое воплощение в более удачливой операционной системе 90-х годов - Microsoft Windows NT, содержащей встроенные сетевые компоненты, некоторые из которых имеют приставку LM - от LAN Manager.

В 80-е годы были приняты основные стандарты на коммуникационные технологии для локальных сетей: в 1980 году - Ethernet, в 1985 - Token Ring, в конце 80-х - FDDI. Это позволило обеспечить совместимость сетевых операционных систем на нижних уровнях, а также стандартизовать интерфейс ОС с драйверами сетевых адаптеров.

Для персональных компьютеров применялись не только специально разработанные для них операционные системы, подобные MS-DOS, NetWare и OS/2, но и адаптировались уже существующие ОС. Появление процессоров Intel 80286 и особенно 80386 с поддержкой мультипрограммирования позволило перенести на платформу персональных компьютеров ОС UNIX. Наиболее известной системой этого типа была версия UNIX компании Santa Cruz Operation (SCO UNIX).

Особенности современного этапа развития операционных систем

В 90-е годы практически все операционные системы, занимающие заметное место на рынке, стали сетевыми. Сетевые функции сегодня встраиваются в ядро ОС, являясь ее неотъемлемой частью. Операционные системы получили средства для работы со всеми основными технологиями локальных (Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, FDDI, ATM) и глобальных (Х.25, frame relay, ISDN, ATM) сетей, а также средства для создания составных сетей (IP, IPX, AppleTalk, RIP, OSPF, NLSP). В операционных системах используются средства мультиплексирования нескольких стеков протоколов, за счет которого компьютеры могут поддерживать одновременную сетевую работу с разнородными клиентами и серверами. Появились специализированные ОС, которые предназначены исключительно для выполнения коммуникационных задач. Например, сетевая операционная система IOS компании Cisco Systems, работающая в маршрутизаторах, организует в мультипрограммном режиме выполнение набора программ, каждая из которых реализует один из коммуникационных протоколов.

Во второй половине 90-х годов все производители операционных систем резко усилили поддержку средств работы с Интернетом (кроме производителей UNIX-систем, в которых эта поддержка всегда была существенной). Кроме самого стека TCP/IP в комплект поставки начали включать утилиты, реализующие такие популярные сервисы Интернета, как telnet, ftp, DNS и Web. Влияние Интернета проявилось и в том, что компьютер превратился из чисто вычислительного устройства в средство коммуникаций с развитыми вычислительными возможностями.

Особое внимание в течение всего последнего десятилетия уделялось корпоративным сетевым операционным системам. Их дальнейшее развитие представляет одну из наиболее важных задач и в обозримом будущем. Корпоративная oпeрационная система отличается способностью хорошо и устойчиво работать в крупных сетях, которые характерны для больших предприятий, имеющих отделения в десятках городов и, возможно, в разных странах. Таким сетям органически присуща высокая степень гетерогенности программных и аппаратных средств, поэтому корпоративная ОС должна беспроблемно взаимодействовать с операционными системами разных типов и работать на различных аппаратных платформах. К настоящему времени достаточно явно определилась тройка лидеров в классе корпоративных ОС - это Novell NetWare 4.x и 5.0, Microsoft Windows NT 4.0 и Windows 2000, а также UNIX-системы различных производителей аппаратных платформ.

Для корпоративной ОС очень важно наличие средств централизованного администрирования и управления, позволяющих в единой базе данных хранить учетные записи о десятках тысяч пользователей, компьютеров, коммуникационных устройств и модулей программного обеспечения, имеющихся в корпоративной сети. В современных операционных системах средства централизованного администрирования обычно базируются на единой справочной службе. Первой успешной реализацией справочной службы корпоративного масштаба была система StreetTalk компании Banyan. К настоящему времени наибольшее признание получила справочная служба NDS компании Novell, выпущенная впервые в 1993 году для первой корпоративной версии NetWare 4.O. Роль централизованной справочной службы настолько велика, что именно по качеству справочной службы оценивают пригодность операционной системы для работы в корпоративном масштабе. Длительная задержка выпуска Windows NT 2000 во многом была связана с созданием для этой ОС масштабируемой справочной службы Active Directory, без которой этому семейству ОС трудно было претендовать на звание истинно корпоративной ОС.

Создание многофункциональной масштабируемой справочной службы является стратегическим направлением эволюции ОС. От успехов этого направления во многом зависит и дальнейшее развитие Интернета. Такая служба нужна для превращения Интернета в предсказуемую и управляемую систему, например для обеспечения требуемого качества обслуживания трафика пользователей, поддержки крупных распределенных приложений, построения эффективной почтовой системы и т. п.

На современном этапе развития операционных систем на передний план вышли средства обеспечения безопасности. Это связано с возросшей ценностью информации, обрабатываемой компьютерами, а также с повышенным уровнем угроз, существующих при передаче данных по сетям, особенно по публичным, таким как Интернет. Многие операционные системы обладают сегодня развитыми средствами защиты информации , основанными на шифрации данных, аутентификации и авторизации .

Современным операционным системам присуща многоплатформенностъ, то есть способность работать на совершенно различных типах компьютеров. Многие операционные системы имеют специальные версии для поддержки кластерных архитектур, обеспечивающих высокую производительность и отказоустойчивость. Исключением пока является ОС NetWare, все версии которой разработаны для платформы Intel, а реализации функций NetWare в виде оболочки для других ОС, например NetWare for AIX, успеха на имели.

В последние годы получила дальнейшее развитие долговременная тенденция повышения удобства работы человека с компьютером. Эффективность работы человека становится основным фактором, определяющим эффективность вычислительной системы в целом. Усилия человека не должны тратиться на настройку параметров вычислительного процесса, как это происходило в ОС предыдущих поколений. Например, в системах пакетной обработки для мэйнфреймов каждый пользователь должен был с помощью языка управления заданиями определить большое количество параметров, относящихся к организации вычислительных процессов в компьютере. Так, для системы OS/360 язык управления заданиями JCL предусматривал возможность определения пользователем более 40 параметров, среди которых были приоритет задания, требования к основной памяти, предельное время выполнения задания, перечень используемых устройств ввода-вывода и режимы их работы.

Современная операционная система берет на себя выполнение задачи выбора параметров операционной среды, используя для этой цели различные адаптивные алгоритмы. Например, тайм-ауты в коммуникационных протоколах часто определяются в зависимости от условий работы сети. Распределение оперативной памяти между процессами осуществляется автоматически с помощью механизмов виртуальной памяти в зависимости от активности этих процессов и информации о частоте использования ими той или иной страницы. Мгновенные приоритеты процессов определяются динамически в зависимости от предыстории, включающей, например, время нахождения процесса в очереди, процент использования выделенного кванта времени, интенсивность ввода-вывода и т. п. Даже в процессе установки большинство ОС предлагают режим выбора параметров по умолчанию, который гарантирует пусть не оптимальное, но всегда приемлемое качество работы систем.

Постоянно повышается удобство интерактивной работы с компьютером путем включения в операционную систему развитых графических интерфейсов, использующих наряду с графикой звук и видеоизображение. Это особенно важно для превращения компьютера в терминал новой публичной сети, которой постепенно становится Интернет, так как для массового пользователя, терминал должен быть почти таким же понятным и удобным, как телефонный аппарат. Пользовательский интерфейс операционной системы становится все более интеллектуальным, направляя действия человека в типовых ситуациях и принимая за него рутинные решения.

Уровень удобств в использования ресурсов, которые сегодня предоставляют пользователям, администраторам и разработчикам приложений операционные системы изолированных компьютеров, для сетевых операционных систем является только заманчивой перспективой. Пока пользователи и администраторы сети тратят значительное время на попытки выяснить, где находится тот или иной ресурс, разработчики сетевых приложений прилагают много усилий для определения местоположения данных и программных модулей в сети. Операционные системы будущего должны обеспечить высокий уровень прозрачности сетевых ресурсов, взяв на себя задачу организации распределенных вычислений, превратив сеть в виртуальный компьютер. Именно этот смысл вкладывают в лаконичный лозунг «Сеть - это компьютер» специалисты компании Sun, но для превращения лозунга в жизнь разработчикам операционных систем нужно пройти еще немалый путь.

§ История ОС насчитывает примерно полвека. Она во многом определялась и определяется развитием элементной базы и вычислительной аппаратуры.

§ Первые цифровые вычислительные машины, появившиеся в начале 40-х годов, работали без операционных систем, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления.

§ Прообразом современных операционных систем явились мониторные системы середины 50-х, которые автоматизировали действия оператора по выполнению пакета заданий.

§ В годах переход к интегральным микросхемам открыл путь к появлению следующего поколения компьютеров, ярким представителем которых является IBM/360. В этот период были реализованы практически все основные концепции, присущие современным ОС: мультипрограммирование, мультипроцессирование, многотерминальный режим, виртуальная память, файловые системы, разграничение доступа и сетевая работа.

§ Реализация мультипрограммирования потребовала внесения очень важных изменений в аппаратуру компьютера. В процессорах появился привилегированный и пользовательский режимы работы, специальные регистры для быстрого переключения с одной задачи на другую, средства защиты областей памяти, а также развитая система прерываний.

§ В конце 60-х были начаты работы по созданию глобальной сети ARPANET, явившейся отправной точкой для Интернета, - глобальной общедоступной сети, которая стала для многих сетевых ОС испытательным полигоном, позволившим проверить в реальных условиях возможности их взаимодействия, степень масштабируемости, способность работы при экстремальной нагрузке.

§ К середине 70-х годов широкое распространение получили мини-компьютеры. Архитектура мини-компьютеров была значительно упрощена по сравнению с мэйнфреймами, что нашло отражение и в их ОС. Экономичность и доступность мини-компьютеров послужила мощным стимулом для создания локальных сетей. Предприятие, которое теперь могло позволить себе иметь несколько мини-компьютеров, нуждалось в организации совместного использования данных и дорогого периферийного оборудования. Первые локальные сети строились с помощью нестандартного коммуникационного оборудования и нестандартного программного обеспечения.

§ С середины 70-х годов началось массовое использование UNIX, уникальной для того времени ОС, которая сравнительно легко переносилась на различные типы компьютеров. Хотя ОС UNIX была первоначально разработана для мини-компьютеров, ее гибкость, элегантность, мощные функциональные возможности и открытость позволили ей занять прочные позиции во всех классах компьютеров.

§ В конце 70-х годов был создан рабочий вариант стека протоколов TCP/IP. В 1983 году стек протоколов TCP/IP был стандартизован. Независимость от производителей, гибкость и эффективность, доказанные успешной работой в Интернете, сделали протоколы TCP/IP не только главным транспортным механизмом Интернета, но и основным стеком большинства сетевых ОС.

§ Начало 80-х годов связано со знаменательным для истории операционных систем событием - появлением персональных компьютеров, которые послужили мощным катализатором для бурного роста локальных сетей, создав для этого отличную материальную основу в виде десятков и сотен компьютеров, расположенных в пределах одного здания. В результате поддержка сетевых функций стала для ОС персональных компьютеров необходимым условием.

§ В 80-е годы были приняты основные стандарты на коммуникационные технологии для локальных сетей: в 1980 году - Ethernet, в 1985 - Token Ring, в конце 80-х - FDDI. Это позволило обеспечить совместимость сетевых ОС на нижних уровнях, а также стандартизовать интерфейс ОС с драйверами сетевых адаптеров.

§ К началу 90-х практически все ОС стали сетевыми, способными поддерживать работу с разнородными клиентами и серверами. Появились специализированные сетевые ОС, предназначенные исключительно для выполнения коммуникационных задач, например система IOS компании Cisco Systems, работающая в маршрутизаторах.

§ Особое внимание в течение всего последнего десятилетия уделялось корпоративным сетевым ОС, для которых характерны высокая степень масштабируемости, поддержка сетевой работы, развитые средства обеспечения безопасности, способность работать в гетерогенной среде, наличие средств централизованного администрирования и управления.

Задачи и упражнения

1. Какие события в развитии технической базы вычислительных машин стали вехами в истории операционных систем?

2. В чем состояло принципиальное отличие первых мониторов пакетной обработки от уже существовавших к этому времени системных обрабатывающих программ - трансляторов, загрузчиков, компоновщиков, библиотек процедур?

3. Может ли компьютер работать без операционной системы?

4. Как эволюционировало отношение к концепции мультипрограммирования на протяжении всей истории ОС?

5. Какое влияние на развитие ОС оказал Интернет?

6. Чем объясняется особое место ОС UNIX в истории операционных систем?

7. Опишите историю сетевых ОС.

8. В чем состоят современные тенденции развития ОС?

Здравствуйте, Хабралюди!
Не многие знают и не многие помнят, с чего началась история компьютерного софта - операционные системы. Именно эту тему и выбрал школьник для своей МАН-овской работы (МАН - малая академия наук). Звучит оно так - эволюция операционных систем. Сразу скажу, что более 90% из Тырнета, но откопано далеко не в первых 2-х страницах поиска в Гугле.

Вступление
Компьютерные технологии в последнее время сделали значительный скачок вперед, и скоро невозможно будет представить наши жизни без помощи компьютера. Но без операционной системы компьютер - лишь набор микросхем. Именно на базе операционной системы работают все программы, которые мы используем, именно от ОС в первую очередь будет зависеть скорость и производительность нашего труда на компьютере.

Современный компьютер состоит из одного или нескольких процессоров, оперативной памяти, дисков, принтера, клавиатуры, мыши, монитора, сетевых интерфейсов и других различных устройств ввода-вывода. В итоге получается довольно сложная система. Если каждому программисту, который создает приложение, нужно будет разбираться во всех тонкостях работы всех этих устройств, то он не напишет ни строки кода. Более того, управление всеми этими компонентами и их оптимальное использование представляет собой очень непростую задачу. По этой причине компьютеры оснащены специальным уровнем программного обеспечения, который называется операционной системой, в задачу которого входит управление пользовательскими программами, а также управление всеми ресурсами железа.
Первая ОС
GM-НАА была первой операционной системой для компьютеров. Она была создана в 1955 году Робертом Патриком с General Motors и Оуэном Моком с North American Aviation. Она была основана на системном мониторе и работала на больших машинах. Основная функция GM-НАА - автоматическое выполнение новой программы, когда старая программа завершилась.
Возникновение Плато
В 1972 году была разработана система PLATO, которая имела ряд инноваций, таких как оранжевая плазменная панель. Она включала в себя память и функции растровой графики. Плазменный дисплей PLATO поддерживал возможность быстрой отрисовки векторных линий.Многие инноваций, ввела ОС PLATO, стали в дальнейшем фундаментом для разработки других компьютерных систем. Например, некоторые технологии были заимствованы и усовершенствованные компанией Apple.
Возникновение UNIX
Первая система UNIX была разработана в 1969 году в подразделении Bell Labs компании AT & T. С тех пор было создано большое количество различных UNIX-систем.Некоторые отличительные признаки UNIX-систем включают в себя:
1) Использование текстовых файлов для настройки и управления системой;
2) Широкое применение утилит, запускаемых в командной строке;
3) Взаимодействие с пользователем посредством виртуального устройства - терминала;
4) Представление физических и виртуальных устройств как файлов.
Идеи, заложенные в основу UNIX, оказали огромное влияние на развитие компьютерных операционных систем. В настоящее время UNIX-системы признаны одними из самых исторически важных ОС. Эта операционная система популяризирует идею иерархической файловой системы с произвольной глубиной вложенности.
Linux
Linux была создана в 1991 году Линусом Торвальдсом, финским студентом. Тот факт, что Линус сразу после создания ОС выложил исходный код своей ОС в Интернет, был решающим в дальнейшей судьбе Linux. Хотя в 1991 году Интернет еще не был так широко распространен, как в наши дни, зато пользовались им в основном люди, которые имеют достаточную техническую подготовку. И уже с самого начала Торвальдс получил несколько заинтересованных отзывов с предложением помочь в разработке, на что Линус ответил согласием, и уже через полгода к разработке присоединились сотни, потом сотни тысяч добровольных помощников.В силу того, что исходные коды Linux распространяются свободно и общедоступно, к развитию системы с самого начала подключилось большое число независимых разработчиков.
MS-DOS
MS-DOS - коммерческая операционная система фирмы Microsoft для IBM PC-совместимых персональных компьютеров. MS-DOS работает в режиме реального времени процессора x86. Обеспечивается единовременное выполнение только одной программы. MS-DOS была спроектирована так, чтобы пользователи могли легко заменить встроенный интерпретатор посторонними интерпретаторами командной строки, например 4DOS.
Windows, куда ж без нее

В 1985 году появляется первая версия Windows, которая не была оценена пользователями и ее проигнорировали. Возможно потому, что она всего лишь дополняла возможности DOS, будучи фактически графической оболочкой и надстройкой над комплектом MS-DOS.
Со временем, система Windows все более совершенствовалась, появилась полноценная графика, лишила пользователей от видения системных файлов, был преодолен барьер многозадачности, что позволяет запустить 2-3 программы.В 1992 году с момента возникновения Windows 3.1, по мнению многих пользователей и профессионалов, новые возможности ОС были оценены по достоинству. С версии Windos3.1 ОС получила начало 32-разрядная доступность к жесткому диску.
В 1998 году, 25 июня, новая OC Windows 98 вышла на рынок потребителей. Преимуществом, по сравнению с предыдущими образцами, были: полная интеграция с Интернетом, более совершенное управление интерфейсом, новый процессор Pentium II, графический портал AGP, шина USB.
Параллельно с предыдущими, началась разработка системы Windows XP, где окончательно решено отказаться от 16-разрядности в ядре системы, и перейти на 32-разрядную, с новой архитектурой и строением. Из преимуществ новой системы необходимо отметить следующее: это первая из систем с полностью настраиваемым интерфейсом, внедрением интеллектуального меню «Пуск». Также оптимально переработана панель - управляющая ПК.
Появление после Widows XP новой системы Windows Vista считают самым неудачным вариантом после всех предыдущих выпусков ОС. Ее представляют, как «генеральную репетицию» перед Windows 7. Казалось бы, неплохие качества новой системы должны были заинтересовать пользователей. Такие новшевства как встроенный поиск, трехмерность интерфейса Aero с красивыми заставками, хорошую защиту - ничего не помогло, все выполнено крайне неудачно, по мнению пользователей.
Windows 7 мало чем кроме нового интерфейса отменялась от Vista. Вариантов Windows 7 выпущено 5: Starter Edition, домашняя базовая, домашняя расширенная, профессиональная, максимальная.
Windows 8 в отличие от своих предшественников - Windows 7 и Windows XP использует новый интерфейс под названием Modern(Metro). Также в системе присутствует и рабочий стол, но уже в виде отдельного приложения.

Мобильные ОС
Сейчас все больший интерес пользователей привлекают смартфоны на различных операционных системах: Windows Phone, Boda, IOS. Самыми популярными из них являются IOS и AndroidOS.
IOS
IOS - мобильная операционная система, созданная на ядре Linux и разрабатываемой и выпускаемой американской компанией Apple. Была выпущена в 2007 году изначально - для iPhone и iPod Touch. Сейчас же она установлена ​​на всех устройствах Apple. Такие нововведения как мобильный браузер Safari, визуальная голосовая почта, виртуальная клавиатура сделали IOS одной из наиболее популярных систем для смартфонов.
Андроид
Андроид - система, которая наиболее динамично развивается, разработанна для смартфонов(изначально для коммунникаторов(Айфон и его тачскрин изменили мнение Гугла)). Она является упрощенным вариантом аналогичных систем Windows и Linux, используемых на стационарных ПК и ноутбуках, ориентированной для тачскрина. Платформа Андроид состоит из операционной системы, интерфейса, связывающего ПО и мощных приложений.
Google Chrome OS (облачная ОС)
Chrome OS позиционируется как операционная система для различных устройств - от маленьких нетбуков до полноразмерных настольных систем и поддерживает x86-и ARM-архитектуры процессоров.
Новая ОС Google Chrome имеет открытый исходный код, основанный на оптимизированном Linux-ядре и управляется браузером Chrome.Главной особенностью будет доминирование веб-приложений над обычными функциями ОС. Ключевая роль при этом отводится браузеру.
Стратегия создания нового продукта подразумевает архитектуру, нетребовательную к аппаратным ресурсам персонального компьютера, используемого для выхода в сеть Интернет.
Все приложения, которые запускает система - веб-сервисы. Фактически, все действия, проходящих в на компьютере, выполняются в Интернете - нет необходимости устанавливать никаких офлайновых приложений. В связи с этим работа в Chrome OS не требует наличия у компьютера мощных ресурсов, ведь все процессы запускаются не на самом компьютере, а на серверах соответствующих служб.
Предсказания ворожеи
Операционная система пользователя становится чем-то похожим на веб-браузер, установленной на голое железо. Современный классический интерфейс (разработанный в Xerox PARC и впервые внедрен Apple почти 30 лет назад) отойдет в прошлое. Многие современные составных частей ОС станут просто не нужны, другие уйдут от пользователя и превратятся в сервисы API для программистов. Основным задачей ОС станет предоставление возможности запуска клиентской части облачных сервисов. И преимущества, которыми Microsoft в современном мире ОС, будет значительно уменьшены. Им придется придумывать новые способы привязки к себе пользователей и программистов в новом среде, более конкурентной, в сравнению с нынешней.
Многое зависит от решений, успехов и неудач крупных софтверных компаний, таких как Microsoft, Google. В отличие от той эволюции софта, которую мы наблюдали в девяностых и двухтысячных, новая эволюция все меньше зависет от производителей железа, и все больше - от производителей конечного ПО для пользователей.

За криворукость не ругать, если что - поправлять, автора не матюкать.

Теги: операционные системы, история ит


Всероссийский Заочный Финансово – Экономический Институт

Факультет: финансово – кредитный

Специальность: финансы и кредит группа вечерняя

Курсовая работа

По дисциплине «Информатика»

На тему «Назначение, классификация и эволюция операционных систем»

Москва – 2008г.

Введение
1 Назначение операционных систем 5

2 Перечислим основные функции операционных систем 9

2.2 Обслуживание всех операций ввода-вывода 9

3 Эволюция и классификация ОС
Заключение 2
Список использованной литературы 22

Введение

Операционная система (ОС) является основой системного ПО, под управлением которыми осуществляется начальная загрузка компьютера, управление работой всех его устройств и проверка их работоспособности, управление файловой системой компьютера, загрузка пользовательских приложений и распределение ресурсов компьютера между ними, поддержка пользовательского интерфейса и др. К числу широко известных семейств операционных систем относятся DOS, WINDOWS, UNIX, NETWARE и др.

Операционная система (ОС) представляет собой совокупность программ, выполняющих две функции: предоставление пользователю удобств виртуальной машины и повышение эффективности использования компьютера при рациональном управлении его ресурсами.

Процессор компьютера выполняет команды, заданные на машинном языке. Непосредственная подготовка таких команд требует от пользователя знаний языка и специфики построения и взаимодействия аппаратных средств. Так, например, для доступа к хранящейся на магнитном носителе информации необходимо указать номера блоков на диске и номера секторов на дорожке, определить состояние двигателя механизма перемещения головок записи считывания, обнаружить наличие и типы ошибок, выполнить их анализ и пр. Требовать этих знаний от всех пользователей практически невозможно. Поэтому и возникла необходимость в создании ОС – совокупности программ, скрывающих от пользователя особенности физического расположения информации и выполняющих обработку прерываний, управление таймерами и оперативной памятью. В результате пользователю предоставляется виртуальная машина, реализующая работу на логическом уровне.

1 Назначение операционных систем

Операционные системы относятся к системному программному обеспечению. Все программное обеспечение разделяется на системное и прикладное. К системному программному обеспечению принято относить такие программы и комплексы программ, которые являются общими, без которых невозможно выполнение или создание других программ. История появления и развития системного программного обеспечения началась с того момента, когда люди осознали, что любая программа требует операций ввода-вывода данных. Это произошло в далекие 50-е годы прошлого столетия. Собственно операционные системы появились чуть позже.

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

Программирование операций ввода-вывода относится к одной из самых трудоемких областей создания программного обеспечения. Здесь речь идет не об использовании операторов типа READ или WRITE в языках высокого уровня. Речь идет о необходимости создать подпрограмму в машинном виде, уже готовую к выполнению на компьютере, а не написанную с помощью некоторой системы программирования (систем программирования тогда еще не было), подпрограмму, вместо обычных вычислений управляющую тем устройством, которое должно участвовать в операциях ввода исходных данных или выводов результатов. При наличии такой подпрограммы программист может обращаться к ней столько раз, сколько операций ввода-вывода с этим устройством ему требуется. Для выполнения этой работы программисту недостаточно хорошо знать архитектуру вычислительного комплекса и уметь создавать программы на языке ассемблера. Он должен отлично знать и интерфейс, с помощью которого устройство подключено к центральной части компьютера, и алгоритм функционирования устройства управления устройства ввода-вывода.

Очевидно, что имело смысл создать набор подпрограмм управления операциями ввода-вывода и использовать его в своих программах, чтобы не заставлять программистов каждый раз заново программировать все эти операции. С этого и началась история системного программного обеспечения. Впоследствии набор подпрограмм ввода-вывода стали организовывать в виде специальной библиотеки ввода-вывода, а затем появились и сами операционные системы. Основной причиной их появления было желание автоматизировать процесс подготовки вычислительного комплекса к выполнению программы.

В 50-е годы взаимодействие пользователей с вычислительным комплексом было совершенно иным, чем ныне. Программист-кодер (от англ. coder – кодировщик) – специально подготовленный специалист, знающий архитектуру компьютера и язык(и) программирования, - по заказу составлял текст программы, часто по уже готовому алгоритму, разработанному программистом-алгоритмистом. Текст этой программы затем отдавался оператору, который набирал его на специальных устройствах и переносил на соответствующие носители. Чаще всего в качестве носителей использовались перфокарты или перфолента. Далее колода с перфокартами передавалась в вычислительный зал, где для вычислений по этой программе требовать следующие действия:

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

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

3. Оператор загружал в оперативную память компьютера полученные двоичные коды, оттранслированной программы и подгружал двоичные коды тех системных подпрограмм, которые реализовывали управлениями операциями ввода-вывода. После этого готовая программа, расположенная в памяти, могла сама считывать исходные данные и осуществлять необходимые вычисления. В случае обнаружения ошибок на одном из этих этапов или после анализа полученных результатов весь цикл необходимо было повторить.

Для автоматизации труда программиста (кодера) стали разрабатывать специальные алгоритмические языки высокого уровня, а для автоматизации труда оператора вычислительного комплекса была разработана специальная управляющая программа, загрузив которую в память один раз оператор мог ее далее использовать неоднократно и более не обращаться к процедуре программирования ЭВМ через пульт оператора. Именно эту управляющую программу и стали называть операционной системой. Со временем на нее стали возлагать все больше и больше задач, она стала расти в объеме. Прежде всего разработчики стремились к тому, чтобы операционная система как можно более эффективно распределяла вычислительные ресурсы компьютера, ведь в 60-е годы операционные системы уже позволяли организовать параллельное выполнение нескольких программ. Помимо задач распределения ресурсов появились задачи обеспечения надежности вычислений. К началу 70-х годов диалоговый режим работы с компьютером стал преобладающим, и у операционных систем стремительно начали развиваться интерфейсные возможности. Термин интерфейс (interface) обозначает целый комплекс спецификаций, определяющих конкретный способ взаимодействия пользователя с компьютером.

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

2 Перечислим основные функции операционных систем

Прием пользователя (или оператора системы) заданий, или команд, сформулированных на соответствующем языке, и их обработка. Задания могут передаваться в виде текстовых директив (команд) оператора или в форме указаний, выполняемых с помощью манипулятора (например, с помощью мыши). Эти команды связаны с запуском (приостановкой, остановкой) программ, с операциями над файлами (получить перечень файлов в текущем каталоге, создать, переименовать, скопировать, переместить тот или иной файл и др.), хотя имеются и иные команды.

Распределение памяти, а в большинстве современных систем и организация виртуальной памяти.

Запуск программы (передача ей управления, в результате чего процессор исполняет программу).

Прием и использование различных запросов от выполняющихся приложений. Операционная система умеет выполнять очень большое количество системных функций (сервисов), которые могут быть запрошены из выполняющейся программы. Обращение к этим сервисам осуществляется по соответствующим правилам, которые и определяют интерфейс прикладного программирования (Application Program Interface, API) этой операционной системы.

2.2 Обслуживание всех операций ввода-вывода

Обеспечение работы систем управлений файлами (СУФ) и/или систем управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения.

Обеспечение режима мультипрограммирования, то есть организация параллельного выполнения двух или более программ на одном процессоре, создающая видимость их одновременного исполнения.

Планирование и диспетчеризация задач в соответствии с заданными между выполняющимися программами.

Для сетевых операционных систем характерной является функция обеспечения взаимодействия связанных между собой компьютеров.

Организация механизмов обмена сообщениями и данными между выполняющимися программами.

Защита одной программы от влияния другой, обеспечение сохранности данных, защита самой операционной системы от исполняющихся на компьютере приложений.

Аутентификация и авторизация пользователей (для большинства диалоговых операционных систем). Под аутентификацией понимается процедура проверки имени пользователя и его пароля на соответствие тем значениям, которые хранятся в его учетной записи. Очевидно, что если входное имя (login) пользователя и его пароль совпадают, то, скорее всего, это и будет тот самый пользователь. Термин авторизация означает, что в соответствии с учетной записью пользователя, который прошел аутентификацию, ему (и всем запросам, которые будут идти к операционной системе от его имени) назначаются определенные права (привилегии), определяющие, что он может делать на компьютере.

Удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для ОС реального времени).

Обеспечение работы систем программирования, с помощью которых пользователи готовят свои программы.

Предоставление услуг на случай частичного сбоя системы.

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

3 Эволюция и классификация ОС

Эволюция ОС во многом обусловлена совершенствование аппаратной базы ЭВМ.

Программирование ламповых вычислительных устройств, ориентированных на решение специализированных прикладных задач, выполнялось на машинном языке (языке программирования, представляющем программу в форме, позволяющей непосредственно выполнять ее техническими средствами обработки данных). Организация вычислительного процесса в этом случае осуществлялась обслуживающим персоналом вручную с пульта управления. ОС для этих ЭВМ практически отсутствовали.

Компьютеры, построенные на полупроводниковых элементах, стали более компактными, надежными и применялись при решении более широкого класса прикладных задач. Появились первые алгоритмические языки, компиляторы (компиляторы – программы, используемые для компиляции – перевода написанной на алгоритмическом языке программы на язык, близкий к машинному) и системы пакетной обработки. Эти системы явились прообразом современных ОС. Основное их назначение – увеличение загрузки процессора.

Переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам сопровождался созданием семейств программно-совместимых машин, например, семейства IBM/360, EC ЭВМ. ОС этих компьютеров ориентировались на обслуживание вычислительных систем с разнообразными периферийными устройствами и в различных областях деятельности. Особенностью таких ОС стало мультипрограммирование – способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько приложений. Например, пока одно приложение осуществляет операции ввода-вывода, процессор выполняет вычислительные операции другого. Образовался новый тип ОС – системы разделения времени, которая позволяет создать для каждого пользователя иллюзию единоличной работы с компьютером. Появление больших (БИС) и сверхбольших интегральных схем (СБИС) обеспечило широкое распространение компьютеров и их использование неспециалистами в области программирования. Это потребовало разработки дружественного, интуитивно понятного программного интерфейса. Развитие средств коммуникаций обусловило развитие сетевых ОС.

К современным ОС предъявляются следующие требования:

Совместимости – ОС должна включать средства для выполнения приложений, подготовленных для других ОС;

Переносимости – обеспечение возможности переноса ОС с одной аппаратурной платформы на другую;

Надежности и отказоустойчивости – предполагает защиту ОС от внутренних и внешних ошибок, сбоев и отказов;

Безопасности – ОС должна содержать средства защиты ресурсов одних пользователей от других;

Расширяемости – ОС должна обеспечивать удобства внесения последующих изменений и дополнений;

Производительности – система должна обладать достаточным быстродействием.

Классификация ОС. Обычно общение пользователя с машиной протекает в интерактивном режиме. При этом темп решения задачи определяется реакцией пользователя. Если принять время реакции пользователя постоянным, то можно считать, что сложность задачи ограничивается быстродействием технических средств (при необходимости оно повышается экстенсивными методами: применением более быстродействующей элементной базы, использованием многопроцессорных или многомашинных систем). Но это односторонний подход. Огромные возможности таятся в организационных мероприятиях, к которым относится выбор оптимальных режима работы и дисциплин обслуживания; и то и другое реализуется операционными системами.

Режимы работы ПЭВМ в первую очередь определяются количеством задач, параллельно решаемых на машине (реализуемых программ). По этому признаку ОС разделяются на многозадачные и однозадачные, поддерживающие и не поддерживающие многонитевую обработку, многопользовательские и однопользовательские, на многопроцессорные и однопроцессорные.

По числу одновременно выполняемых задач выделяют ОС:

Однозадачные ОС (MS-DOS, ранние версии PS DOS);

Многозадачные (OS/2, UNIX, Windows).

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

Невытесняющая многозадачность (NetWare, Windows 3. x и 9. х);

Вытесняющая многозадачность (Windows NT, OS/2, UNIX).

В первом случае активный процесс по окончании сам передает управление ОС для выбора из очереди другого процесса. Во втором – решение о переключении процесса с одного процесса с одного процесса на другой принимает не активный процесс, а ОС.

Поддержка многонитевости предполагает возможность выполнения некоторых команд программы практически в один и тот же момент. Многонитевая ОС разделяет процессорное время не между задачами, а между отдельными ветвями (нитями) алгоритмов их решения (многозадачность внутри одной задачи).

По числу одновременно работающих пользователей выделяют ОС:

Однопользовательские (MS-DOS, Windows 3. x, ранние версии OS/2);

Многопользовательские (UNIX, Windows NT).

Отличием многопользовательских систем является наличие средств защиты информации пользователей от несанкционированного доступа.

Многопроцессорная обработка предполагает поддержку работы нескольких процессоров и приветствует в ОС Solaris 2. x фирмы Sun, OS/2 фирмы IBM, Windows NT фирмы Microsoft, NetWare 4.1. фирмы Novell и др.

Многопроцессорные ОС делятся на асимметричные и симметричные. Асимметричная ОС выполняется на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам. Симметричные ОС децентрализована и использует все процессоры, разделяя между ними системные и прикладные задачи.

Очевидно, что ОС персонального компьютера менее сложна, чем ОС мэйнфреймов и суперЭВМ. Отличием сетевой ОС от локальной являются средства передачи данных между компьютерами по линиям связи и реализации протоколов передачи данных, например IP, IPX и др.

Кроме ОС, ориентированных на определенный тип аппаратной платформы, существуют мобильные ОС, легко переносимые на разные типы компьютеров. В таких ОС (например, UNIX) аппаратно-зависимые места локализованы и при переносе системы на новую платформу переписываются. Аппаратно-независимая часть реализуется на языке программирования высокого уровня на языке С, и перекомпилируется при переходе на другую платформу.

Динамическое перераспределение ресурсов ПЭВМ между несколькими задачами (способ коллективного пользования) обеспечивает либо сокращение суммарного времени решения нескольких задач, либо уменьшение времени начала обработки задачи. И то и другое при одном «обслуживающем приборе», например процессоре или принтере, достигается за счет увеличения времени решения одной (каждой) задачи. Порядок прохождения задач в машине определяет режимы реализации способа коллективного пользования: пакетной обработки и разделения времени. Пакетная обработка предполагает решение нескольких задач примерно в том же режиме, в каком работает преподаватель во время устного экзамена – его внимание занимает один из студентов. По завершении опроса внимание переключается на следующего (полагаем, что обслуживание студентов и есть решение задачи).

В режиме разделения времени процесс выполнения программ разбивается на циклы. Внутри каждого цикла обязательно появляется (если она еще не решена) та базовая задача, для которой выделен данный цикл. Остальные задачи могут решаться в этом же цикле, если их решение не препятствует решению базовой. Соседние циклы выделяются для решения разных задач, поэтому существенно увеличивается время решения каждой из них. Вместе с тем на ожидание выполнения очередной части задачи затрачивается не более чем N-1 циклов (N – число разноименных циклов, выделенных для решения N различных задач). При соответствующем выборе длительности цикла у пользователя (из-за его инерционности) создается иллюзия работы в реальном масштабе времени. Работой в реальном масштабе времени называется режим работы, при котором существуют предельные ограничения на время решения задачи, накладываемые внешней средой. Для системы управления это означает, что обработка информации должна протекать со скоростью, превышающей скорость реально протекающего управляемого процесса, с тем, чтобы имелся определенный запас времени для принятия решений и формирования соответствующих управляющих воздействий.

Для реальных условий работы характерно то, что моменты поступления задач на обработку определяются не темпом работы обслуживающего прибора (ПЭВМ, принтера и пр), а процессами, протекающими вне его. В соответствии с этим обслуживающий прибор должен решать определенную совокупность задач (реакция на сбои оборудования, заявка на связь в сети, принудительное создание резервной копии и т.д.).

При конечном быстродействии обслуживающего прибора поступающие заявки не могут быть выполнены сразу, а становятся в очередь. Процесс выбора заявки из множества ожидающих обслуживания называется диспетчеризацией, а правило диспетчеризации – дисциплиной обслуживания. Дисциплин обслуживания много, например «в порядке поступления» (FIFO – First Input First Output), «в обратном порядке» (LIFO – Last Input First Output) и др. Для сокращения времени ожидания (времени пребывания в очереди) отдельным заявкам предоставляется преимущественное право на обслуживание, называемое приоритетом, который характеризуется целым положительным числом. Наивысший приоритет назначается ОС.

Итак, при создании двоичных машинных программ прикладные программисты могут вообще не знать многих деталей управления конкретными ресурсами вычислительной системы, а должны только обращаться к некоторой программной подсистеме с соответствующими вызовами и получать от нее необходимые функции и сервисы. Эта программная подсистема и есть операционная система, а набор ее функций и сервисов, а также правила обращения к ним как раз и образуют то базовое понятие, которое мы называем операционной средой. Можно сказать, что термин «операционная среда» означает соответствующие интерфейсы, необходимые программам и пользователям для обращения к управляющей (супервизорной) части операционной системы с целью получить определенные сервисы.

Системных функций бывает много, они определяют те возможности, которые операционная система предоставляет выполняющимся под ее управлением приложениям. Такого рода системные запросы (вызовы системных операций, или функций) либо явно прописываются в тексте программы программистами, либо подставляются автоматически самой системой программирования на этапе трансляции исходного текста разрабатываемой программы. Каждая операционная система имеет свое множество системных функций; они вызываются соответствующим образом, по принятым в системе правилам. Совокупность системных вызовов и правил, по которым их следует использовать, как раз и определяет интерфейс прикладного программирования (API). Очевидно, что программа, созданная для работы в некоторой операционной системе, скорее всего не будут работать в другой операционной системе, поскольку API у этих операционных систем различаются. Стараясь преодолеть это ограничение, разработчики операционных систем стали создавать так называемое программные среды. Программную (системную) среду следует понимать как некоторое системное программное окружение, позволяющее выполнить все системные запросы от прикладной программы. Та системная программная среда, которая непосредственно образуется кодом операционной системы, называется основной, естественной, или нативной (native). Помимо основной операционной среды в операционной системе могут быть организованы (путем эмуляции иной операционной среды) дополнительные программные среды. Если в операционной системе организована работа с различными операционными средами, то в такой системе можно выполнять программы, созданные не только для данной, но и для других операционных систем. Можно сказать, что программы создаются для работы в некоторой заданной операционной среде. Например, можно создать программу для работы в среде DOS. Если такая программа все функции, связанные с операциями с операциями ввода-вывода и с запросами памяти, выполняет не сама, а за счет обращения к системным функциям DOS, то она будет (в абсолютном большинстве случаев) успешно выполняться и в MS DOS, и в PS DOS, и в Windows 9x, и в Windows 2000, и в OS/2, и даже в Linux.

Итак, параллельное существование терминов «операционная система» и «операционная среда» вызвано тем, что операционная система может поддерживать несколько операционных сред. Почти все современные 32-разрядные операционные системы, созданные для персональных компьютеров, поддерживают по нескольку операционных сред. Так операционная система OS/2 Warp, которая в свое время была одной из лучших в этом отношении, может выполнять следующие программы:

Основные программы, созданные с учетом соответствующего «родного» 32-разрядного программного интерфейса этой операционной системы;

16-разрядные программы, созданные для систем OS/2 первого поколения;

16-разрядные приложения, разработанные для выполнения в операционной системе MS DOS или PS DOS;

16-разрядные приложения, созданные для операционной среды Windows 3. x;

Саму оперативную оболочку Windows 3. x и уже в ней – созданные для нее программы.

А операционная система Windows XP позволяет выполнять помимо основных приложений, созданных с использованием Win32API, 16-разрядные приложения для Windows 3. x, 16-разрядные DOS-приложения, 16-разрядные приложения для первой версии OS/2.

Операционная среда может включать несколько интерфейсов: пользовательские и программные. Если говорить о пользовательских, то например, система Linux имеет для пользователя как интерфейсы командной строки (можно использовать различные «оболочки» - shell), наподобие Norton Commander, например X-Window с различными менеджерами окон - KDE, Gnome и др. Если же говорить о программных интерфейсах, то в тех же операционных системах с общим названием Linux программы могут обращаться как к операционной системе за соответствующими сервисами и функциями, так и к графической подсистеме (если она используется). С точки зрения архитектуры процессора (и персонального компьютера в целом) двоичная программа, созданная для работы в среде Linux, использует те же команды и форматы данных, что и программа, созданная для работы в среде Windows NT. Однако в первом случае мы имеем обращение к одной операционной среде, а во втором – к другой. И программа, созданная непосредственно для Windows, не будет выполняться в Linux; если в ОС Linux организовать полноценную операционную среду Windows, то наша Windows-программа может быть выполнена. В общем, операционная среда – это то системное программное окружение, в котором могут выполняться программы, созданные по правилам работы этой среды.

Заключение

Итак, операционная система выполняет функции управления вычислениями в компьютере, распределяет ресурсы вычислительной системы между различными вычислительными процессами и образует ту программную среду, в которой выполняются прикладные программы пользователей. Такая среда называется операционной. Последнее следует понимать в том плане, что при запуске программы она будет обращаться к операционной системе с соответствующими запросами на выполнение определенных действий, или функций. Эти функции операционная система выполняет, запуская специальные системные программные модули, входящие в ее состав.

В настоящий момент около 90% персональных компьютеров используют ОС Windows, которая имеет ряд достоинств и вытеснила конкурентов из этого сегмента рынка. Более широкий класс ОС ориентирован для использования на серверах. К этому классу ОС относят: семейство Unix, разработки фирмы Microsoft, сетевые продукты Novell и корпорации IBM.

К ресурсами компьютера относятся: процессоры, память, дисковые накопители, сетевые коммуникационные средства, принтеры и другие устройства. Функцией ОС является рациональное распределение этих ресурсов между процессами с целью обеспечения максимальной эффективности функционирования компьютера.

Список использованной литературы

Гордеев А.В. Операционные системы: Учебник для вузов.2-е изд. – СПб.: Питер, 2005.

Основы информатики: Учеб. пособие / А.Н. Морозевич, Н.Н. Говядинова, В.Г. Левашенко и др.; Под ред.А.Н. Морозевича. – 2-е изд., испр. – Мн.: Новое знание, 2003.

Евсюков В.В. Экономическая информатика: Учеб. пособие – Тула: Издательство «Граф и К», 2003.

Информатика в экономике: Учеб. пособие /Под ред. проф. Б.Е. Одинцова, проф.А.Н. Романова. – М.: Вузовский учебник, 2008.

Эволюция операционных систем

Появление первых операционных систем

Особенности современного этапа развития операционных систем

Выводы

Задачи и упражнения

История любой отрасли науки или техники позволяет не только удовлетворить естественное любопытство, но и глубже понять сущность основных достижений этой отрасли, осознать существующие тенденции и правильно оценить перспективность тех или иных направлений развития. За почти полувековой период своего существования операционные системы прошли сложный путь, насыщенный многими важными событиями. Огромное влияние на развитие операционных систем оказали успехи в совершенствовании элементной базы и вычислительной аппаратуры, поэтому многие этапы развития ОС тесно связаны с появлением новых типов аппаратных платформ, таких как мини-компьютеры или персональные компьютеры. Серьезную эволюцию операционные системы претерпели в связи с новой ролью компьютеров в локальных и глобальных сетях. Важнейшим фактором развития ОС стал Интернет. По мере того как эта Сеть приобретает черты универсального средства массовых коммуникаций, ОС становятся все более простыми и удобными в использовании, включают развитые средства поддержки мультимедийной информации, снабжаются надежными средствами защиты.

Появление первых операционных систем

Идея компьютера была предложена английским математиком Чарльзом Бэбиджем (Charles Babage) в середине девятнадцатого века. Его механическая «аналитическая машина» так и не смогла по-настоящему заработать, потому что технологии того времени не удовлетворяли требованиям, необходимым для изготовления нужных деталей точной механики. Конечно, никакой речи об операционной системе для этого «компьютера» не шло.

Настоящее рождение цифровых вычислительных машин произошло вскоре после окончания Второй мировой войны. В середине 40-х были созданы первые ламповые вычислительные устройства. В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, ив программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке. Не было никакого системного программного обеспечения, кроме библиотек математических и служебных подпрограмм, которые программист мог использовать для того, чтобы не писать каждый раз коды, вычисляющие значение какой-либо математической функции или управляющие стандартным устройством ввода-вывода. Операционные системы все еще не появились, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления, который представлял собой примитивное устройство ввода-вывода, состоящее из кнопок, переключателей и индикаторов. С середины 50-х годов начался новый период в развитии вычислительной техники, связанный с появлением новой технической базы - полупроводниковых элементов. Выросло быстродействие процессоров, увеличились объемы оперативной и внешней памяти. Компьютеры стали более надежными, теперь они могли непрерывно работать настолько долго, чтобы на них можно было возложить выполнение действительно практически важных задач.

Наряду с совершенствованием аппаратуры заметный прогресс наблюдался также в области автоматизации программирования и организации вычислительных работ. В эти годы появились первые алгоритмические языки, и таким образом к библиотекам математических и служебных подпрограмм добавился новый тип системного программного обеспечения - трансляторы.

Выполнение каждой программы стало включать большое количество вспомогательных работ: загрузка нужного транслятора (АЛГОЛ, ФОРТРАН, КОБОЛ и т. п.), запуск транслятора и получение результирующей программы в машинных кодах, связывание программы с библиотечными подпрограммами, загрузка программы в оперативную память, запуск программы, вывод результатов на периферийное устройство. Для организации эффективного совместного использования трансляторов, библиотечных программ и загрузчиков в штат многих вычислительных центров были введены должности операторов, профессионально выполнявших работу по организации вычислительного процесса для всех пользователей этого центра.

Но как бы быстро и надежно ни работали операторы, они никак не могли состязаться в производительности с работой устройств компьютера. Большую часть времени процессор простаивал в ожидании, пока оператор запустит очередную задачу. А поскольку процессор представлял собой весьма дорогое устройство, то низкая эффективность его использования означала низкую эффективность использования компьютера в целом. Для решения этой проблемы были разработаны первые системы пакетной обработки, которые автоматизировали всю последовательность действий оператора по организации вычислительного процесса. Ранние системы пакетной обработки явились прообразом современных операционных систем, они стали первыми системными программами, предназначенными не для обработки данных, а для управления вычислительным процессом.

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

Оператор составлял пакет заданий, которые в дальнейшем без его участия последовательно запускались на выполнение управляющей программой - монитором. Кроме того, монитор был способен самостоятельно обрабатывать наиболее часто встречающиеся при работе пользовательских программ аварийные ситуации, такие как отсутствие исходных данных, переполнение регистров, деление на ноль, обращение к несуществующей области памяти и т. д. Пакет обычно представлял собой набор перфокарт, но для ускорения работы он мог переноситься на более удобный и емкий носитель, например на магнитную ленту или магнитный диск. Сама программа-монитор в первых реализациях также хранилась на перфокартах или перфоленте, а в более поздних - на магнитной ленте и магнитных дисках.

Ранние системы пакетной обработки значительно сократили затраты времени на вспомогательные действия по организации вычислительного процесса, а значит, был сделан еще один шаг по повышению эффективности использования компьютеров. Однако при этом программисты-пользователи лишились непосредственного доступа к компьютеру, что снижало эффективность их работы - внесение любого исправления требовало значительно больше времени, чем при интерактивной работе за пультом машины.

Появление мультипрограммных операционных систем для мэйнфреймов

Следующий важный период развития операционных систем относится к 1965-1975 годам.

В это время в технической базе вычислительных машин произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам, что открыло путь к появлению следующего поколения компьютеров. Большие функциональные возможности интегральных схем сделали возможным реализацию на практике сложных компьютерных архитектур, таких, например, как IBM/360.

В этот период были реализованы практически все основные механизмы, присущие современным ОС: мультипрограммирование, мультипроцессирование, поддержка многотерминального многопользовательского режима, виртуальная память, файловые системы, разграничение доступа и сетевая работа. В эти годы начинается расцвет системного программирования. Из направления прикладной математики, представляющего интерес для узкого круга специалистов, системное программирование превращается в отрасль индустрии, оказывающую непосредственное влияние на практическую деятельность миллионов людей. Революционным событием данного этапа явилась промышленная реализация мультипрограммирования. (Заметим, что в виде концепции и экспериментальных систем этот способ организации вычислений существовал уже около десяти лет.) В условиях резко возросших возможностей компьютера по обработке и хранению данных выполнение только одной программы в каждый момент времени оказалось крайне неэффективным. Решением стало мультипрограммирование - способ организации вычислительного процесса, при котором в памяти компьютера находилось одновременно несколько программ, попеременно выполняющихся на одном процессоре. Эти усовершенствования значительно улучшили эффективность вычислительной системы: компьютер теперь мог использоваться почти постоянно, а не менее половины времени работы компьютера, как это было раньше.

Мультипрограммирование было реализовано в двух вариантах - в системах пакетной обработки и разделения времени.

Мультипрограммные системы пакетной обработки так же, как и их однопрограммные предшественники, имели своей целью обеспечение максимальной загрузки аппаратуры компьютера, однако решали эту задачу более эффективно. В мультипрограммном пакетном режиме процессор не простаивал, пока одна программа выполняла операцию ввода-вывода (как это происходило при последовательном выполнении программ в системах ранней пакетной обработки), а переключался на другую готовую к выполнению программу. В результате достигалась сбалансированная загрузка всех устройств компьютера, а следовательно, увеличивалось число задач, решаемых в единицу времени. В мультипрограммных системах пакетной обработки пользователь по-прежнему был лишен возможности интерактивно взаимодействовать со своими программами. Для того чтобы хотя бы частично вернуть пользователям ощущение непосредственного взаимодействия с компьютером, был разработан другой вариант мультипрограммных систем - системы разделения времени. Этот вариант рассчитан на многотерминальные системы, когда каждый пользователь работает за своим терминалом. В числе первых операционных систем разделения времени, разработанных в середине 60-х годов, были TSS/360 (компания IBM), CTSS и MULTICS (Массачусетский технологический институт совместно с Bell Labs и компанией General Electric). Вариант мультипрограммирования, применяемый в системах разделения времени, был нацелен на создание для каждого отдельного пользователя иллюзии единоличного владения вычислительной машиной за счет периодического выделения каждой программе своей доли процессорного времени. В системах разделения времени эффективность использования оборудования ниже, чем в системах пакетной обработки, что явилось платой за удобства работы пользователя.

Многотерминальный режим использовался не только в системах разделения времени, но и в системах пакетной обработки. При этом не только оператор, но и все пользователи получали возможность формировать свои задания и управлять их выполнением со своего терминала. Такие операционные системы получили название систем удаленного ввода заданий. Терминальные комплексы могли располагаться на большом расстоянии от процессорных стоек, соединяясь с ними с помощью различных глобальных связей - модемных соединений телефонных сетей или выделенных каналов. Для поддержания удаленной работы терминалов в операционных системах появились специальные программные модули, реализующие различные (в то время, как правило, нестандартные) протоколы связи, Такие вычислительные системы с удаленными терминалами, сохраняя централизованный характер обработки данных, в какой-то степени являлись прообразом современных сетей, а соответствующее системное программное обеспечение - прообразом сетевых операционных систем.

К этому времени можно констатировать существенное изменение в распределении функций между аппаратными и программными средствами компьютера. Операционные системы становились неотъемлемыми элементами компьютеров, играя роль «продолжения» аппаратуры. В первых вычислительных машинах программист, напрямую взаимодействуя с аппаратурой, мог выполнить загрузку программных кодов, используя пультовые переключатели и лампочки индикаторов, а затем вручную запустить программу на выполнение, нажав кнопку «пуск». В компьютерах 60-х годов большую часть действий по организации вычислительного процесса взяла на себя операционная система. (В большинстве современных компьютеров не предусмотрено даже теоретической возможности выполнения какой-либо вычислительной работы без участия операционной системы. После включения питания автоматически происходит поиск, загрузка и запуск операционной системы, а в случае ее отсутствия компьютер просто останавливается.)

Реализация мультипрограммирования потребовала внесения очень важных изменений в аппаратуру компьютера, непосредственно направленных на поддержку нового способа организации вычислительного процесса. При разделении ресурсов компьютера между программами необходимо обеспечить быстрое переключение процессора с одной программы на другую, а также надежно защитить коды и данные одной программы от непреднамеренной или преднамеренной порчи другой программой. В процессорах появился привилегированный и пользовательский режимы работы, специальные регистры для быстрого переключения с одной программы на другую, средства защиты областей памяти, а также развитая система прерываний.

В привилегированном режиме, предназначенном для работы программных модулей операционной системы, процессор мог выполнять все команды, в том числе и те из них, которые позволяли осуществлять распределение и защиту ресурсов компьютера. Программам, работающим в пользовательском режиме, некоторые команды процессора были недоступны. Таким образом, только ОС могла управлять аппаратными средствами и исполнять роль монитора и арбитра для пользовательских программ, которые выполнялись в непривилегированном, пользовательском режиме.

Система прерываний позволяла синхронизировать работу различных устройств компьютера, работающих параллельно и асинхронно, таких как каналы ввода-вывода, диски, принтеры и т. п. Аппаратная поддержка операционных систем стала с тех пор неотъемлемым свойством практически любых компьютерных систем, включая персональные компьютеры.

Еще одной важной тенденцией этого периода является создание семейств программно-совместимых машин и операционных систем для них. Примерами семейств программно-совместимых машин, построенных на интегральных микросхемах, являются серии машин IBM/360 и IBM/370 (аналоги этих семейств советского производства - машины серии ЕС), PDP-11 (советские аналоги - CM-3, CM-4, CM-1420). Вскоре идея программно-совместимых машин стала общепризнанной.

Программная совместимость требовала и совместимости операционных систем. Однако такая совместимость подразумевает возможность работы на больших и на малых вычислительных системах, с большим и с малым количеством разнообразной периферии, в коммерческой области и в области научных исследований. Операционные системы, построенные с намерением удовлетворить всем этим противоречивым требованиям, оказались чрезвычайно сложными. Они состояли из многих миллионов ассемблерных строк, написанных тысячами программистов, и содержали тысячи ошибок, вызывающих нескончаемый поток исправлений. Операционные системы этого поколения были очень дорогими. Так, разработка OS/360, объем кода для которой составил 8 Мбайт, стоила компании IBM 80 миллионов долларов.

Однако несмотря на необозримые размеры и множество проблем, OS/360 и другие ей подобные операционные системы этого поколения действительно удовлетворяли большинству требований потребителей. За это десятилетие был сделан огромный шаг вперед и заложен прочный фундамент для создания современных операционных систем.

Операционные системы и глобальные сети

В начале 70-х годов появились первые сетевые операционные системы, которые в отличие от многотерминальных ОС позволяли не только рассредоточить пользователей, но и организовать распределенное хранение и обработку данных между несколькими компьютерами, связанными электрическими связями. Любая сетевая операционная система, с одной стороны, выполняет все функции локальной операционной системы, а с другой стороны, обладает некоторыми дополнительными средствами, позволяющими ей взаимодействовать по сети с операционными системами других компьютеров. Программные модули, реализующие сетевые функции, появлялись в операционных системах постепенно, по мере развития сетевых технологий, аппаратной базы компьютеров и возникновения новых задач, требующих сетевой обработки.

Хотя теоретические работы по созданию концепций сетевого взаимодействия велись почти с самого появления вычислительных машин, значимые практические результаты по объединению компьютеров в сети были получены в конце 60-х, когда с помощью глобальных связей и техники коммутации пакетов удалось реализовать взаимодействие машин класса мэйнфреймов и суперкомпьютеров. Эти дорогостоящие компьютеры часто хранили уникальные данные и программы, доступ к которым необходимо было обеспечить широкому кругу пользователей, находившихся в различных городах на значительном расстоянии от вычислительных центров.

В 1969 году Министерство обороны США инициировало работы по объединению суперкомпьютеров оборонных и научно-исследовательских центров в единую сеть. Эта сеть получила название ARPANET и явилась отправной точкой для создания самой известной ныне глобальной сети - Интернета. Сеть ARPANET объединяла компьютеры разных типов, работавшие под управлением различных ОС с добавленными модулями, реализующими коммуникационные протоколы, общие для всех компьютеров сети.

В 1974 году компания IBM объявила о создании собственной сетевой архитектуры для своих мэйнфреймов, получившей название SNA (System Network Architecture). Эта многоуровневая архитектура, во многом подобная стандартной модели OSI, появившейся несколько позже, обеспечивала взаимодействие типа «терминал-терминал», «терминал-компьютер» и «компьютер-компьютер» по глобальным связям. Нижние уровни архитектуры были реализованы специализированными аппаратными средствами, наиболее важным из которых является процессор телеобработки. Функции верхних уровней SNA выполнялись программными модулями. Один из них составлял основу программного обеспечения процессора телеобработки. Другие модули работали на центральном процессоре в составе стандартной операционной системы IBM для мэйнфреймов.

В это же время в Европе велись активные работы по созданию и стандартизации сетей Х.25. Эти сети с коммутацией пакетов не были привязаны к какой-либо конкретной операционной системе. После получения статуса международного стандарта в 1974 году протоколы Х.25 стали поддерживаться многими операционными системами. С 1980 года компания IBM включила поддержку протоколов Х.25 в архитектуру SNA и в свои операционные системы.

Операционные системы мини-компьютеров и первые локальные сети

К середине 70-х годов наряду с мэйнфреймами широкое распространение получили мини-компьютеры, такие как PDP-11, Nova, HP. Мини-компьютеры первыми использовали преимущества больших интегральных схем, позволившие реализовать достаточно мощные функции при сравнительно невысокой стоимости компьютера.

Архитектура мини-компьютеров была значительно упрощена по сравнению с мэйнфреймами, что нашло отражение и в их операционных системах. Многие функции мультипрограммных многопользовательских ОС мэйнфреймов были усечены, учитывая ограниченность ресурсов мини-компьютеров. Операционные системы мини-компьютеров часто стали делать специализированными, например только для управления в реальном времени (ОС RT-11 для мини-компьютеров PDP-11) или только для поддержания режима разделения времени (RSX-11M для тех же компьютеров). Эти операционные системы не всегда были многопользовательскими, что во многих случаях оправдывалось невысокой стоимостью компьютеров.

Важной вехой в истории мини-компьютеров и вообще в истории операционных систем явилось создание ОС UNIX. Первоначально эта ОС предназначалась для поддержания режима разделения времени в мини-компьютере PDP-7. С середины 70-х годов началось массовое использование ОС UNIX. К этому времени программный код для UNIX был на 90 % написан на языке высокого уровня С. Широкое распространение эффективных С-компиляторов сделало UNIX уникальной для того времени ОС, обладающей возможностью сравнительно легкого переноса на различные типы компьютеров. Поскольку эта ОС поставлялась вместе с исходными кодами, то она стала первой открытой ОС, которую могли совершенствовать простые пользователи-энтузиасты. Хотя UNIX была первоначально разработана для мини-компьютеров, гибкость, элегантность, мощные функциональные возможности и открытость позволили ей занять прочные позиции во всех классах компьютеров: суперкомпьютерах, мэйнфреймах, мини-компьютерах, серверах и рабочих станциях на базе RISC-процессоров, персональных компьютерах.

Доступность мини-компьютеров и вследствие этого их распространенность на предприятиях послужили мощным стимулом для создания локальных сетей. Предприятие могло себе позволить иметь несколько мини-компьютеров, находящихся в одном здании или даже в одной комнате. Естественно, возникала потребность в обмене информацией между ними и в совместном использовании дорогого периферийного оборудования.

Первые локальные сети строились с помощью нестандартного коммуникационного оборудования, в простейшем случае - путем прямого соединения последовательных портов компьютеров. Программное обеспечение также было нестандартным и реализовывалось в виде пользовательских приложений. Первое сетевое приложение для ОС UNIX - программа UUCP (UNIX-to-UNIX Copy program) -. появилась в 1976 году и начала распространяться с версией 7 AT&T UNIX с 1978 года. Эта программа позволяла копировать файлы с одного компьютера на другой в пределах локальной сети через различные аппаратные интерфейсы - RS-232, токовую петлю и т. п., а кроме того, могла работать через глобальные связи, например модемные.

Развитие операционных систем в 80-е годы

К наиболее важным событиям этого десятилетия можно отнести разработку стека TCP/IP, становление Интернета, стандартизацию технологий локальных сетей, появление персональных компьютеров и операционных систем для них.

Рабочий вариант стека протоколов TCP/IP был создан в конце 70-х годов. Этот стек представлял собой набор общих протоколов для разнородной вычислительной среды и предназначался для связи экспериментальной сети ARPANET с другими «сателлитными» сетями. В 1983 году стек протоколов TCP/IP был принят Министерством обороны США в качестве военного стандарта. Переход компьютеров сети ARPANET на стек TCP/IP ускорила его реализация для операционной системы BSD UNIX. С этого времени началось совместное существование UNIX и протоколов TCP/IP, а практически все многочисленные версии Unix стали сетевыми.

Внедрение протоколов TCP/IP в ARPANET придало этой сети все основные черты, которые отличают современный Интернет. В 1983 году сеть ARPANET была разделена на две части: MILNET, поддерживающую военные ведомства США, и новую ARPANET. Для обозначения составной сети ARPANET и MILNET стало использоваться название Internet, которое в русском языке со временем (и с легкой руки локализаторов Microsoft) превратилось в Интернет. Интернет стал отличным полигоном для испытаний многих сетевых операционных систем, позволившим проверить в реальных условиях возможности их взаимодействия, степень масштабируемости, способность работы при экстремальной нагрузке, создаваемой сотнями и тысячами пользователей. Стек протоколов TCP/IP также ждала завидная судьба. Независимость от производителей, гибкость и эффективность, доказанные успешной работой в Интернете, а также открытость и доступность стандартов сделали протоколы TCP/IP не только главным транспортным механизмом Интернета, но и основным стеком большинства сетевых операционных систем.

Все десятилетие было отмечено постоянным появлением новых, все более совершенных версий ОС UNIX. Среди них были и фирменные версии UNIX: SunOS, HP-UX, Irix, AIX и многие другие, в которых производители компьютеров адаптировали код ядра и системных утилит для своей аппаратуры. Разнообразие версий породило проблему их совместимости, которую периодически пытались решить различные организации. В результате были приняты стандарты POSIX и XPG, определяющие интерфейсы ОС для приложений, а специальное подразделение компании AT&T выпустило несколько версий UNIX System III и UNIX System V, призванных консолидировать разработчиков на уровне кода ядра.

Начало 80-х годов связано с еще одним знаменательным для истории операционных систем событием - появлением персональных компьютеров. С точки зрения архитектуры персональные компьютеры ничем не отличались от класса мини-компьютеров типа PDP-11, но их стоимость была существенно ниже. Если мини-компьютер позволил иметь собственную вычислительную машину отделу предприятия или университету, то персональный компьютер дал такую возможность отдельному человеку. Компьютеры стали широко использоваться неспециалистами, что потребовало разработки «дружественного» программного обеспечения, и предоставление этих «дружественных» функций стало прямой обязанностью операционных систем. Персональные компьютеры послужили также мощным катализатором для бурного роста локальных сетей, создав для этого отличную материальную основу в виде десятков и сотен компьютеров, принадлежащих одному предприятию и расположенных в пределах одного здания. В результате поддержка сетевых функций стала для ОС персональных компьютеров необходимым условием.

Однако и дружественный интерфейс, и сетевые функции появились у операционных систем персональных компьютеров не сразу. Первая версия наиболее популяркой операционной системы раннего этапа развития персональных компьютеров - MS-DOS компании Microsoft - была лишена этих возможностей. Это была однопрограммная однопользовательская ОС с интерфейсом командной строки, способная стартовать с дискеты. Основными задачами для нее были управление файлами, расположенными на гибких и жестких дисках в UNIX-подобной иерархической файловой системе, а также поочередный запуск программ. MS-DOS не была защищена от программ пользователя, так как процессор Intel 8088 не поддерживал привилегированного режима. Разработчики первых персональных компьютеров считали, что при индивидуальном использовании компьютера и ограниченных возможностях аппаратуры нет смысла в поддержке мультипрограммирования, поэтому в процессоре не были предусмотрены привилегированный режим и другие механизмы поддержки мультипрограммных систем.

Недостающие функции для MS-DOS и подобных ей ОС компенсировались внешними программами, предоставлявшими пользователю удобный графический интерфейс (например, Norton Commander) или средства тонкого управления дисками (например, PC Tools). Наибольшее влияние на развитие программного обеспечения для персональных компьютеров оказала операционная среда Windows компании Microsoft, представлявшая собой надстройку над MS-DOS.

Сетевые функции также реализовывались в основном сетевыми оболочками, работавшими поверх ОС. При сетевой работе всегда необходимо поддерживать многопользовательский режим, при котором один пользователь - интерактивный, а остальные получают доступ к ресурсам компьютера по сети. В таком случае от операционной системы требуется хотя бы некоторый минимум функциональной поддержки многопользовательского режима. История сетевых средств MS-DOS началась с версии 3.1. Эта версия MS-DOS добавила к файловой системе необходимые средства блокировки файлов и записей, которые позволили более чем одному пользователю иметь доступ к файлу. Пользуясь этими функциями, сетевые оболочки могли обеспечить разделение файлов между сетевыми пользователями.