Введение в администрирование UNIX/Введение в Юникс: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 67:
{{-}}
[[Файл:Small-lect1-06.png|left|300px|Презентация 1-06: виртуальная машина]]
'''==== Операционная система как виртуальная машина''' ====
 
Чтобы успешно решать свои задачи, ныне пользователь или программист может обойтись без досконального знания аппаратного устройства компьютера и может даже не знать системы команд процессора (для программистов существует множество библитек и высокоуровневых фукций).
Строка 79:
В результате реальная машина, способная выполнять элементарные действия, определенные её набором команд, превращается в виртуальную машину, выполняющую набор более мощных функций. Виртуальная машина также управляется командами, но более высокого уровня: создание и удаление файлов, установка сетевых соединений и т.п.. В свою очередь, эти команды также могут быть объединены в виртуальную машину с более высоким уровнем абстракции, например графический пользовательский интерфейс, который оперирует объектами.{{-}}
[[Файл:Small-lect1-07.png|right|300px|Презентация 1-07: управлнение ресурсами]]
'''==== Операционная система как менеджер ресурсов''' ====
 
Операционная система не только предоставляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является механизмом, распределяющим ресурсы компьютера.
Строка 104:
 
[[Файл:Small-lect1-09.png|right|300px|Презентация 1-09: монолитное ядро]]
'''==== Монолитная операционная система''' ====
 
Большинство операционных систем использует монолитное ядро, которое компонуется как одна программа, работающая в привилегированном режиме и использующая быстрые переходы с одной процедуры на другую, не требующие переключения из привилегированного режима в пользовательский и наоборот (хоть этот процесс и происходит с аппаратной поддержкой, он занимает значительное время). Такое ядро делится на основные компоненты и модули, реализующие дополнительную функциональность – например, работу со специфическими внешними устройствами и файловыми системами (см. Рисунок 1.5, «Структура монолитного ядра операционной системы»). Переход из пользовательского режима в режим ядра осуществляется через системные вызовы – интерфейс ядра операционноый системы.
Строка 113:
 
[[Файл:Small-lect1-10.png|left|300px|Презентация 1-10: микроядро]]
'''==== Микроядерная операционная система''' ====
 
Альтернативой является построение операционной системы на базе микроядра, работающего также в привилегированном режиме и выполняющего только минимум функций по управлению аппаратурой. Тогда как функции операционной системы более высокого уровня выполняют специализированные компоненты – серверы, работающие в пользовательском режиме. Управление и обмен данными при этом осуществляется через передачу сообщений, доставка которых является одной из основных функций микроядра (см. Рисунок 1.6, «Структура операционной системы с микроядром»).
Строка 129:
Рассмотрим основные этапы развития операционных систем от момента их появления до текущего состояния.
 
'''==== Что было до операционных систем''' ====
 
С середины 50-х годов началось бурное развитие вычислительной техники, связанное с появлением полупроводниковых элементов. Вместе с этим заметный прогресс наблюдался в автоматизации программирования и организации вычислений, в эти годы появились первые алгоритмические языки (Алгол, Фортран, Кобол). Для организации эффективного совместного использования трансляторов, библиотечных программ и загрузчиков в штат многих вычислительных комплексов были введены операторы – но как быстро они не работали, они не могли состязаться в производительности с работой компьютера. Для решения этой проблемы были разработаны системы пакетной обработки, которые автоматизировали последовательность действий оператора. Оператор составлял пакет заданий, которые в дальнейшем без его участия запускались на выполнение специальной программой – монитором.
 
'''==== Операционные системы для мэйнфреймов''' ====
 
В 1965–1975 годах появилось следующее поколение компьютеров: стала возможна реализация сложных компьютерных архитектур (например, IBM/360) и практически всех основных механизмов, присущих современным операционным системам: многозадачность, поддержка многотерминального многопользовательского режима работы, виртуальная память, файловые системы, разганичение доступа и сетевая работа. Но такие системы всё ещё были очень редки и чрезвычайно дороги.
Строка 139:
Одним из главных достижений стал переход к мультипрограммированию – способ организации вычислительного процесса, при котором в памяти копьютера одновременно находится несколько программ, попеременно выполняющихся на одном процессоре. Для того, чтобы у пользователя оставалось ощущение непосредственного взаимодействия с компьютером, был разработан такой вариант мультипрограммирования, как системы разделения времени. Каждый пользователь работает за своим терминалом (подробнее терминалы рассматриваются в разделе «Терминал»), тогда как все процессы работают псевдопараллельно (как было показано выше, в разделе «Обзор компьютерных систем»).
 
'''==== Появление операционной системы UNIX''' ====
 
В середине 1970-х годов наряду с мэйнфреймами получили широкое распространение мини-компьютеры (слово «мини-» сейчас может показаться смешным, такие компьютеры занимали объём в несколько шкафов), такие как PDP-11. Архитектура таких компьютеров была заметно упрощена по сравнению с мэйнфреймами (что значительно снижало стоимость с миллионов до сотен тысяч долларов), что сказалось на операционных системах для этих компьютеров – они были лишены части функций, например многопользовательского режима работы.
Строка 147:
Многие появившиеся впоследствии операционные системы позаимствовали некоторые ключевые идеи UNIX: переносимость на основе языка C, иерархическую файловую систему, интерфейс командной строки.
 
'''==== Развитие операционных систем в глобальных сетях''' ====
 
