Архитектура ЭВМ

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

Показывать лекцию целиком

Операционные системы семейства мэйнфреймов IBM; Unix - переносимая ОС; Linux - свободно распространяемая (Open Source) ОС; DOS и Windows - ОС для компьютеров семейства IBM PC; Android - самая популярная мобильная ОС.

Современные компьютеры активно развиваются, соответственно, меняются и операционные системы, так как они непосредственно связаны с аппаратурой и должны её эффективно обсуживать. При этом как компьютерные архитектуры образуют семейства, так и соответствующие им операционные системы также образуют семейства. Например, ОС Windows предназначаются для компьютеров семейства Intel х86.

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

В этой лекции мы рассмотрим ряд известных семейств операционных систем, частью из прежних времён и ставших уже историей, частью современных и активно развивающихся:

  • семейство операционных систем для мэнфреймов компании IBM;
  • семейство переносимых операционных систем Unix;
  • семейство свободно-распространяемых операционных систем Linux.
  • семейство операционных систем DOS для компьютеров IBM PC;
  • семейство операционных систем Windows для процессоров семейства Intel x86;
  • семейство мобильных операционных систем Android.
  • ОПЕРАЦИОННЫЕ СИСТЕМЫ СЕМЕЙСТВА МЭЙНФРЕЙМОВ IBM

    Мэйнфрейм (Mainframe) - это высокопроизводительный сервер, ориентированный на обработку большого количества данных и запросов, то есть для удовлетворения потребностей крупного бизнеса. Мэнфрейм не следует путать с суперкомпьютером, который ориентирован на высокопроизводительные пакетные вычисления (инженерные и научные задачи). История мэйнфреймов началась в конце 60-х годов с выпуска компанией IBM известного компьютера System/360. Мэйнфреймы выпускались и другими производителями, например, Burroughs и General Electric. Следует отметить, что мэйнфреймы используются и выпускаются до сих пор.

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

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

    Интересно отметить, что программы, созданные для мэнфреймов IBM, пережили эти компьютеры и продолжают успешно функционировать до сих пор во многих крупных учреждениях США и Европы. За годы эксплуатации и сопровождения эти программы "вросли" в бизнес-процессы соответствующих учреждений, и последние крайне неохотно соглашаются на их замену новым ПО. Фактически, на рынке разработки ПО победила следующая модель: операционные системы и прочее программное окружение, в рамках которых работают эти программы, эмулируются для возможности исполнения на современных серверах. Противопоставить этому подходу можно движение по автоматизированному реинжинирингу устаревшего ПО (то есть переписывание старых программ на новых языках программирования), которое активно развивалось в конце 90-х - начале 2000-х годов, но в итоге так и не смогло завоевать рынок.

    ПЕРЕНОСИМЫЕ ОС СЕМЕЙСТВА UNIX

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

  • Иерархическая файловая система с деревом каталогов. У прочих ОС той эпохи данные на жестком диске хранились в формате, напоминавших таблицы баз данных, что обеспечивало высокую производительность доступа к данным, но не обладало гибкостью - такой формат был фиксирован для отдельной ОС, а файлы, которыми оперировал Unix, имели разные форматы.
  • Наличие набора удобных простых системных программ для реализации базовых функций, часто используемых в прикладных программах: сортировки данных, поиска и преобразования текста, сжатия данных и т.д.
  • Удобная интерактивная командная оболочка, которая позволяла комбинировать программы в цепочки, например, отправляя вывод одной программы на вход другой или замещая ввод с консоли вводом из файла и т.д. Такая командная оболочка позволяла создавать ансамбли из взаимодействующих программ, разработанных на разных языках, не вдаваясь в детали их реализации. Аналогичные возможности хоть и предоставлялись ранее (например, в OS/360), но в Unix удалось их реализовать гораздо удобнее для конечного пользователя.
  • Остановимся детально на последнем свойстве - переносимости. Как и другие ОС того времени, Unix была реализована на языке ассемблера. Но к середине 1970-х она была переписана на языке C. Использование языка C позволило быстро создавать новые версии Unix для различных компьютерных архитектур. При очередном переносе требовалось реализовать новый С-компилятор, что не является сложной задачей ввиду простоты данного языка. Также требовалось переписать небольшую часть специализированного кода Unix, который отвечал за работу с конкретным семейством процессоров. Компания AT&T открыла исходные коды Unix для научно-исследовательских учреждений, университетов и государственных учреждений. В результате было создано много версий этой Unix для разных компьютерных архитектур.

    Операционная система Unix имела следующую структуру:

  • ядро, которое реализовывало основные функции и включало в себя минимальный базовый набор драйверов аппаратуры;
  • набор утилит - программ, которые выполняли сервисные функции, например, поиск файлов и сжатие данных;
  • набор программных библиотек и компиляторов, например, компилятор языка C и его стандартные библиотеки.
  • В заключении отметим, что именно переносимость (использование языка С для реализации и открытость исходных кодов) способствовала широкому распространению Unix. Однако несмотря на то, что компания AT&T обеспечила открытые лицензии для университетов и госучреждений, ОС Unix не была свободно распространяемой, и нюансы её использования становились предметом судебных разбирательств.

    СЕМЕЙСТВО СВОБОДНО-РАСПРОСТРАНЯЕМЫХ ОПЕРАЦИОННЫХ СИСТЕМ LINUX

    В 1980-х годах Ричардом Столлманом был запущен проект GNU для создания свободной Unix-подобной ОС. В результате были реализованы стандартные для ОС Unix утилиты, а также создано семейство компиляторов GCC (GNU Compiler Collection). Разрабатываемое в рамках этого проекта ядро ОС GNU Hurd оказалось менее удачным, чем реализованное независимо Линусом Торвальдсом ядро Linux. В итоге популярность приобрёл "тандем", состоящий из ядра Linux и набора утилит GNU, за которым закрепилось именно название ядра - Linux.

    Первая версия Linux появилась в 1991 году. Она была совместимой с Unix (программы для Unix работают под её управлением) и распространяется под свободной лицензией GPL. Почти за 30 лет своего существования ОС Linux стала очень популярной для серверов, а также для встраиваемого и сетевого оборудования. Перечислим причины такой популярности.

  • Возможность бесплатно использовать ОС Linux - лицензия GPL, под которой распространяется Linux, предоставляет существенно больше свободы, чем лицензия Unix.
  • Возможность самостоятельно комплектовать ОС, то есть создавать различные дистрибутивы, освобождённые от функциональности, не нужной в данном контексте; кроме того, Linux можно дорабатывать для собственных нужд, что также предусмотрено его архитектурой.
  • Linux имеет скромные требования к оборудованию - производительности процессора, объёму оперативной памяти и жестких дисков.
  • Для серверов использование ОС, обладающей такими свойствами, является существенным преимуществом. Ведь обычно серверу не нужны ни мощный драйвер графического адаптера, ни "настольные" программы наподобие веб-браузера. Зато ему могут понадобиться специфические системы хранения данных и, соответственно, особые драйвера для них. Последние, в случае Linux, можно встроить прямо в ядро ОС, что повышает производительность. Возможность создавать свои дистрибутивы помогает оптимизировать компьютеры под управлением Linux для различных задач - научных вычислений, специфичных веб-серверов, СУБД и т.д. Скромные системные требования позволяют эффективно размещать Linux на виртуальных машинах, а современный серверный компьютер может одновременно управлять несколькими виртуальными машинами.

    Для сетевого и встраиваемого оборудования ситуация в целом такая же, как и для серверов, но ещё более выраженная. Рассмотрим простой сетевой роутер - "коробочку над дверью", к которой подключено несколько Ethernet-кабелей и которая не соединена ни с монитором, ни с клавиатурой, ни с мышью. Всё, что требуется от роутера - пересылать данные по сети и обеспечить возможность дистанционной настройки. Установленная на него ОС Linux, в которой оставлено лишь необходимое, может занимать на роутере всего несколько Mb. В итоге роутер можно сделать недорогим, и обеспечить оптимальное использование его скромных ресурсов "по прямому назначению".

    Linux распространяется под лицензией GPL (GNU Public License). Скажем несколько слов об этой лицензии. GPL - это специальный вид лицензий, предназначенный для открытого ПО (Open Source Software), в рамках которой авторы могут свободно использовать исходный код, имеющий эту лицензию, но должны также открыть и свой собственный код. Помимо ОС Linux, под лицензией GPL распространяются многие популярные программные продукты, такие как графический редактор GIMP, СУБД MySQL, набор компиляторов GCC (GNU Compiler Collection), система управления версиями Git, аудиоредактор Audacity. Все перечисленные продукты могут работать под управлением различных ОС: Windows, Linux, других Unix-подобных.

    Linux является бесплатным и основывается на Open Source идеологии, закреплённой лицензией GPL. Linux развивается большим сообществом разработчиков. Примечательно, что заметную часть работы по этим открытым проектам сейчас берут на себя крупные IT-компании, такие как Microsoft и IBM, поскольку многие предлагаемые ими коммерческие решения также основываются на Linux и проекте GNU.

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

    Весомый вклад в качество Linux внесли российские учёные - сотрудники Института системного программирования им В.П. Иванникова РАН (ИСП РАН, г. Москва). При поддержке консорциума The Linux Foundation и Министерства науки и высшего образования РФ на базе ИСП РАН в 2009 году был создан центр Linux Driver Verification, в рамках которого в ядре и драйверах ОС Linux были обнаружены и исправлены сотни ошибок.

    СЕМЕЙСТВО ОС DOS

    В начале 80-х годов появились персональные компьютеры семейства BM PC. Для них была создана операционная система DOS (Disk Operating System) - дисковая операционная система, основной задачей которой была поддержка работы с дисками - гибкими дисками (дискетами) и жесткими дисками (винчестерами). Эти диски пришли на смену перфокартам, магнитным лентам и прочим прежним средствам хранения и ввода данных. Программная работа с дисками, будучи трудоемкой и в то же время типовой задачей, была вынесена на уровень ОС. Помимо этого, операционные системы семейства DOS предоставляли прикладным программам сервисы по выделению памяти, а также информацию о системных событиях. Примерами таких событий могли быть вставка дискеты в дисковод, нажатие пользователем кнопки мыши и т.д.

    Операционная система DOS была очень простой: она не поддерживала многозадачности, не разграничивала доступ пользователей к данным, не препятствовала доступу программ к системным данным. Но вместе с тем она была не дорой в разработке и поддержке, не требовательна к аппаратным и системным ресурсам, например, могла работать на компьютерах с оперативной памятью меньше, чем 1 Mb. Таким образом, эта операционная система хорошо подходила для первых IBM PC, которые и сами позиционировались как недорогие персональные компьютеры. Первые версии DOS были приобретены, а затем совместно разрабатывались, компаниями IBM и Microsoft. В дальнейшем разработку этих ОС продолжила компания Microsoft, выпустив в период c 1981 по 1995 годы 7 версий MS DOS.

    СЕМЕЙСТВО ОС WINDOWS

    Рассмотрим теперь семейство операционных систем Windows. По мере роста популярности IBM PC и других аналогичных компьютеров, актуальной стала задача создания в ОС многофункционального и унифицированного пользовательского интерфейса, а также интерфейса для прикладных программ.

    В 1985 году компания Microsoft выпустила первую версию Windows - графическую оболочку для IBM PC, запускаемую над MS DOS. В первой половине 1980-х годов графический интерфейс пользователя был прогрессивной инновацией. В начале 1980-х годов у компьютеров Apple уже были дружественные пользователю графические оболочки, позаимствовавшие метафору рабочего стола у разработок Xerox Research, а Microsoft заняла эту нишу на привычном для себя рынке ПО для IBM PC.

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

    Несмотря на активное развитие, Windows довольно долго оставалась лишь оболочкой над операционной системой DOS. Но в 1993 году компания Microsoft выпустила Windows NT, которая была уже полноценной операционной системой и не требовала для своей работы DOS. Windows NT поддерживала многозадачность, разграничение доступа пользователей, изоляцию процессов, файловую систему с возможностью разграничения доступа пользователей к данным и другие возможности полноценных операционных систем. Современная операционная система Windows 10 и версии Windows, предназначенные для работы на серверах, являются наследниками Windows NT. В настоящее время операционные системы семейства Windows являются самыми популярными ОС для настольных компьютеров: они установлены более чем на 75% настольных компьютерах во всём мире.

    СЕМЕЙСТВО МОБИЛЬНЫХ ОС ANDROID

    Требования к операционным системам для мобильных устройств существенно отличаются от "настольных" и серверных.

  • Мобильным устройствам требуется урезанный функционал классических ОС: им не нужна поддержка множества пользователей, не требуются классические системные утилиты наподобие Unix-утилит, не нужна поддержка многочисленных подключенных внешних устройств.
  • Мобильные ОС должны быть оптимизированы для выполнения специфических коммуникационных задач, в частности, с учётом неустойчивой сотовой связи.
  • Им требуется лишь упрощённая реализация офисных приложений.
  • Мобильные ОС должны эффективно поддерживать развлекательные приложения - игры, аудио/видео, фотокамера, шопинг.
  • Требуется оптимизация энергопотребления для работы в автономном режиме; при этом современные мобильные устройства зачастую имеют процессоры, лишь незначительно уступающие по мощности настольным.
  • Первая версия ОС семейства Android была создана усилиями компаний Google, Sony, DELL, Motorola и некоторыми другими во второй половине 2000-х годов на основе Linux. Первые мобильные устройства с Android поступили в продажу в 2008 году. Последняя на момент создания данного курса лекций версия Android 12 вышла осенью 2021 года.

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

  • Изоляция приложений друг от друга: важные данные приложения хранят в отдельных хранилищах, недоступных другим приложениям.
  • Шифрование локальных данных пользователя.
  • Централизованный сетевой магазин приложений.
  • Специальная поддержка фотокамеры для обеспечения достаточно высокого качества фото- и видеосъемки в отсутствие полноценного объектива и большой светочувствительной матрицы.
  • Специализированный звуковой драйвер, который обрабатывает отдельно сигналы с нескольких микрофонов для эффективного подавления окружающего шума при разговоре.
  • Изначально приложения для ОС Android разрабатывались преимущественно на языке Java (с возможным подключения библиотек на C/C++), а основным инструментом для разработки была среда Eclipse. C 2014 г. Google предлагает использовать для разработки среду Android Studio, созданную на базе известной среды разработки IntelliJ Idea компании JetBrains. В 2017 году основным языком разработки для Android-приложений был объявлен язык Kotlin, также разработанный компанией JetBrains. Данная компания была основана в Санкт-Петербурге, и до сих пор Петербургское отделение остаётся базовым отделением компании JetBrains.

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

    Вопросы

  • Перечислите особенности ОС семейства мэйнфреймов IBM.
  • Перечислите особенности ОС семейства Unix.
  • Какие особенности ОС Unix послужили причиной её широкого распространения?
  • Опишите структуру Unix.
  • Назовите предпосылки появления ОС Linux.
  • Расскажите про лицензию GPL.
  • Для каких задач используется операционная система Linux?
  • Расскажите историю появления и трансформации операционной системы DOS.
  • Перечислите особенности ОС семейства DOS.
  • Для каких архитектур создавались ОС семейства DOS?
  • Назовите нововведения, предложенный ОС Windows.
  • Какая версия OC Windows перестала быть оболочкой над DOS?
  • Расскажите об особых требованиях к ОС для мобильных устройств.
  • Перечислите функции ОС Android.
  • Какая платформа (язык и среда разработки) является основной для программирования под Android исторически? А в настоящее время?
  • Какие, кроме Android, Вы можете назвать другие мобильные ОС?
  • Литература

  • Таненбаум Э., Бос Х. Современные операционные системы. 4-е изд. СПб.: Питер, 2015. 1120 с.
  • Цикритзис Д., Бернстайн Ф. Операционные системы [пер. с англ.] М.: Издательство "Мир", 1977. 336 с.
  • Silberschatz A., Gagne G., Galvin P. B. Operating System Concepts, 10th edition. Wiley, 2018. 951 p.
  • Stallings W. Operating systems: internals and design principles. Pearson Education Limited, 2018.
  • Walden D., Van Vleck T. Compatible Time-Sharing System (1961-1973): Fiftieth Anniversary Commemorative Overview. IEEE Computer Society, 2011.
  • Брукс Ф., Чапель Х. Мифический человеко-месяц или как создаются программные системы [пер. с англ.] СПб.: Символ-Плюс, 2010. 304 с.
  • Робачевский А. М., Немнюгин С. А., Стесик О. Л. Операционная система UNIX, 2 изд. - БХВ-Петербург, 2010. 656 с.
  • Вернуться к учебному плану