Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Обзор инструментов SEO-оптимизатора и методов продвижения" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Постановка вопроса
Информационный Канал Subscribe.Ru |
Создай свою операционную систему!
Выпуск 2. ЭВОЛЮЦИЯ ОПЕРАЦИОННЫХ СИСТЕМ.
Предлагаю вашему вниманию следующее произведение
Книга "Сетевые операционные системы"
ГЛАВА 1. ЭВОЛЮЦИЯ ОПЕРАЦИОННЫХ СИСТЕМ
История любой отрасли науки или техники позволяет не только удов-летворить естественное любопытство, но и глубже понять сущность основ-ных достижений этой отрасли, осознать существующие тенденции и пра-вильно оценить перспектив-ность тех или иных направлений развития. За почти полувековой период своего существования операционные системы прошли сложный путь, насыщенный многими важными событиями. Огром-ное влияние на развитие операционных систем оказали успехи в совершенст-вовании элементной базы и вычислитель-ной аппаратуры, поэтому многие этапы развития ОС тесно связаны с появлени-ем новых типов аппаратных платформ, таких как миникомпьютеры или персо-нальные компьютеры. Серь-езную эволюцию операционные системы претерпели в связи с новой ролью компьютеров в локальных и глобальных сетях. Важней-шим фактором разви-тия ОС стал Интернет. По мере того как эта Сеть приоб-ретает черты универ-сального средства массовых коммуникаций, ОС становятся все более про-стыми и удобными в использовании, включают развитые средства поддержки мультимедийной информации, снабжаются надежными средствами защиты.
Появление первых операционных систем
Идея компьютера была предложена английским математиком Чарль-зом Бэбиджем (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 (со-ветские аналоги - СМ-3, СМ-4, СМ-1420). Вскоре идея программно-совместимых машин стала об-щепризнанной.
Программная совместимость требовала и совместимости операцион-ных систем. Однако такая совместимость подразумевает возможность работы на больших и на малых вычислительных системах, с большим и с малым ко-личеством разно-образной периферии, в коммерческой области и в области научных исследо-ваний. Операционные системы, построенные с намерением удовлетворить всем этим противоречивым требованиям, оказались чрезвы-чайно сложными. Они со-стояли из многих миллионов ассемблерных строк, написанных тысячами про-граммистов, и содержали тысячи ошибок, вызы-вающих нескончаемый поток ис-правлений. Операционные системы этого по-коления были очень дорогими. Так, разработка OS/360, объем кода для кото-рой составил 8 Мбайт, стоила компании IBM 80 миллионов долларов.
Однако несмотря на необозримые размеры и множество проблем, OS/360 и дру-гие ей подобные операционные системы этого поколения дейст-вительно удовле-творяли большинству требований потребителей. За это деся-тилетие был сделан огромный шаг вперед и заложен прочный фундамент для создания современных операционных систем.
Операционные системы и глобальные сети
В начале 70-х годов появились первые сетевые операционные систе-мы, которые в отличие от многотерминальных ОС позволяли не только рас-средоточить поль-зователей, но и организовать распределенное хранение и обработку данных меж-ду несколькими компьютерами, связанными электри-ческими связями. Любая сетевая операционная система, с одной стороны, выполняет все функции локаль-ной операционной системы, а с другой сторо-ны, обладает некоторыми дополни-тельными средствами, позволяющими ей взаимодействовать по сети с опера-ционными системами других компьюте-ров. Программные модули, реализующие сетевые функции, появлялись в операционных системах постепенно, по мере развития сетевых технологий, аппаратной базы компьютеров и возникновения новых задач, требующих се-тевой обработки.
Хотя теоретические работы по созданию концепций сетевого взаимо-действия ве-лись почти с самого появления вычислительных машин, значи-мые практические результаты по объединению компьютеров в сети были по-лучены в конце 60-х, когда с помощью глобальных связей и техники комму-тации пакетов удалось реа-лизовать взаимодействие машин класса мэйнфрей-мов и суперкомпьютеров. Эти дорогостоящие компьютеры часто хранили уникальные данные и программы, доступ к которым необходимо было обес-печить широкому кругу пользователей, находившихся в различных городах на значительном расстоянии от вычисли-тельных центров.
В 1969 году Министерство обороны США инициировало работы по объеди-нению суперкомпьютеров оборонных и научно-исследовательских центров в единую сеть. Эта сеть получила название ARPANET и явилась от-правной точ-кой для создания самой известной ныне глобальной сети - Ин-тернета. Сеть ARPANET объединяла компьютеры разных типов, работавшие под управлением различных ОС с добавленными модулями, реализующими коммуникационные протоколы, общие для всех компьютеров сети.
В 1974 году компания IBM объявила о создании собственной сетевой архитекту-ры для своих мэйнфреймов, получившей название SNA (System Network Archi-tecture). Эта многоуровневая архитектура, во многом подобная стандартной мо-дели 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 Сору 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). Наибольшее влияние на развитие программного обеспечения для персональных компьютеров оказала операционная среда Win-dows компании Microsoft, представлявшая собой надстройку над MS-DOS.
Сетевые функции также реализовывались в основном сетевыми оболочками, ра-ботавшими поверх ОС. При сетевой работе всегда необходимо поддерживать многопользовательский режим, при котором один пользователь - интерактив-ный, а остальные получают доступ к ресурсам компьютера по сети. В таком слу-чае от операционной системы требуется хотя бы некоторый минимум функцио-нальной поддержки многопользовательского режима. История сетевых средств MS-DOS началась с версии 3.1. Эта версия MS-DOS добавила к файловой систе-ме необходимые средства блокировки файлов и записей, которые позволили бо-лее чем одному пользователю иметь доступ к файлу. Пользуясь этими функция-ми, сетевые оболочки могли обеспечить разделение файлов между сетевыми пользователями.
Вместе с выпуском версии MS-DOS 3.1 в 1984 году компания Micro-soft также выпустила продукт, называемый 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. Влияние Интернета проявилось и в том, что компьютер превратился из чисто вычислительного устройства в средство коммуникаций с развитыми вычислительными возмож-ностями.
Особое внимание в течение всего последнего десятилетия уделялось корпора-тивным сетевым операционным системам. Их дальнейшее развитие представля-ет одну из наиболее важных задач и в обозримом будущем. Кор-поративная операционная система отличается способностью хорошо и ус-тойчиво работать в крупных сетях, которые характерны для больших пред-приятий, имеющих от-деления в десятках городов и, возможно, в разных странах. Таким сетям органи-чески присуща высокая степень гетерогенности программных и аппаратных средств, поэтому корпоративная ОС должна бес-проблемно взаимодействовать с операционными системами разных типов и работать на различных аппаратных платформах. К настоящему времени дос-таточно явно определилась тройка лиде-ров в классе корпоративных ОС - это Novell NetWare 4.х и 5.0, Microsoft Windows NT 4.0 и Windows 2000, а также UNIX-системы различных производи-телей аппаратных платформ.
Для корпоративной ОС очень важно наличие средств централизован-ного адми-нистрирования и управления, позволяющих в единой базе данных хранить учет-ные записи о десятках тысяч пользователей, компьютеров, ком-муникационных устройств и модулей программного обеспечения, имеющих-ся в корпоративной сети. В современных операционных системах средства централизованного адми-нистрирования обычно базируются на единой спра-вочной службе. Первой успеш-ной реализацией справочной службы корпора-тивного масштаба была система StreetTalk компании Banyan. К настоящему времени наибольшее признание получила справочная служба NDS компании Novell, выпущенная впервые в 1993 году для первой корпоративной версии NetWare 4.0. Роль централизован-ной справочной службы настолько велика, что именно по качеству справочной службы оценивают пригодность опера-ционной системы для работы в корпора-тивном масштабе. Длительная за-держка выпуска Windows NT 2000 во многом была связана с созданием для этой ОС масштабируемой справочной службы Active Directory, без которой этому семейству ОС трудно было претендовать на звание истинно корпора-тивной ОС.
Создание многофункциональной масштабируемой справочной служ-бы является стратегическим направлением эволюции ОС. От успехов этого направления во многом зависит и дальнейшее развитие Интернета. Такая служба нужна для пре-вращения Интернета в предсказуемую и управляемую систему, например для обеспечения требуемого качества обслуживания тра-фика пользователей, под-держки крупных распределенных приложений, по-строения эффективной почто-вой системы и т.п.
На современном этапе развития операционных систем на передний план вышли средства обеспечения безопасности. Это связано с возросшей ценностью инфор-мации, обрабатываемой компьютерами, а также с повы-шенным уровнем угроз, существующих при передаче данных по сетям, осо-бенно по публичным, таким как Интернет. Многие операционные системы обладают сегодня развитыми средствами защиты информации, основанными на шифрации данных, аутенти-фикации и авторизации.
Современным операционным системам присуща многоплатформен-постъ, то есть способность работать на совершенно различных типах ком-пьютеров. Многие операционные системы имеют специальные версии для поддержки кластерных архитектур, обеспечивающих высокую производи-тельность и отказоустойчивость. Исключением пока является ОС NetWare, все версии которой разработаны для платформы Intel, а реализации функций NetWare в виде оболочки для других ОС, например NetWare for AIX, успеха на имели.
В последние годы получила дальнейшее развитие долговременная тенденция по-вышения удобства работы человека с компьютером. Эффек-тивность работы че-ловека становится основным фактором, определяющим эффективность вычисли-тельной системы в целом. Усилия человека не долж-ны тратиться на настройку параметров вычислительного процесса, как это происходило в ОС предыдущих поколений. Например, в системах пакетной обработки для мэйнфреймов каж-дый пользователь должен был с помощью языка управления заданиями опре-делить большое количество параметров, относящихся к организации вычисли-тельных процессов в компьютере. Так, для системы OS/360 язык управления заданиями JCL предусматривал воз-можность определения пользователем более 40 параметров, среди которых были приоритет задания, требования к основной памяти, предельное время выполнения задания, перечень используемых устройств ввода-вывода и ре-жимы их работы.
Современная операционная система берет на себя выполнение задачи выбора параметров операционной среды, используя для этой цели различные адаптив-ные алгоритмы. Например, тайм-ауты в коммуникационных протоко-лах часто определяются в зависимости от условий работы сети. Распределе-ние оператив-ной памяти между процессами осуществляется автоматически с помощью меха-низмов виртуальной памяти в зависимости от активности этих процессов и ин-формации о частоте использования ими той или иной страницы. Мгновенные приоритеты процессов определяются динамически в зависимости от предысто-рии, включающей, например, время нахождения процесса в очереди, процент ис-пользования выделенного кванта времени, интенсивность ввода-вывода и т.п. Даже в процессе установки большинство ОС предлагают режим выбора пара-метров по умолчанию, который гарантирует пусть не оптимальное, но всегда приемлемое качество работы систем.
Постоянно повышается удобство интерактивной работы с компьюте-ром путем включения в операционную систему развитых графических ин-терфейсов, исполь-зующих наряду с графикой звук и видеоизображение. Это особенно важно для превращения компьютера в терминал новой публичной сети, которой постепен-но становится Интернет, так как для массового поль-зователя терминал должен быть почти таким же понятным и удобным, как телефонный аппарат. Пользова-тельский интерфейс операционной системы становится все более интеллекту-альным, направляя действия человека в ти-повых ситуациях и принимая за него рутинные решения.
Уровень удобств в использования ресурсов, которые сегодня предос-тавляют поль-зователям, администраторам и разработчикам приложений опе-рационные сис-темы изолированных компьютеров, для сетевых операцион-ных систем являет-ся только заманчивой перспективой. Пока пользователи и администраторы сети тратят значительное время на попытки выяснить, где находится тот или иной ре-сурс, разработчики сетевых приложений прилага-ют много усилий для определе-ния местоположения данных и программных модулей в сети. Операционные системы будущего должны обеспечить высо-кий уровень прозрачности сетевых ресурсов, взяв на себя задачу организации распределенных вычислений, превратив сеть в виртуальный компьютер. Именно этот смысл вкладывают в лаконич-ный лозунг "Сеть - это компью-тер" специалисты компании Sun, но для превра-щения лозунга в жизнь разра-ботчикам операционных систем нужно пройти еще немалый путь.
Выводы
· История ОС насчитывает примерно полвека. Она во многом определялась и определяется развитием элементной базы и вычислительной аппаратуры.
· Первые цифровые вычислительные машины, появившиеся в начале 40-х годов, работали без операционных систем, все задачи организации вычисли-тельного процесса решались вручную каждым программистом с пульта управления.
· Прообразом современных операционных систем явились мониторные сис-те-мы середины 50-х, которые автоматизировали действия оператора по выпол-нению пакета заданий.
· В 1965-1975 годах переход к интегральным микросхемам открыл путь к по-явлению следующего поколения компьютеров, ярким представителем кото-рых является 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. В чем состоят современные тенденции развития ОС?
To be continue...
Alexander
Создай свой УжОС
Библиотека разработчика ОС
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||