В начале 1980-х годов в рамках экспериментальной сети ARPANET впервые появился рабочий вариант стека протоколов TCP/IP. Переход на TCP/IP был ускорен ещё и тем, что его первая реализация была создана в рамках BSD UNIX (Berkley Software Distribution – академической версии UNIX, созданной в университете Беркли). Новая глобальная сеть, получившая название Интернет, стала средой для развития информационных технологий, создания всевозможных сообществ разработчиков и развития открытых систем.
Строка 153:
В этот период появляется множество коммерческих версий операционной системы UNIX: SunOS (в дальнейшем, Solaris), HP-UX, Irix, AIX и многие другие. Разнообразие версий породило проблему их несовместимости, которую периодически пытались решать различные организации. В результате были приняты стандарты POSIX (Portable Operation System Interface based on uniX – интерфейс для переносимых операционных систем, основанных на UNIX), включающие формальное описание программного интерфейса операционной системы, описание командной оболочки, безопасности и т.п..
 
'''==== Операционные системы для персональных компьютеров''' ====
 
Ещё одно знаменательное событие начала 1980-х годов – появление персональных компьютеров. С точки зрения архитектуры они мало отличались от мини-компьютеров и рабочих станций, но стоимость их была значительно ниже. Это позволило персональным компьютерам распространиться повсеместно, и это в значительной степени изменило современные информационные технологии.
Строка 161:
В первую очередь благодаря низкой стоимости аппаратного и программного обеспечения, персональные компьютеры начали вытеснять прежде распространенные рабочие станции и мэйнфреймы. На домашних и офисных компьютерах повсеместно распространились операционные системы компании Microsoft, тогда как нишу серверов заняли наследники UNIX: коммерческие версии UNIX и открытые, свободно распространяемые Linux и операционные системы из семейства BSD, созданные и поддерживаемыми энтузиастами по всему миру.
 
'''==== Операционные системы для встраиваемых систем''' ====
 
В начале 21-го века широкое распространение получили встраиваемые и мобильные устройства. Благодаря развитию вычислительных систем, такие устройства, как мобильные телефоны или домашние бытовые приборы, обрели возможности, сравнимые с персональными компьютерами. В настоящее время в этой области существует множество операционных систем, среди которых всё большую роль начинают играть открытые операционные системы, наследующие архитектуру и принципы работы UNIX.
Строка 170:
Операционные системы являются неотъемлимой частью информационно-вычислительных комплексов, которые выполняют определённые функции и могут быть по этому признаку разделены на некоторые классы.
 
;==== Системы реального времени ====
:Основной особенностью таких систем является сторого регламентированное время отклика на внешние события.
:Другим важным параметром является одновременная обработка – даже если одновременно происходит несколько событий, реакция системы на них не должна запаздывать. Компьютеры для управления самолетами, ядерными реакторами и подобными сложными системами работают под управлением часто специализированных операционных систем реального времени.
 
Строка 189 ⟶ 190 :
:Операционные системы мягкого времени могут использоваться в мобильных и коммуникационных системах – там, где цена опаздания не так велика. В настоящее время многие многозадачные операционные системы разделения времени модифицируются для того, чтобы соответствовать требованием мягкого реального времени. Среди примеров можно выделить варианты Windows NT и специфические версии ядра Linux.
 
==== Встраиваемые системы ====
;Встраиваемые системы:Такие системы работают на специфическом аппаратном обеспечении (автомобили, микроволновые печи, роботы) и также обладают некоторыми требованиями к времени отклика системы. Как правило, в таких операционных системах применяются специфичные алгоритмы, минимизирующие потребляемые ресурсы. В настоящее время широкое распространение имеют операционные системы Windows Embedded фирмы Microsoft и различные версии операционной системы Linux.
 
==== Операционные системы для супер-компьютеров ====
;Операционные системы для супер-компьютеров:Для решения очень сложных и объёмных вычислительных задач создается специализированные компьютеры, содержащие сотни и тысячи процессоров. Для управления такими системами применяются специальные операционные системы, в которых особенно важны вопросы производительности и скорости обмена между элементами системы. В настоящее время самыми распространёнными среди сверх-производительных систем являются модификации операционной системы Linux.
 
==== Операционные системы для серверов ====
;Операционные системы для серверов:С момента расцвета сети Интернет нишу серверов (специализированных систем, предоставляющих по сети какой-то сервис клиентским системам) занимают универсальные многопользовательские многозадачные операционные системы. Для таких систем имеют большое значение имеют стабильность работы, безопасность и производительность, меньшее – интерфейс пользователя.
 
:Примерами таких систем могут служить: банковские системы, веб-серверы и серверы баз данных, файловые серверы масштаба предприятия, многопользовательские терминальные серверы и т.п. Традиционно этот класс систем обслуживается коммерческими операционными системами – различными версиями UNIX, операционными системами от компаний IBM, Nowell, а затем и Microsoft. Сейчас все большую популярность в этом классе систем завоёвывают открытые и свободные операционные системы, базирующиеся на UNIX.
 
;==== Операционные системы для домашних и офисных компьютеров ====
:Современные персональные компьютеры обладают высокой производительностью и богатыми мультимедийными возможностями. Для операционных систем этого класса важны удобный пользовательский интерфейс и поддержка широкого набора устройств для персональных компьютеров. Самыми распространёнными операционными системами в этом классе являются продукты компании Micrososft, также на персональных компьютерах Apple используется операционная система MacOS (с версии 10 она также основывается на UNIX).
 
==== Исследовательские операционные системы ====
;Исследовательские операционные системы:Многие алгоритмы и подходы в построении операционных систем не пошли дальше исследовательских лабораторий. Например, операционные системы, основанные на микроядре, в чистом виде не используются до сих пор из-за огромных затрат на пересылку сообщений. Одной из самых известных микроядерных операционных систем является Mach, на которой основывается целый ряд операционных систем, в том числе GNU Hurd, реализующая интерфейс UNIX.
 
=== Резюме ===