1.1. ОС как виртуальная машина
1.2. Функциональные компоненты операционной системы автономного компьютера
1.3. Интерфейс прикладного программирования
1.4 Сетевые операционные системы
IIКлассификация операционных систем по семействам 2.1. Операционные системы семейства OS/2 2.2. Операционные системы семейства UNIX 2.3. Операционные системы семейства Linux 2.4. Операционные системы семейства WindowsЗаключениеСписок используемой литературы
Введение
ОС — это комплекс взаимосвязанных программ, предназначенный для повышения эффективности аппаратуры компьютера путем рационального управления его ресурсами, а также для обеспечения удобств пользователю путем предоставления ему расширенной виртуальной машины. Цели задачи Мы поставили перед собой задачу изучить историю создания и развитие операционных систем. Подробнее изучить функций и разновидности операционных систем.
IФункций ОС
1.1. ОС как виртуальная машина Операционная система компьютера представляет собой комплекс взаимосвязанных программ, который действует как интерфейс между приложениями и пользователями с одной стороны, и аппаратурой компьютера с другой стороны. В соответствии с этим определением ОС выполняет две группы функций:
предоставление пользователю или программисту вместо реальной аппаратуры компьютера расширенной виртуальной машины, с которой удобней работать и которую легче программировать;
повышение эффективности использования компьютера путем рационального управления его ресурсами в соответствии с некоторым критерием.
Для того чтобы успешно решать свои задачи, современный пользователь или даже прикладной программист может обойтись без досконального знания аппаратного устройства компьютера. Ему не обязательно быть в курсе того, как функционируют различные электронные блоки и электромеханические узлы компьютера. Более того, очень часто пользователь может не знать даже системы команд процессора. Пользователь-программист привык иметь дело с мощными высокоуровневыми функциями, которые ему предоставляет операционная система.
Так, например, при работе с диском программисту, пишущему приложение для работы под управлением ОС, или конечному пользователю ОС достаточно представлять его в виде некоторого набора файлов, каждый из которых имеет имя. Последовательность действий при работе с файлом заключается в его открытии, выполнении одной или нескольких операций чтения или записи, а затем в закрытии файла. Такие частности, как используемая при записи частотная модуляция или текущее состояние двигателя механизма перемещения магнитных головок чтения/записи, не должны волновать программиста. Именно операционная система скрывает от программиста большую часть особенностей аппаратуры и предоставляет возможность простой и удобной работы с требуемыми файлами.
Если бы программист работал непосредственно с аппаратурой компьютера, без участия ОС, то для организации чтения блока данных с диска программисту пришлось бы использовать более десятка команд с указанием множества параметров: номера блока на диске, номера сектора на дорожке и т. п. А после завершения операции обмена с диском он должен был бы предусмотреть в своей программе анализ результата выполненной операции. Учитывая, что контроллер диска способен распознавать более двадцати различных вариантов завершения операции, можно считать программирование обмена с диском на уровне аппаратуры не самой тривиальной задачей. Не менее обременительной выглядит и работа пользователя, если бы ему для чтения файла с терминала потребовалось задавать числовые адреса дорожек и секторов.
Операционная система избавляет программистов не только от необходимости напрямую работать с аппаратурой дискового накопителя, предоставляя им простой файловый интерфейс, но и берет на себя все другие рутинные операции, связанные с управлением другими аппаратными устройствами компьютера: физической памятью, таймерами, принтерами и т. д.
В результате реальная машина, способная выполнять только небольшой набор элементарных действий, определяемых ее системой команд, превращается в виртуальную машину, выполняющую широкий набор гораздо более мощных функций. Виртуальная машина тоже управляется командами, но это уже команды другого, более высокого уровня: удалить файл с определенным именем, запустить на выполнение некоторую прикладную программу, повысить приоритет задачи, вывести текст из файла на печать. Таким образом, назначение ОС состоит в предоставлении пользователю/программисту некоторой расширенной виртуальной машины, которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, составляющей реальный компьютер или реальную сеть.
Операционная система не только предоставляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является механизмом, распределяющим ресурсы компьютера.
К числу основных ресурсов современных вычислительных систем могут быть отнесены такие ресурсы, как процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессами. Процесс (задача) представляет собой базовое понятие большинства современных ОС и часто кратко определяется как программа в стадии выполнения. Программа — это статический объект, представляющий собой файл с кодами и данными. Процесс — это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает «запустить программу на выполнение», то есть создать новую единицу вычислительной работы. Например, ОС может создать процесс в ответ на команду пользователя run prgl. exe, где prgl. exe — это имя файла, в котором хранится код программы.
Управление ресурсами вычислительной системы с целью наиболее эффективного их использования является назначением операционной системы. Например, мультипрограммная операционная система организует одновременное выполнение сразу нескольких процессов на одном компьютере, поочередно переключая процессор с одного процесса на другой, исключая простои процессора, вызываемые обращениями процессов к вводу-выводу. ОС также отслеживает и разрешает конфликты, возникающие при обращении нескольких процессов к одному и тому же устройству ввода-вывода или к одним и тем же данным. Критерий эффективности, в соответствии с которым ОС организует управление ресурсами компьютера, может быть различным. Например, в одних системах важен такой критерий, как пропускная способность вычислительной системы, в других — время ее реакции. Соответственно выбранному критерию эффективности операционные системы по-разному организуют вычислительный процесс.
Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:
планирование ресурса — то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;
удовлетворение запросов на ресурсы;
отслеживание состояния и учет использования ресурса — то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;
разрешение конфликтов между процессами.
Для решения этих общих задач управления ресурсами разные ОС используют различные алгоритмы, особенности которых в конечном счете и определяют облик ОС в целом, включая характеристики производительности, область применения и даже пользовательский интерфейс. Например, применяемый алгоритм управления процессором в значительной степени определяет, может ли ОС использоваться как система разделения времени, система пакетной обработки или система реального времени.
Задача организации эффективного совместного использования ресурсов несколькими процессами является весьма сложной, и сложность эта порождается в основном случайным характером возникновения запросов на потребление ресурсов. В мультипрограммной системе образуются очереди заявок от одновременно выполняемых программ к разделяемым ресурсам компьютера: процессору, странице памяти, к принтеру, к диску. Операционная система организует обслуживание этих очередей по разным алгоритмам: в порядке поступления, на основе приоритетов, кругового обслуживания и т. д. Анализ и определение оптимальных дисциплин обслуживания заявок является предметом специальной области прикладной математики — теории массового обслуживания. Эта теория иногда используется для оценки эффективности тех или иных алгоритмов управления очередями в операционных системах. Очень часто в ОС реализуются и эмпирические алгоритмы обслуживания очередей, прошедшие проверку практикой.
Таким образом, управление ресурсами составляет важную часть функций любой операционной системы, в особенности мультипрограммной. В отличие от функций расширенной машины большинство функций управления ресурсами выполняются операционной системой автоматически и прикладному программисту недоступны.
1.2 Функциональные компоненты операционной системы автономного компьютера Функции операционной системы автономного компьютера обычно группируются либо в соответствии с типами локальных ресурсов, которыми управляет ОС, либо в соответствии со специфическими задачами, применимыми ко всем ресурсам. Иногда такие группы функций называют подсистемами. Наиболее важными подсистемами управления ресурсами являются подсистемы управления процессами, памятью, файлами и внешними устройствами, а подсистемами, общими для всех ресурсов, являются подсистемы пользовательского интерфейса, защиты данных и администрирования.
Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами.
Для каждого вновь создаваемого процесса ОС генерирует системные информационные структуры, которые содержат данные о потребностях процесса в ресурсах вычислительной системы, а также о фактически выделенных ему ресурсах. Таким образом, процесс можно также определить как некоторую заявку на потребление системных ресурсов.
Чтобы процесс мог быть выполнен, операционная система должна назначить ему область оперативной памяти, в которой будут размещены коды и данные процесса, а также предоставить ему необходимое количество процессорного времени. Кроме того, процессу может понадобиться доступ к таким ресурсам, как файлы и устройства ввода-вывода.
В информационные структуры процесса часто включаются вспомогательные данные, характеризующие историю пребывания процесса в системе (например, какую долю времени процесс потратил на операции ввода-вывода, а какую на вычисления), его текущее состояние (активное или заблокированное), степень привилегированности процесса (значение приоритета). Данные такого рода могут учитываться операционной системой при принятии решения о предоставлении ресурсов процессу.
В мультипрограммной операционной системе одновременно может существовать несколько процессов. Часть процессов порождается по инициативе пользователей и их приложений, такие процессы обычно называют пользовательскими. Другие процессы, называемые системными, инициализируются самой операционной системой для выполнения своих функций.
Поскольку процессы часто одновременно претендуют на одни и те же ресурсы, то в обязанности ОС входит поддержание очередей заявок процессов на ресурсы, например очереди к процессору, к принтеру, к последовательному порту.
Важной задачей операционной системы является защита ресурсов, выделенных данному процессу, от остальных процессов. Одним из наиболее тщательно защищаемых ресурсов процесса являются области оперативной памяти, в которой хранятся коды и данные процесса. Совокупность всех областей оперативной памяти, выделенных операционной системой процессу, называется его адресным пространством. Говорят, что каждый процесс работает в своем адресном пространстве, имея в виду защиту адресных пространств, осуществляемую ОС. Защищаются и другие типы ресурсов, такие как файлы, внешние устройства и т. д. Операционная система может не только защищать ресурсы, выделенные одному процессу, но и организовывать их совместное использование, например разрешать доступ к некоторой области памяти нескольким процессам.
На протяжении периода существования процесса его выполнение может быть многократно прервано и продолжено. Для того чтобы возобновить выполнение процесса, необходимо восстановить состояние его операционной среды. Состояние операционной среды идентифицируется состоянием регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых данным процессом системных вызовов и т. д. Эта информация называется контекстом прогресса. Говорят, что при смене процесса происходит переключение контекстов.
Операционная система берет на себя также функции синхронизации процессов, позволяющие процессу приостанавливать свое выполнение до наступления какого-либо события в системе, например завершения операции ввода-вывода, осуществляемой по его запросу операционной системой.
В операционной системе нет однозначного соответствия между процессами и программами. Один и тот же программный файл может породить несколько параллельно выполняемых процессов, а процесс может в ходе своего выполнения сменить программный файл и начать выполнять другую программу.
Для реализации сложных программных комплексов полезно бывает организовать их работу в виде нескольких параллельных процессов, которые периодически взаимодействуют друг с другом и обмениваются некоторыми данными. Так как операционная система защищает ресурсы процессов и не позволяет одному процессу писать или читать из памяти другого процесса, то для оперативного взаимодействия процессов ОС должна предоставлять особые средства, которые называют средствами межпроцессного взаимодействия.
Таким образом, подсистема управления процессами планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает синхронизацию процессов, а также обеспечивает взаимодействие между процессами Память является для процесса таким же важным ресурсом, как и процессор, так как процесс может выполняться процессором только в том случае, если его коды и данные (не обязательно все) находятся в оперативной памяти.
Управление памятью включает распределение имеющейся физической памяти между всеми существующими в системе в данный момент процессами, загрузку кодов и данных процессов в отведенные им области памяти, настройку адресно-зависимых частей кодов процесса на физические адреса выделенной области, а также защиту областей памяти каждого процесса.
Существует большое разнообразие алгоритмов распределения памяти. Они могут отличаться, например, количеством выделяемых процессу областей памяти (в одних случаях память выделяется процессу в виде одной непрерывной области, а в других — в виде нескольких несмежных областей), степенью свободы границы областей (она может быть жестко зафиксирована на все время существования процесса или же динамически перемещаться при выделении процессу дополнительных объемов памяти). В некоторых системах распределение памяти выполняется страницами фиксированного размера, а в других — сегментами переменной длины.
Одним из наиболее популярных способов управления памятью в современных операционных системах является так называемая виртуальная память. Наличие в ОС механизма виртуальной памяти позволяет программисту писать программу так, как будто в его распоряжении имеется однородная оперативная память большого объема, часто существенно превышающего объем имеющейся физической памяти. В действительности все данные, используемые программой, хранятся на диске и при необходимости частями (сегментами или страницами) отображаются в физическую память. При перемещении кодов и данных между оперативной памятью и диском подсистема виртуальной памяти выполняет трансляцию виртуальных адресов, полученных в результате компиляции и компоновки программы, в физические адреса ячеек оперативной памяти. Очень важно, что все операции по перемещению кодов и данных между оперативной памятью и дисками, а также трансляция адресов выполняются ОС прозрачно для программиста.
Защита памяти — это избиpaтeльнaя способность предохранять выполняемую задачу от записи или чтения памяти, назначенной другой задаче. Правильно написанные программы не пытаются обращаться к памяти, назначенной другим. Однако реальные программы часто содержат ошибки, в результате которых такие попытки иногда предпринимаются. Средства защиты памяти, реализованные в операционной системе, должны пресекать несанкционированный доступ процессов к чужим областям памяти.
Таким образом, функциями ОС по управлению памятью являются отслеживание свободной и занятой памяти; выделение памяти процессам и освобождение памяти при завершении процессов; защита памяти; вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти недостаточны для размещения в ней всех процессов, и возвращение их в оперативную память, когда в ней освобождается место, а также настройка адресов программы на конкретную область физической памяти.
Способность ОС к «экранированию» сложностей реальной аппаратуры очень ярко проявляется в одной из основных подсистем ОС — файловой системе. Операционная система виртуализирует отдельный набор данных, хранящихся на внешнем накопителе, в виде файла — простой неструктурированной последовательности байтов, имеющей символьное имя. Для удобства работы с данными файлы группируются в каталоги, которые, в свою очередь, образуют группы — каталоги более высокого уровня. Пользователь может с помощью ОС выполнять над файлами и каталогами такие действия, как поиск по имени, удаление, вывод содержимого на внешнее устройство (например, на дисплей), изменение и сохранение содержимого.
Чтобы представить большое количество наборов данных, разбросанных случайным образом по цилиндрам и поверхностям дисков различных типов, в виде хорошо всем знакомой и удобной иерархической структуры файлов и каталогов, операционная система должна решить множество задач. Файловая система ОС выполняет преобразование символьных имен файлов, с которыми работает пользователь или прикладной программист, в физические адреса данных на диске, организует совместный доступ к файлам, защищает их от несанкционированного доступа.
При выполнении своих функций файловая система тесно взаимодействует с подсистемой управления внешними устройствами, которая по запросам файловой системы осуществляет передачу данных между дисками и оперативной памятью.
Подсистема управления внешними устройствами, называемая также подсистемой ввода-вывода, исполняет роль интерфейса ко всем устройствам, подключенным к компьютеру. Спектр этих устройств очень обширен. Номенклатура выпускаемых накопителей на жестких, гибких и оптических дисках, принтеров, сканеров, мониторов, плоттеров, модемов, сетевых адаптеров и более специальных устройств ввода-вывода, таких как, например, аналого-цифровые преобразователи, может насчитывать сотни моделей. Эти модели могут существенно отличаться набором и последовательностью команд, с помощью которых осуществляется обмен информацией с процессором и памятью компьютера, скоростью работы, кодировкой передаваемых данных, возможностью совместного использования и множеством других деталей.
Программа, управляющая конкретной моделью внешнего устройства и учитывающая все его особенности, обычно называется драйвером этого устройства (от английского drive — управлять, вести). Драйвер может управлять единственной моделью устройства, например модемом U-1496E компании ZyXEL, или же группой устройств определенного типа, например любыми Hayes-совместимыми модемами. Для пользователя очень важно, чтобы операционная система включала как можно больше разнообразных драйверов, так как это гарантирует возможность подключения к компьютеру большого числа внешних устройств различных производителей. От наличия подходящих драйверов во многом зависит успех операционной системы на рынке (например, отсутствие многих необходимых драйверов внешних устройств было одной из причин низкой популярности OS/2).
Созданием драйверов устройств занимаются как разработчики конкретной ОС, так и специалисты компаний, выпускающих внешние устройства. Операционная система должна поддерживать хорошо определенный интерфейс между драйверами и остальной частью ОС, чтобы разработчики из компаний-производителей устройств ввода-вывода могли поставлять вместе со своими устройствами драйверы для данной операционной системы.
Прикладные программисты могут пользоваться интерфейсом драйверов при разработке своих программ, но это не очень удобно — такой интерфейс обычно представляет собой низкоуровневые операции, обремененные большим количеством деталей.
Поддержание высокоуровневого унифицированного интерфейса прикладного программирования к разнородным устройствам ввода-вывода является одной из наиболее важных задач ОС. Со времени появления ОС UNIX такой унифицированный интерфейс в большинстве операционных систем строится на основе концепции файлового доступа. Эта концепция заключается в том, что обмен с любым внешним устройством выглядит как обмен с файлом, имеющим имя и представляющим собой неструктурированную последовательность байтов. В качестве файла может выступать как реальный файл на диске, так и алфавитно-цифровой терминал, печатающее устройство или сетевой адаптер. Здесь мы опять имеем дело со свойством операционной системы подменять реальную аппаратуру удобными для пользователя и программиста абстракциями.
Безопасность данных вычислительной системы обеспечивается средствами отказоустойчивости ОС, направленными на защиту от сбоев и отказов аппаратуры и ошибок программного обеспечения, а также средствами защиты от несанкционированного доступа. В последнем случае ОС защищает данные от ошибочного или злонамеренного поведения пользователей системы.
Первым рубежом обороны при защите данных от несанкционированного доступа является процедура логического входа. Операционная система должна убедиться, что в систему пытается войти пользователь, вход которого разрешен администратором. Функции защиты ОС вообще очень тесно связаны с функциями администрирования, так как именно администратор определяет права пользователей при их обращении к разным ресурсам системы — файлам, каталогам, принтерам, сканерам и т. п. Кроме того, администратор ограничивает возможности пользователей в выполнении тех или иных системных действий. Например, пользователю может быть запрещено выполнять процедуру завершения работы ОС, устанавливать системное время, завершать чужие процессы, создавать учетные записи пользователей, изменять права доступа к некоторым каталогам и файлам. Администратор может также урезать возможности пользовательского интерфейса, убрав, например, некоторые пункты из меню операционной системы, выводимого на дисплей пользователя.
Важным средством защиты данных являются функции аудита ОС, заключающиеся в фиксации всех событий, от которых зависит безопасность системы. Например, попытки удачного и неудачного логического входа в систему, операции доступа к некоторым каталогам и файлам, использование принтеров и т. п. Список событий, которые необходимо отслеживать, определяет администратор ОС.
Поддержка отказоустойчивости реализуется операционной системой, как правило, на основе резервирования. Чаще всего в функции ОС входит поддержание нескольких копий данных на разных дисках или разных дисковых накопителях. Резервируются также принтеры и другие устройства ввода-вывода. При отказе одного из избыточных устройств операционная система должна быстро и прозрачным для пользователя образом произвести реконфигурацию системы и продолжить работу с резервным устройством. Особым случаем обеспечения отказоустойчивости является использование нескольких процессоров, то есть мультипроцессирование, когда система продолжает работу при отказе одного из процессоров, хотя и с меньшей производительностью. (Необходимо отметить, что многие ОС использует мультипроцессорную конфигурацию компьютера только для ускорения работы и при отказе одного из процессоров прекращают работу.)
Поддержка отказоустойчивости также входит в обязанности системного администратора. В состав ОС обычно входят утилиты, позволяющие администратору выполнять регулярные операции резервного копирования для обеспечения быстрого восстановления важных данных.
1.3. Интерфейс прикладного программирования Прикладные программисты используют в своих приложениях обращения к ОС, когда для выполнения тех или иных действий им требуется особый статус, которым обладает только операционная система. Например, в большинстве современных ОС все действия, связанные с управлением аппаратными средствами компьютера, может выполнять только ОС. Помимо этих функций прикладной программист может воспользоваться набором сервисных функций ОС, которые упрощают написание приложений. Функции такого типа реализуют универсальные действия, часто требующиеся в различных приложениях, такие, например, как обработка текстовых строк. Эти функции могли бы быть выполнены и самим приложением, однако гораздо проще использовать уже готовые, отлаженные процедуры, включенные в состав операционной системы. В то же время даже при наличии в ОС соответствующей функции программист может реализовать ее самостоятельно в рамках приложения, если предложенный операционной системой вариант его не вполне устраивает.
Возможности операционной системы доступны прикладному программисту в виде набора функций, называющегося интерфейсом прикладного программирования (Application Programming Interface, API). От конечного пользователя эти функции скрыты за оболочкой алфавитно-цифрового или графического пользовательского интерфейса.
Для разработчиков приложений все особенности конкретной операционной системы представлены особенностями ее API. Поэтому операционные системы с различной внутренней организацией, но с одинаковым набором функций API кажутся им одной и той же ОС, что упрощает стандартизацию операционных систем и обеспечивает переносимость приложений между внутренне различными ОС, соответствующими определенному стандарту на API. Например, следование общим стандартам API UNIX, одним из которых является стандарт Posix, позволяет говорить о некоторой обобщенной операционной системе UNIX, хотя многочисленные версии этой ОС от разных производителей иногда существенно отличаются внутренней организацией.
Приложения выполняют обращения к функциям API с помощью системных вызовов. Способ, которым приложение получает услуги операционной системы, очень похож на вызов подпрограмм. Информация, нужная ОС и состоящая обычно из идентификатора команды и данных, помещается в определенное место памяти, в регистры и/или стек. Затем управление передается операционной системе, которая выполняет требуемую функцию и возвращает результаты через память, регистры или стеки. Если операция проведена неуспешно, то результат включает индикацию ошибки.
Способ реализации системных вызовов зависит от структурной организации ОС, которая, в свою очередь, тесно связана с особенностями аппаратной платформы. Кроме того, он зависит от языка программирования. При использовании ассемблера программист устанавливает значения регистров и/или областей памяти, а затем выполняет специальную инструкцию вызова сервиса или программного прерывания для обращения к некоторой функции ОС. При использовании языков высокого уровня функции ОС вызываются тем же способом, что и написанные пользователем подпрограммы, требуя задания определенных аргументов в определенном порядке.
Операционная система должна обеспечивать удобный интерфейс не только для прикладных программ, но и для человека, работающего за терминалом. Этот человек может быть конечным пользователем, администратором ОС или программистом.
В ранних операционных системах пакетного режима функции пользовательского интерфейса были сведены к минимуму и не требовали наличия терминала. Команды языка управления заданиями набивались на перфокарты, а результаты выводились на печатающее устройство.
Современные ОС поддерживают развитые функции пользовательского интерфейса для интерактивной работы за терминалами двух типов: алфавитно-цифровыми и графическими.
При работе за алфавитно-цифровым терминалом пользователь имеет в своем распоряжении систему команд, мощность который отражает функциональные возможности данной ОС. Обычно командный язык ОС позволяет запускать и останавливать приложения, выполнять различные операции с файлами и каталогами, получать информацию о состоянии ОС (количество работающих процессов, объем свободного пространства на дисках и т. п.), администрировать систему. Команды могут вводиться не только в интерактивном режиме с терминала, но и считываться из так называемого командного файла, содержащего некоторую последовательность команд.
Программный модуль ОС, ответственный за чтение отдельных команд или же последовательности команд из командного файла, иногда называют командным интерпретатором.
Ввод команды может быть упрощен, если операционная система поддерживает графический пользовательский интерфейс. В этом случае пользователь для выполнения нужного действия с помощью мыши выбирает на экране нужный пункт меню или графический символ.
1.4 Сетевые операционные системы Операционная система компьютерной сети во многом аналогична ОС автономного компьютера — она также представляет собой комплекс взаимосвязанных программ, который обеспечивает удобство работы пользователям и программистам путем предоставления им некоторой виртуальной вычислительной системы, и реализует эффективный способ разделения ресурсов между множеством выполняемых в сети процессов.
Компьютерная сеть — это набор компьютеров, связанных коммуникационной системой и снабженных соответствующим программным обеспечением, позволяющим пользователям сети получать доступ к ресурсам этого набора компьютеров. Сеть могут образовывать компьютеры разных типов, которыми могут быть небольшие микропроцессоры, рабочие станции, мини-компьютеры, персональные компьютеры или суперкомпьютеры. Коммуникационная система может включать кабели, повторители, коммутаторы, маршрутизаторы и другие устройства, обеспечивающие передачу сообщений между любой парой компьютеров сети. Компьютерная сеть позволяет пользователю работать со своим компьютером как с автономным и добавляет к этому возможность доступа к информационным и аппаратным ресурсам других компьютеров сети.
При организации сетевой работы операционная система играет роль интерфейса, экранирующего от пользователя все детали низкоуровневых программно-аппаратных средств сети. Например, вместо числовых адресов компьютеров сети, таких как МАС-адрес и IP-адрес, операционная система компьютерной сети позволяет оперировать удобными для запоминания символьными именами. В результате в представлении пользователя сеть с ее множеством сложных и запутанных реальных деталей превращается в достаточно понятный набор разделяемых ресурсов.
В зависимости от того, какой виртуальный образ создает операционная система для того, чтобы подменить им реальную аппаратуру компьютерной сети, различают сетевые ОС и распределенные ОС.
Сетевая ОС предоставляет пользователю некую виртуальную вычислительную систему, работать с которой гораздо проще, чем с реальной сетевой аппаратурой. В то же время эта виртуальная система не полностью скрывает распределенную природу своего реального прототипа, то есть является виртуальной сетью.
При использовании ресурсов компьютеров сети пользователь сетевой ОС всегда помнит, что он имеет дело с сетевыми ресурсами и что для доступа к ним нужно выполнить некоторые особые операции, например отобразить удаленный разделяемый каталог на вымышленную локальную букву дисковода или поставить перед именем каталога еще и имя компьютера, на котором тот расположен. Пользователи сетевой ОС обычно должны быть в курсе того, где хранятся их файлы, и должны использовать явные команды передачи файлов для перемещения файлов с одной машины на другую.
Работая в среде сетевой ОС, пользователь хотя и может запустить задание на любой машине компьютерной сети, всегда знает, на какой машине выполняется его задание. По умолчанию пользовательское задание выполняется на той машине, на которой пользователь сделал логический вход. Если же он хочет выполнить задание на другой машине, то ему нужно либо выполнить логический вход в эту машину, используя команду типа remote login, либо ввести специальную команду удаленного выполнения, в которой он должен указать информацию, идентифицирующую удаленный компьютер.
Магистральным направлением развития сетевых операционных систем является достижение как можно более высокой степени прозрачности сетевых ресурсов. В идеальном случае сетевая ОС должна представить пользователю сетевые ресурсы в виде ресурсов единой централизованной виртуальной машины. Для такой операционной системы используют специальное название — распределенная ОС, или истинно распределенная ОС. IIКлассификация операционных систем по семействам 2.1. Операционные системы семейства OS/2 В апреле 1987 г. компании IBM и Microsoft объявили о совместных планах по созданию новой операционной системы: OS/2. Прошло несколько лет, и мир стал свидетелем «бракоразводного процесса», в результате чего у OS/2 остался один родитель — компания IBM, а фирма Microsoft отдала все симпатии любимому детищу, имя которому Windows. Важно помнить, что OS/2 — это новая операционная система с графическим интерфейсам пользователя (ГИП), в то время как Windows представляет собой ГИП, работающий «поверх» DOS.
OS/2 является полностью защищенной операционной системой, благодаря чему невозможны конфликты между программами в памяти. Многозадачная система OS/2 способна выполнять одновременно несколько прикладных программ: например, Вы можете начать пересчет электронной таблицы, запустить печать документа в текстовом редакторе, связной пакет для приема/передачи сообщений электронной почты, а затем продолжить поиск записей в базе данных.
Система OS/2 поддерживает многопроцессные прикладные программы, рассчитанные на одновременное выполнение нескольких внутренних функций. Примерами могут служить текстовый редактор, в котором печать документа и проверка правописания осуществляются параллельно; электронная таблица с возможностью одновременного выполнения функций пересчета и просмотра или база данных, в которой можно совмещать функции обновления и поиска записей.
Архитектура OS/2 Warp Connect 3.0 во многом похожа на архитектуру Windows 95, но в ее концепции заложено меньше компромиссов, связанных с использованием старого 16-разрядного кода. В результате появилась ОС с лучшими, чем у Windows 95, средствами защиты, в которой можно выполнять программы OS/2, Win16 и DOS, однако несовместимая с 16-разрядными драйверами устройств. 32-разрядные прикладные программы Windows не могут выполняться в среде OS/2 Warp.
Собственным 32-разрядным прикладным программам OS/2 доступно 4 Gb-ное отдельное адресное пространство. Код прикладных программ отображается в диапазон адресов от 0 до 512 Mb, системный код OS/2 отображается в пространство от 512 Mb до 4 Gb. Эта область системного кода используется совместно всеми процессами. Исполняемые 32-разрядные прикладные программы изолированы друг от друга, хотя они могут общаться между собой с помощью средств вырезания и вставки (cut-and-paste) или механизма DDE OS/2. В системе OS/2 Warp применяется модель вытесняющей многозадачности собственных прикладных программ, основанная на управлении отдельными потоками.
Такая организация обладает во многом теми же достоинствами и недостатками, что свойственны Windows 95. Выделение системных ресурсов происходит гладко, а вызовы, направляемые в системные API, могут обслуживаться без существенных накладных расходов, так как системные DLL расположены в тех же адресных пространствах, что и вызывающая прикладная программа. Размер рабочего множества тоже удерживается в разумных пределах, так как не нужно создавать множественные экземпляры системных DLL. Но защита не гарантируется, поскольку плохо работающие прикладные программы все же могут испортить важные системные области.
Однако в некоторых важных аспектах OS/2 Warp превосходит систему Windows 95. Проблемы ограниченности системных ресурсов не существует, так как в OS/2 Warp не используются 64 К хипы для хранения структур данных системных DLL. Эта ОС также предоставляет несколько служебных средств, отсутствующих в Windows, в том числе модель системных объектов (SOM) и REXX, мощный командный язык, используемый на многих платформах фирмы IBM.
В дополнение к собственным 32-разрядным прикладным программам, OS/2 Warp может выполнять 16-разрядные прикладные программы Windows. В зависимости от того, какую версию вы приобрели, OS/2 Warp использует для этой цели либо копию Microsoft Windows 3.1, либо собственные библиотеки Win-OS/2. В любом случае вы можете по своему выбору запустить сеанс Windows для каждой Windows-программы или выполнять все Windows-программы в совместно используемом адресном пространстве. Последний подход может обеспечить лучшую совместимость, но грозит обернуться потерей устойчивости, так как в этом случае ОС работает в сущности подобно Windows 3.1x. OS/2 Warp позволяет также запускать прикладные программы DOS на легко конфигурируемых виртуальных машинах DOS, работающих в режиме вытесняющей многозадачности.
Архитектура OS/2 не предназначена для запуска в ней драйверов устройств реального режима, поэтому ваши аппаратные средства должны поставляться с собственными драйверами OS/2. Преимущество такого подхода в том, что OS/2 может полностью защитить первые 4 Mb памяти прикладной программы, т. е. область, которая по-прежнему остается незащищенной от аварийных сбоев в среде Windows 95.
2.2Операционные системы семейства UNIX Система UNIX приобрела популярность в связи с ее успешным использованием на мини-ЭВМ. Этот успех послужил толчком к тому, чтобы создать подобную систему и для персональных компьютеров. Как правило, различные версии ОС, относящихся к этому семейству, имеют свои названия, но в основных чертах повторяют особенности UNIX.
UNIX — операционная система, которая позволяет осуществить выполнение работ в многопользовательском и многозадачном режиме. Поначалу она предназначалась для больших ЭВМ, чтобы заменить MULTICS. UNIX является очень мощным средством в руках программиста, но требует очень большого объёма ОЗУ и пространства диска. Несмотря на попытки стандартизировать эту операционную систему, существует большое количество различных его версий, главным образом потому, что она была распространена в виде программы на языке Си, которую пользователи стали модифицировать для своих собственных нужд.
Главной отличительной чертой этой системы является ее модульность и обширный набор системных программ, которые позволяли создать благоприятную обстановку для пользователей-программистов. Система UNIX органически сочетается с языком Си, на котором написано более 90% ее собственных модулей. Командный язык системы практически совпадает с языком Си, что позволяло очень легко комбинировать различные программы при создании больших прикладных систем.
UNIX имеет «оболочку», с которой пользователь непосредственно взаимодействует, и «ядро», которое, собственно, и управляет действиями компьютера. Компьютер выводит в качестве приглашения для ввода команд долларовый знак. Из-за продолжительности пользования этой операционной системы количество команд весьма велико. В добавление к командам по управлению файлами, которые присутствуют в любой операционной системе, UNIX имеет, по крайней мере, один текстовый редактор, а также форматер текста и компилятор языка Си, что позволяет, по мере надобности, модифицировать «оболочку».
От UNIX многие другие операционные системы переняли такие функции, как переназначение, канал и фильтр; однако UNIX имеет несомненно преимущество в том, что она с самого начала разрабатывалась как многопользовательская и многозадачная операционная система. Имена файлов могут иметь 14 знаков, причём в именах файлов различаются заглавные и строчные буквы. Первоначальный набор команд операционной системы расширился до 143 в версии 7.0; в версии System III добавилась ещё 71 команда, ещё 25 — в Berkeley 4.1 и следующие 114 в Berkeley 4.2. Из-за такого обилия команд UNIX не относится к самым удобным для пользователя языкам. Работа облегчается, если применять графический пользовательский интерфейс, но поскольку такое количество команд и без того занимает значительный объём памяти, этот интерфейс требует ещё большего объёма памяти и пространства диска. . 2.3 Операционные системы семейства Linux Сильной стороной ОС Linux является ее универсальность: система покрывает весь диапазон применений — от настольного PC до сверхмощных
многопроцессорных серверов и кластеров. В настоящее время многопроцессорная ОС Linux устойчиво работает на платформах PC, Alpha, PowerPC, Macintosh, SGIMIPS, StrongARM, SGIVisualWorkstations, VAX, 8086, PC-98, PalmPilot, HPPA-RISC, Sparc& UltraSparc64 systems, m68k.
Будучи операционной системой, Linux выполняет многие из функций,
характерных для DOS и Windows. Однако следует отметить, что эта ОС
отличается особой мощью и гибкостью. Большинство операционных систем
персональных компьютеров, например DOS, создавались для небольших ПК,
обладавших ограниченными возможностями и лишь недавно превратившихся в универсальные машины. Такие ОС постоянно модернизируются, поскольку они должны соответствовать непрерывно развивающимся возможностям аппаратных средств персональных компьютеров. Система же Linux разрабатывалась совершенно в ином контексте. Она представляет собой ПК-версию операционной системы Unix, которая десятилетиями используется на мэйнфреймах и мини-ЭВМ
и является основной ОС рабочих станций. Linux предоставляет в распоряжение вашего ПК скорость, эффективность и гибкость Unix, используя при этом все преимущества современных персональных машин.
С финансовой точки зрения Linux обладает одним весьма существенным
достоинством — она не коммерческая. В отличие от операционной системы Unix, Linux распространяется бесплатно по генеральной открытой лицензии GNU в рамках Фонда бесплатного программного обеспечения (Free Software Foundation), благодаря чему эта ОС доступа всем желающим. В действительности система Linux защищена авторским правом и не находится в общедоступном пользовании, однако открытая лицензия GNU — это почти то же самое, что и передача в общедоступное пользование. Она составлена таким образом, что Linux остается бесплатной и в то же время стандартизированной системой. Существует лишь один официальный вариант Linux.
Некоммерческий характер Linux иногда создает у людей неверное впечатление о ней: некоторые считают, что эта операционная система не относится к числу профессиональных. По сути дела, Linux является ПК-версией ОС Unix. Для того
чтобы оценить ее по достоинству, нужно уяснить тот особый контекст, в
котором разрабатывалась система Unix. В отличие от большинства других операционных систем, Unix разрабатывали в университетской, академической среде. Для университетов и исследовательских лабораторий Unix — то, что надо. Ее разработка шла параллельно с революцией в области вычислительной техники и коммуникаций, которая длится вот уже несколько десятилетий.
Профессионалы по части компьютерной техники нередко разрабатывали на базе Unix новые технологии. В частности, это касается средств для работы в Internet. Будучи весьма сложной системой, Unix, тем не менее, с самого начала строилась как система очень гибкая. Ее можно запросто модифицировать, создавая тем самым различные версии. Так, многие фирмы- производители поддерживают разные официальные варианты Unix. Фирмы IBM, Sun, Hewlett-Packard продают и осуществляют техническое сопровождение собственных вариантов. Специалисты, занятые в научно-исследовательских программах, создают свои версии, соответствующие их конкретным задачам. Эта внутренняя гибкость структуры ОС Unix никоим образом не сказывается на ее
высочайшем качестве. Наоборот, она подтверждает ее устойчивость, позволяя в то же время адаптировать систему практически к любой среде. Именно в этом контексте разрабатывалась ОС Linux. В этом смысле Linux — всего лишь еще один вариант Unix, версия для ПК. Процесс ее разработки компьютерными профессионалами, работающими в научной и околонаучной среде, соответствует обычной процедуре разработки версий Unix. Однако Linux распространяется по открытой лицензии. Linux — это высококлассная операционная система, доступная всем, причем бесплатно.
Операционная система — это программа, которая управляет аппаратными и программными средствами компьютера, предназначенными для выполнения задач пользователя. На первой стадии своего развития операционные системы предназначались для выполнения базовых задач по управлению аппаратными средствами. Эти задачи в основном касались управления файлами, выполнения программ и приема команд от пользователя. Взаимодействие пользователя с операционной системой осуществляется через пользовательский интерфейс. Этот интерфейс позволяет операционной системе принимать и интерпретировать
инструкции, вводимые пользователем в компьютер. Для выполнения задачи — например, чтения файла или печати документа — достаточно лишь послать соответствующую инструкцию в операционную систему.
Управление файлами, управление программами и взаимодействие с
пользователями — это традиционные функции, общие для всех операционных систем. У Linux, как и у всех версий Unix, есть еще две особенности: она является многопользовательской и многозадачной системой. Многозадачностьозначает, что систему можно «попросить» выполнить несколько задачодновременно. Пока выполняется одна задача, вы работаете с другой.
Например, когда печатается один файл, можно редактировать другой, не ожидая окончания процесса печати. Многопользовательский режим означает, что в системе одновременно могут быть зарегистрированы несколько пользователей, каждый из которых взаимодействует с нею через свой терминал.
Первоначально операционные системы предназначались для повышения эффективности работы аппаратных средств. Возможности первых компьютеров были ограниченными, и операционной системе приходилось извлекать их них максимум возможного. В этом отношении операционные системы были рассчитаны не на пользователя, а на аппаратные средства. Как правило, ОС отличались жесткостью, вынуждая пользователя приспосабливаться к требованиям эффективности использования аппаратных средств.
Как версия системы Unix, Linux отличается характерной для этой ОС
гибкостью, обусловленной в первую очередь тем, что эта ОС развивалась в среде исследователей и ученых. Операционную систему Unix разработал Кен Томпсон, сотрудник фирмы Bell Laboratories концерна AT&T, в конце 60-х — начале 70-х годов. Unix вобрала в себя целый ряд новых разработок в области операционных систем. Она создавалась как операционная система для исследователей. При разработке Unix была поставлена задача создать систему, которая могла бы удовлетворять непрерывно изменяющимся требованиям сотрудников, занимающихся разнообразными исследованиями. Для достижения этой цели Томпсону пришлось разрабатывать систему, которая могла решать множество разнотипных задач. Гибкость системы стала более важным качеством,
нежели эффективность работы аппаратных средств. Как и Unix, Linux позволяет пользователям справиться с решением чрезвычайно широкого круга задач. ОС рассматривается как механизм, предоставляющий в распоряжение пользователя набор высокоэффективных инструментов. Такая ориентация на пользователя означает, что вы можете конфигурировать и программировать систему в соответствии со своими конкретными потребностями. В случае с Linux операционная система действительно становится операционной средой. 2.4 Операционные системы семейства Windows Платформы операционных систем Windows NT и Windows 2000 представляют собой операционные системы для использования на самых разнообразных компьютерах. Все ОС семейства Windows являются многозадачными системами с графическим интерфейсом. Они работают на платформах x86, x86-64, IA-64, ARM. Существовали также версии для DEC Alpha, MIPS, PowerPC и SPARC. Одним из достоинств ОС семейства Windows является поддержка технологии Plug & Play. Эта технология упрощает для пользователя подключение разных внешних устройств. Еще одним достоинством этих ОС является их переносимость: за счет специальных модулей осуществляется связь ОС с разным аппаратным обеспечением. ОС семейства Windows реализует метод многозадачности с вытеснением. Это позволяет снять приложение в случае его зависания. Также эти ОС поддерживают технологию OLE (Object Linking Embedding). OLE — стандарт, позволяющий создавать различные составные документы: в документ, созданный одним приложением, можно внедрять объекты или ссылаться на те из них, которые созданы другими приложениями. В интерфейсе ОС семейства Windows реализована объектная модель. Также они поддерживают работу ПК в сети. Эта поддержка реализовывается в следующих ситуациях: ОС поддерживает действие машины-клиента для наиболее распространенных серверных операционных систем; ОС может одновременно поддерживать различные типы машин-клиентов; ОС дает возможность создавать одноранговые локальные сети. В настоящее время Microsoft Windows установлена примерно на 92 % персональных компьютеров и рабочих станций. По данным компании Net Applications, в апреле 2010 года рыночная доля Windows составляла 91,5 %. В настоящее время существует множество классификаций операционных систем. Операционные системы могут различаться особенностями реализации внутренних алгоритмов управления основными ресурсами компьютера (процессорами, памятью, устройствами), особенностями использованных методов проектирования, типами аппаратных платформ, областями использования и многими другими свойствами. С быстрым развитием в сфере компьютерной технологии, появлением новых ОС, возможно также появление новых классификаций, основанных на новых критериях.
2.13. Требования к современным операционным системам Главным требованием, предъявляемым к операционной системе, является выполнение ею основных функций эффективного управления ресурсами и обеспечение удобного интерфейса для пользователя и прикладных программ. Современная ОС, как правило, должна поддерживать мультипрограммную обработку, виртуальную память, свопинг, многооконный графический интерфейс пользователя, а также выполнять многие другие необходимые функции и услуги. Кроме этих требований функциональной полноты к операционным системам предъявляются не менее важные эксплуатационные требования, которые перечислены ниже.
Расширяемость. В то время как аппаратная часть компьютера устаревает за несколько лет, полезная жизнь операционных систем может измеряться десятилетиями. Примером может служить ОС UNIX. Поэтому операционные системы всегда изменяются со временем эволюционно, и эти изменения более значимы, чем изменения аппаратных средств. Изменения ОС обычно заключаются в приобретении ею новых свойств, например поддержке новых типов внешних устройств или новых сетевых технологий. Если код ОС написан таким образом, что дополнения и изменения могут вноситься без нарушения целостности системы, то такую ОС называют расширяемой. Расширяемость достигается за счет модульной структуры ОС, при которой программы строятся из набора отдельных модулей, взаимодействующих только через функциональный интерфейс.
Переносимость. В идеале код ОС должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы (которые различаются не только типом процессора, но и способом организации всей аппаратуры компьютера) одного типа на аппаратную платформу другого типа. Переносимые ОС имеют несколько вариантов реализации для разных платформ, такое свойство ОС называют также многоплатформенностъю.
Совместимость. Существует несколько «долгоживущих» популярных операционных систем (разновидности UNIX, MS-DOS, Windows 3.x, Windows NT, OS/2), для которых наработана широкая номенклатура приложений. Некоторые из них пользуются широкой популярностью. Поэтому для пользователя, переходящего по тем или иным причинам с одной ОС на другую, очень привлекательна возможность запуска в новой операционной системе привычного приложения. Если ОС имеет средства для выполнения прикладных программ, написанных для других операционных систем, то про нее говорят, что она обладает совместимостью с этими ОС. Следует различать совместимость на уровне двоичных кодов и совместимость на уровне исходных текстов. Понятие совместимости включает также поддержку пользовательских интерфейсов других ОС.
Надежность и отказоустойчивость. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемыми, а приложения не должны иметь возможности наносить вред ОС. Надежность и отказоустойчивость ОС прежде всего определяются архитектурными решениями, положенными в ее основу, а также качеством ее реализации (отлаженностью кода). Кроме того, важно, включает ли ОС программную поддержку аппаратных средств обеспечения отказоустойчивости, таких, например, как дисковые массивы или источники бесперебойного питания.
Безопасность. Современная ОС должна защищать данные и другие ресурсы вычислительной системы от несанкционированного доступа. Чтобы ОС обладала свойством безопасности, она должна как минимум иметь в своем составе средства аутентификации — определения легальности пользователей, авторизации — предоставления легальным пользователям дифференцированных прав доступа к ресурсам, аудита — фиксации всех «подозрительных» для безопасности системы событий. Свойство безопасности особенно важно для сетевых ОС. В таких ОС к задаче контроля доступа добавляется задача защиты данных, передаваемых по сети.
Производительность. Операционная система должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа. На производительность ОС влияет много факторов, среди которых основными являются архитектура ОС, многообразие функций, качество программирования кода, возможность исполнения ОС на высокопроизводительной (многопроцессорной) платформе.
Заключение
В этой исследовательской работе мы изучили историю создания развития разновидности и функций операционной системы и получили дополнительные знания по этой теме.
В дальнейшем использовать приобретенные знания в использование персональным компьютером.
www.ronl.ru
Аннотация: В данной лекции вводится понятие операционной системы; рассматривается эволюция развития операционных систем; описываются функции операционных систем и подходы к построению операционных систем.
Операционная система (ОС) – это программа, которая обеспечивает возможность рационального использования оборудования компьютера удобным для пользователя образом. Вводная лекция рассказывает о предмете, изучаемом в рамках настоящего курса. Сначала мы попытаемся ответить на вопрос, что такое ОС. Затем последует анализ эволюции ОС и рассказ о возникновении основных концепций и компонентов современных ОС. В заключение будет представлена классификация ОС с точки зрения особенностей архитектуры и использования ресурсов компьютера.
Из чего состоит любая вычислительная система? Во-первых, из того, что в англоязычных странах принято называть словом hardware, или техническое обеспечение: процессор, память, монитор, дисковые устройства и т.д., объединенные магистральным соединением, которое называется шиной. Некоторые сведения об архитектуре компьютера имеются в приложении 1 к настоящей лекции.
Во-вторых, вычислительная система состоит из программного обеспечения. Все программное обеспечение принято делить на две части: прикладное и системное. К прикладному программному обеспечению, как правило, относятся разнообразные банковские и прочие бизнес-программы, игры, текстовые процессоры и т. п. Под системным программным обеспечением обычно понимают программы, способствующие функционированию и разработке прикладных программ. Надо сказать, что деление на прикладное и системное программное обеспечение является отчасти условным и зависит от того, кто осуществляет такое деление. Так, обычный пользователь, неискушенный в программировании, может считать Microsoft Word системной программой, а, с точки зрения программиста, это – приложение. Компилятор языка Си для обычного программиста – системная программа, а для системного – прикладная. Несмотря на эту нечеткую грань, данную ситуацию можно отобразить в виде последовательности слоев (см. рис. 1.1), выделив отдельно наиболее общую часть системного программного обеспечения – операционную систему:
Рис. 1.1. Слои программного обеспечения компьютерной системыБольшинство пользователей имеет опыт эксплуатации операционных систем, но тем не менее они затруднятся дать этому понятию точное определение. Давайте кратко рассмотрим основные точки зрения.
При разработке ОС широко применяется абстрагирование, которое является важным методом упрощения и позволяет сконцентрироваться на взаимодействии высокоуровневых компонентов системы, игнорируя детали их реализации. В этом смысле ОС представляет собой интерфейс между пользователем и компьютером.
Архитектура большинства компьютеров на уровне машинных команд очень неудобна для использования прикладными программами. Например, работа с диском предполагает знание внутреннего устройства его электронного компонента – контроллера для ввода команд вращения диска, поиска и форматирования дорожек, чтения и записи секторов и т. д. Ясно, что средний программист не в состоянии учитывать все особенности работы оборудования (в современной терминологии – заниматься разработкой драйверов устройств), а должен иметь простую высокоуровневую абстракцию, скажем, представляя информационное пространство диска как набор файлов. Файл можно открывать для чтения или записи, использовать для получения или сброса информации, а потом закрывать. Это концептуально проще, чем заботиться о деталях перемещения головок дисков или организации работы мотора. Аналогичным образом, с помощью простых и ясных абстракций, скрываются от программиста все ненужные подробности организации прерываний, работы таймера, управления памятью и т. д. Более того, на современных вычислительных комплексах можно создать иллюзию неограниченного размера оперативной памяти и числа процессоров. Всем этим занимается операционная система. Таким образом, операционная система представляется пользователю виртуальной машиной, с которой проще иметь дело, чем непосредственно с оборудованием компьютера.
Операционная система предназначена для управления всеми частями весьма сложной архитектуры компьютера. Представим, к примеру, что произойдет, если несколько программ, работающих на одном компьютере, будут пытаться одновременно осуществлять вывод на принтер. Мы получили бы мешанину строчек и страниц, выведенных различными программами. Операционная система предотвращает такого рода хаос за счет буферизации информации, предназначенной для печати, на диске и организации очереди на печать. Для многопользовательских компьютеров необходимость управления ресурсами и их защиты еще более очевидна. Следовательно, операционная система, как менеджер ресурсов, осуществляет упорядоченное и контролируемое распределение процессоров, памяти и других ресурсов между различными программами.
Если вычислительная система допускает совместную работу нескольких пользователей, то возникает проблема организации их безопасной деятельности. Необходимо обеспечить сохранность информации на диске, чтобы никто не мог удалить или повредить чужие файлы. Нельзя разрешить программам одних пользователей произвольно вмешиваться в работу программ других пользователей. Нужно пресекать попытки несанкционированного использования вычислительной системы. Всю эту деятельность осуществляет операционная система как организатор безопасной работы пользователей и их программ. С такой точки зрения операционная система представляется системой безопасности государства, на которую возложены полицейские и контрразведывательные функции.
Наконец, можно дать и такое определение: операционная система – это программа, постоянно работающая на компьютере и взаимодействующая со всеми прикладными программами. Казалось бы, это абсолютно правильное определение, но, как мы увидим дальше, во многих современных операционных системах постоянно работает на компьютере лишь часть операционной системы, которую принято называть ее ядром.
Как мы видим, существует много точек зрения на то, что такое операционная система. Невозможно дать ей адекватное строгое определение. Нам проще сказать не что есть операционная система, а для чего она нужна и что она делает. Для выяснения этого вопроса рассмотрим историю развития вычислительных систем.
www.intuit.ru
Тема: Виртуальные машины
Содержание:Введение Стремительное развитие технологий виртуализации оказало значительное влияние не только на развитие ИТ-инфраструктуры крупных предприятий. Мощности настольных персональных компьютеров достигли такого уровня, когда одна физическая машина может поддерживать несколько одновременно запущенных операционных систем в виртуальных машинах. Еще несколько лет назад виртуальные машины были чем-то экзотическим для конечных пользователей, которые устанавливали их, большей частью, в ознакомительных целях. Теперь многоядерные процессоры и большие объемы оперативной памяти на домашнем или офисном компьютере не редкость, и это позволяет придумывать новые варианты их использования в контексте технологий виртуализации.
Множество пользователей находят разнообразные применения настольным платформам виртуализации, как дома, так и на работе. Ведь виртуальная машина, по сравнению с физической, обладает существенно большей гибкостью в отношении переносимости на другую физическую платформу. К тому же, за последние пару лет существенно выросло качество настольных платформ виртуализации в отношении функциональности, простоты использования и быстродействия. Появившаяся сравнительно недавно поддержка аппаратной виртуализации в настольных системах говорит, что ведущие производители процессоров, такие как Intel и AMD, верят в будущее технологий виртуализации на персональных компьютерах. Как использовать виртуальные машины дома
Большинство пользователей персональных компьютеров часто сталкиваются с проблемой использования потенциально опасных или нестабильных приложений, которые могут либо повредить операционную систему, либо оказать влияние на работу других программ. Зачастую домашний компьютер, на котором расположены также и рабочие документы, используется несколькими людьми, среди которых не все понимают, как правильно с ним обращаться, чтобы не повредить важные данные или операционную систему. Создание учетных записей типа «User» не решает этой проблемы, поскольку для установки многих приложений необходимы административные права, и работа за компьютером в таком режиме существенно ограничивает его использование. Безусловно, многие сталкиваются также и с проблемой перенесения операционной системы и установленных приложений на другой компьютер при его покупке. Категория пользователей, активно использующих ноутбуки, сталкивается с проблемой синхронизации данных между ним и стационарным компьютером. Ведь необходима не только синхронизация файлов, но требуется также использовать одни и те приложения на работе и дома. Для множества людей, немаловажна также возможность обучения работе с различными операционными системами, от которых в этом случае не требуется высокого быстродействия. При этом, например, работая в Linux, пользователю требуется обращаться к Windows-приложениям, и для этого приходится перезагружать компьютер. И главной проблемой при обучении является невозможность моделирования реальной сети между несколькими компьютерами при наличии в распоряжении одного. Все эти и множество других проблем, позволяет решить использование виртуальных машин в настольных системах виртуализации.
Основными вариантами домашнего использования виртуальных машин являются следующие:
* Создание персональной виртуальной среды, изолированной от хостовой системы, что позволяет использовать на одном компьютере несколько копий рабочих окружений, полностью изолированных друг от друга. К сожалению, такая модель исключает вариант использования виртуальных сред для 3D-игр, поскольку производители платформ виртуализации не научились еще полноценно поддерживать эмуляцию всех функций видеоадаптеров. Впереди всех на данный момент в этом отношении компания VMware, которая в последних версиях своей настольной платформы VMware Workstation включила функции по экспериментальной поддержке Direct-3D и шейдеров. Тем не менее, не так давно компания PCI-SIG, занимающаяся разработкой стандарта PCI Express, опубликовала новые спецификации стандарта PCI Express 2.0, в которых заявляется о поддержке функций виртуализации ввода-вывода, которые значительно упрощают гостевым системам доступ к физическому железу. Бесспорно, не за горами то время, когда мы будем играть в игры на виртуальных машинах.
* Создание переносных виртуальных машин, готовых к использованию на любой другой совместимой по архитектуре платформе. Если вам необходимо продемонстрировать работу какой-либо программы, при этом она или окружение операционной системы должны быть определенным образом настроены – виртуальные машины лучший вариант в этом случае. Сделайте в виртуальной машине все необходимые действия, запишите ее на DVD-диск и там, где вам нужно показать, как все работает, установите платформу виртуализации и запустите виртуальную машину.
* Получение безопасных пользовательских окружений для Интернет. При работе в сети Интернет, которая, как всем известно, изрядно наполнена вирусами и «троянскими конями», запуск браузера в режиме user-mode для многих не является приемлемым решением, с точки зрения безопасности. Ведь в программном обеспечении, в том числе и в операционных системах, существует множество уязвимостей, сквозь которые вредоносное ПО может повредить важные данные. Виртуальная машина в этом случае является более выигрышным вариантом, поскольку вредоносная программа после получения контроля над операционной системой в виртуальной машине, может причинить вред только внутри нее, не затрагивая при этом хостовую ОС. Кстати, в последнее время начали появляться вирусы, обнаруживающие свое присутствие в виртуальной машине и не выдающие себя в этом случае, однако пока таких вредоносных программ единицы, и в любом случае вред важным данным нанесен не будет, пока зараженные объекты не будут перенесены в хостовую ОС. Поэтому применение виртуальных машин в этом случае нисколько не исключает использование антивирусного ПО.
* Создание сред для экспериментов с потенциально опасным программным обеспечением. На виртуальной машине вы можете безболезненно опробовать новый чистильщик реестра или дисковую утилиту. Вы также можете без всякого риска устанавливать прикладное ПО, которое может при определенных условиях повредить систему или ваши данные. В этом случае виртуальная машина выступает в роли «песочницы», в которой играются ваши программы. Вы можете спокойно наблюдать за их работой и изучать их, не беспокоясь при этом за сохранность данных.
* Удобное и простое резервное копирование пользовательских сред. В конечном счете, виртуальная машина - это всего лишь папка с файлами на вашем компьютере, которая может быть скопирована на резервный носитель, а потом легко восстановлена. В этом случае не требуется создавать образов жесткого диска, чтобы сделать резервную копию вашей системы.
* Возможность обучения работе с операционными системами, отличными от вашей хостовой. Безусловно, можно установить вторую ОС параллельно с вашей основной системой, но в таком случае, если вам понадобится какое-либо приложение из основной системы, вам придется перезагрузиться. В этом случае виртуальная машина идеальный вариант: вы запускаете нужную вам ОС параллельно с хостовой и переключаетесь между ними в случае необходимости. Во многих системах обмен файлами между гостевой и хостовой системой организован просто – перетаскиванием файлов и папок указателем мыши.
Мы перечислили лишь основные варианты использования виртуальных машин дома, конечно, есть и другие, более специфические сферы их применения. Но настоящие перспективы при использовании настольных систем виртуализации открываются в бизнесе, где важны, прежде всего, доступность и экономия времени, и затрат на приобретение дополнительного оборудования.
Сравнительный обзор настольных платформ виртуализации Ведущие компании в сфере производства настольных платформ виртуализации за последние два года много сделали, чтобы максимально упростить их использование и сделать доступными даже самому неискушенному пользователю. Лидерами в производстве систем виртуализации для конечных пользователей на данный момент являются компании: VMware с продуктами VMware Workstation, VMware ACE и VMware Fusion, Microsoft с продуктом Virtual PC, Parallels, продвигающая свою платформу виртуализации для Mac OS с продуктом Parallels Desktop for Mac, и компания InnoTek с бесплатной платформой с открытым исходным кодом VirtualBox. Кратко рассмотрим возможности некоторых из этих продуктов. VMware Workstation Компания VMware является на сегодняшний день безусловным лидером в области настольных систем виртуализации. Ее продукты просты в использовании, обладают широкими функциональными возможностями и отличаются высоким быстродействием. На продукт VMware Workstation ориентируются практически все производители настольных платформ виртуализации. Процесс создания виртуальной машины и установки гостевой операционной системы не вызывает особых трудностей: при создании необходимо указать объем оперативной памяти, выделяемой под гостевую систему, тип и размер виртуального диска, папку, где будут расположены файлы виртуальной машины и тип устанавливаемой гостевой ОС. В качестве установочного дистрибутива гостевой системы может использоваться загрузочный CD или DVD-диск или ISO-образ. После установки операционной системы в виртуальной машине обязательно необходимо установить VMware Tools и отключить все ненужные эмулируемые устройства в настройках в целях оптимизации быстродействия. Также можно создать мгновенный снимок (snapshot) «чистого» состояния гостевой системы, при этом все данные виртуальных дисков на этот момент будут сохранены, и в любое время можно будет вернуться к их сохраненному состоянию. К ключевым особенностям VMware Workstation можно отнести:* Поддержку различных типов виртуальных дисков (эмулируются контроллеры как для IDE, так и для SCSI дисков):
* фиксированного размера (Preallocated) или растущие по мере заполнения (Growing), при этом первые оптимизированы по быстродействию, а вторые удобны тем, что не занимают много места до того, как будут заполнены
* независимые (Independent) диски, на которые не оказывает влияния создание снимков состояния операционной системы. Такие диски удобны для организации хранилищ файлов, изменение которых не требуется при работе со снимками состояний гостевой системы
* поддержка дисков, состояние которых не сохраняется при выключении виртуальной машины
* возможность прямой записи на физический диск
* Поддержку различных типов сетевого взаимодействия между виртуальными машинами, включая объединение виртуальных машин в «команды» (Teams), что позволяет создавать виртуальные подсети, состоящие из виртуальных машин с различным количеством виртуальных сетевых адаптеров (до трех). Виртуальный сетевой интерфейс при этом может работать в трех различных режимах:
* Bridged Networking – виртуальная машина разделяет ресурсы сетевой карты с хостовой операционной системой и работает с внешней по отношению к ней сетью как самостоятельная машина.
* Host-only Networking – виртуальная машина получает IP-адрес в собственной подсети хоста от DHCP-сервера VMware. Соответственно, работать в сети можно только с другими виртуальными машинами на этом хосте и с ОС самого хоста.
* NAT – виртуальная машина работает также в собственной подсети хоста (но другой), однако, через NAT сервер VMware, может инициировать соединения во внешнюю сеть. Из внешней сети инициировать соединение с такой виртуальной машиной невозможно. В пределах хоста сетевое взаимодействие обеспечивается.
* Диски также можно монтировать в хостовую систему с помощью утилиты vmware-mount и расширять с помощью утилиты vmware-vdiskmanager (эта утилита служит также для выполнения еще ряда действий над виртуальными дисками).
* Возможность простого обмена файлами с помощью интерфейса Drag&Drop, а также путем создания общих папок (Shared Folders) между хостом и гостевой ОС.
* Поддержку большого списка гостевых и хостовых операционных систем.
В последней версии VMware Workstation 6 включены также следующие полезные функции:
* полная поддержка интерфейса USB 2.0
* возможность записи активности виртуальной машины
* интегрированный продукт VMware Converter (для Windows-хостов) для импорта виртуальных машин других производителей
* запуск виртуальной машины в качестве сервиса
Стоит также отметить, что продукт VMware Workstation является на данный момент единственной платформой виртуализации, экспериментально поддерживающей Direct-3D в гостевых операционных системах. Основным и, пожалуй, единственным недостатком этой платформы является тот факт, что она не бесплатна. VirtualBox Компания InnoTek недавно появилась на рынке настольных систем виртуализации с неожиданным бесплатным решением с открытым исходным кодом. В то время, когда, казалось бы, новую платформу виртуализации сложно вывести на достойный уровень, компания InnoTek добилась неожиданно быстрого успеха и народного признания.
Многие блоггеры, лояльно настроенные к компании VMware, тем не менее, заявили, что на их десктопах виртуальные машины на платформе VirtualBox работают заметно быстрее, чем виртуальные машины в VMware Workstation. К тому же до недавнего времени платформа VirtualBox была доступна только для Linux и Windows хостов, а в конце апреля появилась первая сборка для Mac OS X, где планируется конкуренция платформы с такими «монстрами» систем виртуализации, как Parallels и VMware. И, безусловно, у нее есть все шансы на победу. Учитывая полную открытость платформы и ее бесплатность, множество энтузиастов готовы взяться за доработку платформы и наращивание функционала, будем надеяться, без ущерба ее производительности. На данный момент VirtualBox обладает не такой широкой функциональностью, как ведущие платформы, не поддерживает 64-битные системы и сетевое взаимодействие с Windows Vista, но на сайте www.virtualbox.org можно получить оперативную информацию, над какими функциями системы ведется работа. На данный момент платформа обладает следующими основными возможностями:
* Достаточно большой список поддерживаемых хостовых и гостевых операционных систем.
* Поддержка множественных снимков текущего состояния гостевой системы (snapshots).
* Динамически расширяющиеся и фиксированного размера диски.
* Возможность установки Guest Additions (аналог VMware Tools) для повышения степени интеграции с хостовой ОС
Безусловно, касательно функциональности, VirtualBox является весьма незрелым продуктом, однако показатели его быстродействия говорят, что у платформы есть будущее, и сообщество Open Source приложит все усилия к его совершенствованию и развитию. Заключение Технологии виртуализации для персональных компьютеров становятся все ближе к конечному пользователю и сейчас могут использоваться как повседневной работе сотрудников организаций, так и на домашних компьютерах для создания защищенных или изолированных персональных сред. К тому же использование виртуальных машин на десктопах не ограничивается описанными вариантами. Например, в виртуальной машине VMware, в оконном режиме консоли гостевой операционной системы, можно выставить большее поддерживаемого монитором разрешение, при этом у окна гостевой системы появятся полосы прокрутки. Это позволит протестировать веб-сайт или приложение на высоких разрешениях при отсутствии соответствующего монитора. Этот пример показывает, что варианты использования виртуальных машин на настольных компьютерах зависят от вашей фантазии. А стремительно развивающиеся пользовательские платформы виртуализации помогут вам в удовлетворении ваших потребностей.
mognovse.ru
2.1. ORACLE VirtualBox — универсальная бесплатная виртуальная машина
VirtualBox — очень простой, мощный и бесплатный инструмент для виртуализации, развивающийся благодаря поддержжке знаменитой корпорации ORACLE. Он распространяется бесплатно, с открытым исходным кодом. VirtualBox
позволяет устанавливать в качестве «гостевой» практически любую современную операционную систему, будь то Windows, MacOS или любой из многочисленных представителей семейства Linux.
Преимуществом VirtualBox является простой и понятный пользовательский интерфейс. Хорошо сделан перевод на русский язык. Все основные функции вынесены в виде кнопок под меню. Создание виртуальных машин выполняется с помощью пошагового мастера.
VirtualBox поддерживает работу с сетями, поэтому ваша виртуальная ОС сможет легко выйти в Интернет. Очень полезной является функция «снимков» операционной системы. Виртуальная машина записывает на винчестер «точки восстановления», к которым вы в любой момент можете откатить гостевую систему в случае возникновения ошибок или сбоев.
2.2 Windows Visual PC — виртуальная машина от Microsoft
Windows Virtual PC — виртуальная машина для работы только и исключительно с Windows. Установить на Visual PC операционную систему Linux или MacOS просто невозможно.
Visual PC позволяет запускать несколько разных копий Windows на одном компьютере. Поддерживается работа с операционными системами Microsoft разных поколений, в том числе с 64-битными.
Плюсом Visual PC является возможность задать, какая из запущенных виртуальных машин будет более приоритетной по сравнению с другими. При этом «хостовый» компьютер сможет в автоматическом режиме выделять под ее нужды большее количество ресурсов за счёт других виртуальных систем, если «гостевой» системе это необходимо.
Моноплатформенность виртуальной машины Visual PC является её главным недостатком, впрочем, если требуется тестировать только разные версии Windows, это не актуально. Некоторым недостатком можно считать менее функциональный и менее удобный чем в VirtualBox интерфейс. В остальном Visual PC вполне надёжный инструмент, позволяющий тестировать операцонные системы Microsoft.
2.3 VMware Workstation — для серьёзных задач
VMware Workstation – мощная, платная, максимально-надёжная программа для виртуализации, которая поддерживает работу с Windows и Linux. Для виртуализации MacOS, данная машина не предназначена.
Благодаря высокой надёжности и широчайшей функциональности VMware Workstation часто используется не просто для тестирования, а даже для постоянной работы виртуальных машин в качестве серверов даже для бизнес-приложений, будь то фаервол, отеляющий сеть организации от Интернет или даже сервер какой-либо базы данных.
VMware Workstation можно очень гибко настраивать, включая множество параметров сетевых подключений для работы с интернетом. Система имеет собственный виртуальный 3D-ускоритель, который позволяет получить высокое качество графики.
Интерфейс VMware Workstation достаточно грамотно организован, поэтому освоиться со всем её богатым функционалом довольно легко. В программе полностью поддерживается русский язык.
Необходимо отметить, что у VMware Workstation есть бесплатный «младший брат» — VMWare Player. В отличие от версии Workstation, плеер не умеет создавать виртуальные машины, но позволяет запускать ранее созданные. Эта программа будет полезна в случаях тестирования, когда, к примеру, разработчик какой-либо автоматизированной системы передат её на ознакомление именно в виде образа виртуальной машины. Эта практика получает всё большее распространение, поскольку избавляет пользователя от необходимости разворачивать незнакомую программу самостоятельно.
Практическая часть
Вопросы для самоконтроля
www.kfed.ru
Аннотация: Данная лекция посвящена установке и настройки виртуальной машины на физическом (настольном) ПК. Рассморены возможности установки ОС на виртуальный ПК как из ISO образа, так и с компакт диска, а также тема клонирования виртуальной машины.
Виртуальную машину VMware Workstation часто применяют для одновременного запуска нескольких операционных систем на одном физическом компьютере. Наиболее важные функции VMware Workstation 6 включают в себя:
Виртуальная машина (ВМ) - программная система, эмулирующая аппаратное обеспечение некоторой платформы. ВМ может эмулировать работу, как отдельных компонентов аппаратного обеспечения, так и целого реального компьютера (включая процессор, BIOS, оперативную память, жёсткий диск и другие периферийные устройства). В последнем случае в ВМ, как и на реальный компьютер, можно устанавливать операционные системы (например, Windows). На одном компьютере может функционировать несколько виртуальных машин.
Ближайшими конкурентами VMware Workstation на данный момент являются продукты VirtualBox и Virtual PC, которые обладают существенно меньшими возможностями по сравнению с VMware Workstation. Ниже мы создадим две виртуальные машины (или более) и установим на них операционную систему Windows XP, для того, чтобы позднее настроить между этими станциями сетевое взаимодействие. Порядок наших ближайших действий будет таким:
Для копирования файлов VMware Workstation 6 на физический ПК запускаем файл
и выполняем весь процесс установки этой программы с настройками по умолчанию. После русификации программы появится окно, изображенное на рис. 12.1.
Нажмем на кнопку и будем создавать виртуальную машину не по шаблону (переключатель Обычная), а с нашими настройками (переключатель Специальная) – рис. 12.2.
Рис. 12.2. Устанавливаем переключатель СпециальнаяСледующие 2 окна оставляем с настройками по умолчанию ( рис. 12.3 и рис. 12.4).
Рис. 12.3. Виртуальная машина версии Workstation 6 Рис. 12.4. Сеть будет основана на Windows XPСтандартный путь для нахождения файлов виртуальной машины мы изменим ( рис. 12.5).
Рис. 12.5. Указываем путь для нахождения файлов виртуальной машиныСледующие 2 окна оставляем с настройками по умолчанию ( рис. 12.6 и рис. 12.7).
Рис. 12.6. Окно настройки процессора Рис. 12.7. Для Windows XP рекомендованная память 256 Мбwww.intuit.ru