Назначение, особенности и история развития операционных систем
Операционная система (ОС) – это набор взаимодействующих программ (часто называемых системными) и информационных структур данных, с помощью которых организуется взаимодействие пользователя и прикладных программ с вычислительной системой. Важность операционных систем определяется частотой их использования: практически всегда взаимодействие с компьютером производится именно через этот набор программ. Тем самым обеспечивается автоматизация выполнения типичных стандартных действий, связанных с использованием основных устройств компьютера. Широчайшее распространение компьютеров во все сферы деятельности человека произошло во многом благодаря именно наличию простых в использовании (но сложных по своей организации) ОС.
ОС относятся к классу системного программного обеспечения, куда кроме них входят такие типы программ, как трансляторы и интерпретаторы языков программирования, компоновщики и загрузчики, различные вспомогательные программы (утилиты). Важнейшей особенностью ОС являются их теснейшая связь с архитектурой базового процессора, аппаратная поддержка многих важнейших функций. Все современные процессоры, прежде всего – семейства Intel, имеют в своем составе соответствующие компоненты и проектируются уже с учетом реализации данных функций. Это обеспечивает высочайшую скорость выполнения данных функций, хотя и уменьшает возможность переноса ОС на другую аппаратную платформу. Место ОС можно показать на следующей схеме:
ОС рассматривает компьютер как набор различных ресурсов, необходимых для решения некоторой задачи. Все ресурсы обычно делятся на две большие группы: физические и логические. К основным физическим ресурсам относятся: основная память, центральный процессор, внешняя память, устройства ввода и вывода данных, дополнительные внешние устройства. К логическим ресурсам относятся: файлы, программные модули, внутренние информационные структуры, различные системные объекты. Управление этими ресурсами с целью наиболее эффективного и удобного их использования и представляет собой важнейшее назначение ОС. Операционные системы развиваются уже более 50 лет, и за это время был накоплен огромный практический опыт, проверены различные идеи и концепции, составляющие основу современных ОС. В истории развития ОС можно выделить следующие основные этапы (еще раз обращаем внимание на теснейшую связь ОС с техническими возможностями компьютеров).
1. 50-е годы ХХ века: осознание необходимости создания специальных программ, упрощающих выполнение часто повторяющихся рутинных операций (считывание с устройства ввода текста программы, трансляция программы на язык машины, размещение созданного машинного кода в памяти, контроль выполнения этого кода, вывод результатов на устройство вывода). Появляются первые управляющие программы-мониторы как прообраз будущих ОС. Особенностью этих программ по сравнению с прикладными программами было то, что они предназначались не для решения конкретной задачи обработки данных, а для управления процессом обработки.
2. 60-е годы. Важнейшим техническим событием этих лет было создание компанией IBM первого семейства универсальных ЭВМ широкого использования – семейства IBM/360. Для этого семейства было разработано несколько версий ОС с общим названием OS/360. В этих ОС были реализованы и впервые широко опробованы многие базовые идеи, используемые и до сих пор. Одной из таких концепций является многозадачность, когда в одной вычислительной системе предпринимается попытка одновременного выполнения нескольких программ. Поскольку разным программам в одно и то же время могут требоваться разные ресурсы, появляется возможность разумного распределения этих ресурсов с целью наиболее эффективной загрузки различных устройств. Это в целом уменьшает суммарное время выполнения набора задач, хотя время выполнения одной конкретной программы может возрасти. Реализация многозадачности потребовала решения ряда важнейших задач, среди которых надо отметить следующие:
- переключение процессора с выполнения кода одной программы на код другой программы с возможностью возобновления в дальнейшем выполнения прерванного кода без каких-либо последствий;
- защита кода и данных одной программы от случайного воздействия со стороны другой программы, поскольку разные программы совместно должны использовать одну и ту же основную память;
- необходимость размещения в ограниченной основной памяти кода и данных нескольких программ, суммарный объем которых больше объема основной памяти, что привело к развитию идеи виртуальной памяти с вытеснением части кода и данных во внешнюю память;
- разграничение доступа к процессору для системных и прикладных программ, что привело к появлению двух режимов работы процессора: в привилегированном режиме (режим ядра, режим супервизора) могут выполняться абсолютно все команды процессора, тогда как в пользовательском режиме выполнение некоторых команд запрещено;
- синхронизация работы различных устройств на основе механизма прерываний.
- все более широкое распространение «в массах» мини-компьютеров, лидерами среди которых являлась компания DEC со своей серией машин марки PDP/VAX. Для них были созданы свои ОС, более простые по сравнению с OS/360, но обладающие, тем не менее, достаточно серьезными возможностями, включая поддержку многозадачного режима;
- реализация многопользовательского режима работы, когда с одной вычислительной системой одновременно работает несколько пользователей со своих терминалов;
- безусловно, важнейшим событием было создание ОС UNIX как основы мобильных ОС, легко переносимых на разные аппаратные платформы. Это свойство системы обеспечивалось написанием практически всего программного кода на языке высокого уровня С и наличием трансляторов с этого языка для всех основных типов процессоров. Исходный код системы UNIX открыто распространялся всем желающим, что сделало данную систему исключительно популярной в мире. Правда, эта популярность имеет и обратную сторону: было создано множество вариантов Unix-подобных систем, которые далеко не всегда могли быть совмещены друг с другом.
- начало эры персональных компьютеров;
- начало развития сетевых технологий.
Что касается сетевых технологий, то в эти годы наиболее полную свою реализацию они получили в составе различных версий системы Unix, таких как System V, BSD, SunOS/Solaris, IBM AIX. Все эти ОС были многопользовательскими и многозадачными, поддерживали иерархическую организацию файлов на дисках и механизм виртуальной памяти.
5. 90-е годы: следуя все еще действующему предсказанию Гордона Мура, вычислительные мощности процессоров ПК продолжали неуклонно расти, что дало возможность постепенно перейти от простейших ОС типа MS DOS к более мощным и удобным. С середины 90-х начинается «победоносное» распространение по миру ОС семейства Windows – от весьма слабой версии Windows 95 до вполне приличной для повседневной работы Windows МЕ (Millennium Edition). Кроме того, постепенно это семейство распространилось и на сектор сетевых ОС в виде «тяжеловесной» системы NT (т.е. New Technology) и ее более поздней реализации Windows 2000 (версии Professional, Server, Advanced Server, Datacenter). Реальную конкуренцию системам семейства MS Windows составляет лишь старая добрая система UNIX, которая в 90-е годы получила мощное подкрепление в виде своей разновидности Linux, первоначально созданной для процессоров Intel, но потом мигрировавшей и на другие платформы.
6. В первое десятилетие нового века ситуация на рынке ОС складывается следующим образом:
- Компания Microsoft продолжает развивать свое семейство Windows как в пользовательском, так и серверном варианте. Для массового использования были последовательно выпущены версии XP, Vista и W7. Основные серверные версии – Server 2003 и Server 2008. Одной из важнейших особенностей последних версий является поддержка 64-разрядных процессоров.
- Мировое сообщество совершенствует ОС Unix, прежде всего – Linux. Успех этой ОС объясняется ее неприхотливостью, надежностью и безопасностью, открытостью исходного кода с возможностью настройки его под свои требования. Наиболее известные версии Linux - это Ubuntu, Mandriva, ASP, OpenSUSE, Debian.
После этого небольшого обзора можно вернуться к рассмотрению общих вопросов и привести классификацию операционных систем в зависимости от области применения. Не претендуя на истину в последней инстанции, можно выделить следующие основные группы операционных систем:
- Универсальные пользовательские системы для массовых ПК, основное назначение которых – создание удобной среды для работы пользователя со множеством приложений в условиях непредсказуемой многозадачности. Здесь около 90% систем составляют ОС семейства Windows, хотя и наблюдается некоторое смещение в сторону Linux-систем.
- Серверные системы для управления работой корпоративных сетей с решением таких задач, как взаимодействие с клиентскими системами, управление пользователями с разграничением прав, обеспечение безопасности данных. В этом сегменте наблюдается примерно равное использование систем семейства Windows и систем на основе Unix/Linux.
- Системы для мобильных устройств с ограниченными возможностями.
- Специализированные системы для управления быстротекущими процессами, где главный критерий – скорость реакции (системы реального времени). Это требование приводит к тому, что внутренняя организация таких систем существенно отличается от универсальных. Наиболее известной ОС данного класса является система QNX.
- рациональное распределение физических и логических ресурсов между работающими приложениями;
- предоставление разработчикам и приложениям широкого спектра системных функций уровня API (Application Program Interface, Интерфейс прикладного программирования);
- поддержка сетевых взаимодействий на основе стандартов и протоколов;
- обеспечение безопасности данных.
- распределение процессорного времени между работающими приложениями (управление процессами и потоками);
- распределение ограниченной по объему основной памяти между выполняющимися программами (управление памятью);.
- выделение приложениям необходимых внешних устройств и организация взаимодействия приложений с устройствами с обязательным контролем со стороны системы (управление устройствами);.
- распределение внешней памяти и организация хранения информации с помощью файлов (управление файлами).
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.