Надо Знать

добавить знаний



Операционная система



План:


Введение

Интерфейс операционной системы GNU / Linux, дистрибутив Ubuntu

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

Операционная система обычно состоит из ядра операционной системы и базового набора прикладного программного обеспечения.


1. Функции операционной системы

Главные функции:

Дополнительные функции :

  • Параллельное или псевдопаралельне выполнения задач ( многозадачность).
  • Распределение ресурсов вычислительной системы между процессами.
  • Организация надежных вычислений (невозможности влияния процесса на течение других), основана на разграничении доступа к ресурсам.
  • Взаимодействие между процессами: обмен данными, синхронизация.
  • Защита самой системы, а также пользовательских данных и программ от действий пользователя или программ.
  • Многопользовательский режим работы и разделения прав доступа ( аутентификация, авторизация).

2. Базовые сведения

Понятие операционной системы напрямую связано с такими понятиями, как:

  • Файловая система - набор файлов (возможно пустой), организованных по заранее определенным правилам. Если организация файлов в файловую систему происходит с использованием каталогов, то такая файловая система называется иерархической.
  • Программа - файл, содержащий набор инструкций для выполнения. В качестве исполнителя инструкциям программы могут выступать:
    • центральный процессор - если программа содержит машинный код (обычно получают путем компиляции исходного текста программы, написанного одним из компилируемых языков);
    • интерпретатор - другая программа, которая обеспечивает распознавание и выполнение инструкций (в отдельных случаях интерпретатор также называют виртуальной машиной).
  • Задача - программа в процессе выполнения (в терминологии операционных систем UNIX используют термин " процесс ").
  • Команда - имя, которое использует пользователь ОС или другая программа для выполнения указанной программы (может совпадать с именем файла с программой) или поименованным действия (встроенной команды).

Относительно своего назначения, операционные системы бывают [ ]

  • универсальные (для общего использования);
  • специальные (для решения специальных задач);
  • специализированные (выполняются на специальном оборудовании);
  • однозадачные (в отдельный момент времени могут выполнять только одну задачу);
  • многозадачные (в отдельный момент времени способны выполнять более одной задачи);
  • однопользовательские (в системе отсутствуют механизмы ограничения доступа к файлам и на использование ресурсов системы);
  • многопользовательские (система вводит понятие "владелец файла" и обеспечивает механизмы ограничения на использование ресурсов системы (квоты)), все многопользовательские операционные системы также многозадачными;
  • реального времени (система поддерживает механизмы выполнения задач реального времени, то есть такие, для которых любые операции всегда выполняются по заранее предсказуем и неизменный при следующих исполнениях время).

Относительно способа установки (инсталляции) операционной системы, операционные системы бывают [ Источник? ]

  • встроенные (которые хранятся в энергонезависимой памяти вычислительной машины или устройства без возможности замены в процессе эксплуатации оборудования);
  • невмонтовани (?) (такие, что устанавливаются на одно из устройств хранения информации вычислительной машины с возможностью последующей замены в процессе эксплуатации).

Относительно соответствия стандартам операционные системы бывают:

  • стандартные (соответствуют одному из общепринятых открытых стандартов, зачастую POSIX);
  • нестандартные (в том числе такие, которые разрабатываются в соответствии с корпоративными стандартами).

Относительно возможностей расширения операционные системы бывают:

  • закрытые (не разрешают расширение функциональности ОС);
  • открытые (строятся по технологиям, которые обеспечивают возможности расширения функциональности ОС).

Относительно возможностей внесения изменений в исходный код операционные системы бывают:

  • открытые (англ. open source) - с открытым программным кодом;
  • собственнические (англ. proprietary) - коммерческие с закрытым кодом.

3. Составляющие ОС

В состав операционной системы входят:

  • ядро операционной системы, что обеспечивает распределение и управление ресурсами вычислительной системы;
  • базовый набор прикладного программного обеспечения, системные библиотеки и программы обслуживания.

Ядро системы - это набор функций, структур данных и отдельных программных модулей, которые загружаются в память компьютера при загрузке операционной системы и обеспечивают три типа системных сервисов:

  • управление вводом-выводом информации (подсистема ввода-вывода ядра ОС);
  • управления оперативной памятью (подсистема управления оперативной памятью ядра ОС);
  • управления процессами (подсистема управления процессами ядра ОС).

Каждая из этих подсистем представлена ​​соответствующими функциями ядра системы.

Многозадачные операционные системы также включают еще одну обязательную составляющую - механизм поддержки многозадачности. Эта составляющая не предоставляется в качестве системного сервиса и поэтому не может быть отнесена к одной из подсистем.

Существует три основных механизма обеспечения многозадачности ( планирования задач):

  1. путем предоставления процессора отдельной задачи на квант времени, который определяется самой задачей (кооперативная многозадачность; последнее время практически не используется или область использования значительно ограничена внутри процессов);
  2. путем предоставления процессора отдельной задачи на квант времени, который определяется оборудованием вычислительной системы - интервальным таймером;
  3. выделение под отдельную задачу отдельного процессора в многопроцессорных системах.

В первых двух случаях на каждом из процессоров в отдельно взятый момент времени рассчитывается только одна задача, но за счет достаточно малого кванта времени (в пределах миллисекунд), что поочередно предоставляется каждой из задач, возникает иллюзия одновременного выполнения в системе многих задач.

В современных системах, как правило комбинируется методы 2 и 3.


4. Требования к оборудованию

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

  • поддержка страничного разделения оперативной памяти с возможностью аппаратной защиты страниц от модификации данных отдельными задачами (процессами);
  • поддержка защищенного режима выполнения процессора (режима ядра ОС), который предусматривает возможность выполнения операций процессора по управлению оборудованием системы, при этом попытка выполнить подобную операцию в приложении блокируется аппаратно.

Могут существовать и другие требования.


5. Подсистемы ядра ОС

5.1. Интерфейс ядра операционной системы

Функции ядра операционной системы могут быть выполнены в результате выполнения в приложениях специальных функций - системных вызовов. Назначение системного вызова состоит в том, что приложения не в состоянии самостоятельно определить, по каким адресам находятся функции ядра.

Системный вызов в один из машинно-зависимых способов реализует механизм получения адресов функций ядра и передачу в эти функции необходимых параметров системного вызова, а также получения результата системного вызова. Чаще системные вызовы обеспечиваются через систему прерываний, благодаря чему адрес функции ядра не только рассчитывается аппаратно (в процессе обработки прерывания), но и обеспечивается защита информационных ресурсов ядра.

Системные вызовы чаще всего синтаксис функции языка программирования, на котором написано ядро ОС.


5.2. Подсистема управления вводом-выводом

Подсистема управления вводом-выводом реализует базовые механизмы обмена данными между устройствами ввода-вывода и оперативной памятью вычислительной машины и обеспечивает организацию файлов в файловые системы.

Операция ввода выполняется как чтение данных с внешнего устройства в оперативную память, операция вывода - как запись данных из оперативной памяти на внешнее устройство.

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

В отдельных операционных системах подсистема управления вводом-выводом также может внедрять механизмы, призванные повысить скорость обмена данными между задачами и файлами. Чаще всего используется механизм буферизации (кэширования) данных, который заключается в том, что при чтении данных из файла подсистема пытается одну операцию ввода читать данные блоками удобного (обычно достаточно большого) размера, а не порциями, которые запрашивает задача. Благодаря этому за одну операцию ввода в оперативную память попадают также дополнительные данные, которые хранятся в кэше и в дальнейшем передаются в программу без дополнительных обращений к устройству. Подобным образом этот механизм работает и при выполнении операций записи.


5.3. Подсистема управления оперативной памятью

Любая программа может выполняться только тогда, когда она загружена в оперативную память, так же, любые данные из файлов могут обрабатываться только тогда, когда они загружены в оперативную память. Загрузки программы и данных в оперативную память приводит к тому, что в оперативной памяти одновременно находятся сразу несколько компонентов: ядро ​​операционной системы, командный интерпретатор, программа, выполняемая, и данные, которые обрабатываются. Кроме того, программа в процессе своего выполнения может обращаться к подсистеме управления оперативной памятью с запросами на выделение дополнительной - динамической - оперативной памяти.

В многозадачных операционных системах количество компонентов, которые одновременно могут находиться в оперативной памяти возрастает пропорционально количеству задач и может достигать сотен.

Подсистема управления оперативной памятью обеспечивает распределение оперативной памяти между различными компонентами, а также распределяет память под кэш системы ввода-вывода.

В отдельных многозадачных операционных системах подсистема управления оперативной памятью также обеспечивает виртуализацию оперативной памяти, благодаря чему каждая задача (процесс) получает собственную виртуальную память, причем таким образом, что недостаток реальной (физической) памяти покрывается за счет перераспределения данных между оперативной памятью и внешним накопителем и перемещение данных между физической оперативной памятью и внешним накопителем защищен от задач. Это перемещение называется пейджинга ( англ. paging ) Или свопинга ( англ. swapping - Обмен) - в зависимости от терминологии конкретной ОС.

Внедрение механизма виртуализации оперативной памяти позволяет получить два полезных последствия:

  • каждая задача фактически выполняется в собственном адресов пространстве, то есть, как если бы она выполнялась в однозадачных операционной системе, благодаря чему значительно уменьшается влияние отдельных задач одной на другую и на ядро ​​системы, а благодаря этому - и надежность системы;
  • каждая задача получает столько виртуальной оперативной памяти, сколько нужно, а не столько, сколько имеющейся физической оперативной памяти.

Виртуализация оперативной памяти требует аппаратной поддержки и обычно обеспечивается через специальную таблицу страниц памяти, содержащую соответствия между виртуальными и физическими адресами.


5.4. Подсистема управления задачами (процессами)

Подсистема управления задачами (процессами) обеспечивает создание задачи (процесса), загрузки программного кода и его выполнения и завершения задачи (процесса).

В многозадачных системах подсистема управления задачами (процессами) также обеспечивает механизмы зависимостей между задачами, в том числе: синхронизацию задач и наследование свойств.

5.5. Средства мижпроцеснои взаимодействия

Взаимодействие процессов позволяет процессам синхронизировать свою работу, совместно и согласованно использовать общие ресурсы и совместно выполнять обработку данных.

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


6. Дополнительная функциональность операционных систем

6.1. Безопасность

Безопасность ОС базируется на двух идеях:

  1. ОС предоставляет прямой или косвенный доступ к ресурсам вроде файлов на локальном диске, привилегированных системных вызовов, личной информации о пользователях и служб, представленных запущенными программами;
  2. ОС может разделить запросы ресурсов от авторизованных пользователей, позволив доступ, и неавторизованных, запретив его.

Запросы, в свою очередь, также делятся на два типа:

  1. Внутренняя безопасность - уже запущенные программы. На некоторых системах программа, поскольку она уже запущена, не имеет никаких ограничений, но все же типично она имеет идентификатор, который используется для проверки запросов к ресурсам.
  2. Внешняя безопасность - новые запросы из-за пределов компьютера, например регистрация с консоли или сетевое соединение. В этом случае происходит процесс авторизации с помощью имени пользователя и пароля, который подтверждает, других способов например магнитные карточки или биометрические данные.

В дополнение к модели разрешить / запретить системы с повышенным уровнем безопасности также следят за деятельностью пользователей, что позволяет позже дать ответ на вопросы типа "Кто читал этот файл?"


6.2. Графический интерфейс пользователя

Большинство современных операционных систем имеют графический интерфейс пользователя (ИК, англ. Graphical User Interfaces, GUIs , Произносится как "Гуизо"). В некоторых старых ОС ИК встроенный в ядро, как например в оригинальных реализациях Microsoft Windows или MacOS. Большинство современных ОС являются модульными и графическая подсистема в них отделена от ядра (как например в Линукс, МакОС Х и частично в Виндовз).

Многие операционные системы позволяют пользователю установить любой графический интерфейс на собственный выбор. Типичным примером в большинстве Юникс-систем (BSD, Linux, Minix) является оконная система X в сочетании с графическим менеджером KDE или Gnome. Для Юникс-систем графический интерфейс не является необходимым.

Графический интерфейс пользователя непрерывно развивается. Например, интерфейс Windows модифицируется каждый раз при выпуске новой основной версии, а ИК MacOS была кардинально изменена после выпуска MacOS X в 2001 году.


6.3. Драйверы устройств

Драйверы - это особый тип компьютерных программ, разработанных для корректного взаимодействия с устройствами. Они представляют интерфейс для взаимодействия с устройством через определенное шину компьютера, к которой данное устройство подключено, с помощью ряда команд что отправляют и получают данные с устройства. Эти программы зависящие как от устройства так и от операционной системы, то есть каждое устройство требует своего драйвера под каждую ОС.

Ключевым моментом проектирования драйверов является абстрагирование. Каждая модель устройства (даже если устройства одинакового класса) является уникальной. Новые модели часто работают быстрее или производительнее и иначе контролируются. ОС не может знать, как контролировать каждое устройство сейчас и в будущем. Для решения этой проблемы ОС только задает правила поведения класса устройств. Задачей драйвера является превращение этих правил в специфические для каждого устройства команды управления.


6.4. Работа в сети

В большинстве современных ОС реализована поддержка стека протоколов TCP / IP. Это значит что они могут взаимодействовать в сети, доступаючись к ресурсам друг друга.

Многие ОС также поддерживают один или несколько специфических протоколов, например SNA на системах от IBM, DECnet на системах от Digital Equipment Corporation, и Microsoft -специфические протоколы для Windows. Для определенных задач виористовуються специфические протоколы, например NFS для работы с файлами по сети.


7. История

Первые компьютеры вообще не имели ОС. В начале 1960-х они лишь комплектовались набором инструментов для разработки, планирования и выполнения задач. Среди прочих можно выделить системы от UNIVAC и Control Data Corporation.

К концу 1960-х, однако, был разработан целый ряд операционных систем, в которых были реализованы все или большинство из вышеперечисленных функций. К ним можно отнести "Atlas" (Манчестерский университет), "CTTS" и "ITSS" ( Массачусетский технологический институт (МТИ)), "THE" (Ейндховенський технологический университет), "RS4000" (Университет Орхуса) и другие (на тот момент их насчитывалось около сотни)

Наиболее развитые ОС того времени, такие как "OS/360" (компания " IBM" ), "SCOPE" (компания "CDC") и завершен уже в 1970-х годах "MULTICS" (МТИ и компания " Bell Labs" ), предусматривали возможность использования многопроцессорных системы.

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

В 1969 году сотрудники МТИ Кен Томпсон, Денис Ритчи и Брайан Керниган с коллегами разработали и реализовали ОС " Юникс" ("Unix"; первично "UNICS", в противоположность "MULTICS"). Новая ОС вобрала в себя многие черты предшественников, но в противовес им имела целый ряд преимуществ:

  • простая метафорика (два ключевых понятия - процесс и файл)
  • компонентная архитектура (принцип "одна программа - одна функция", или иначе "каждая программа должна делать только одну работу, но делать ее хорошо" плюс мощные средства объединения этих программ для решения конкретных задач);
  • минимизация ядра и количества системных вызовов
  • независимость от аппаратной архитектуры и реализация на машинно независимой языке программирования (для этого была разработана язык "C";
  • унификация файлов (что-либо в системе является файлом, к которому можно доступиться по общим для всех правилам).

Благодаря удобству прежде всего в качестве инструментальной среды "Юникс" очень тепло встретили в университетах, а затем и в отрасли в целом и вскоре она стала прототипом единой ОС, которую можно было использовать в самых вычислительных системах, и - более того - быстро и с минимумом усилий перенести на другую аппаратную архитектуру.

В конце 1970-х годов сотрудники Калифорнийского университета в Беркли внесли ряд существенных усовершенствований в исходные коды Юникс, включая реализацией стека сетевых протоколов TCP / IP. Их разработка стала известной под именем BSD ( англ. Berkeley Software Distribution ).

Из-за конфликта с " Bell Labs" Ричард Столмен поставил задачу реализовать полностью независимую от авторских прав ОС на основе Юникс, основав проект " GNU" ( англ. рекурсивсне сокращение "GNU's Not Unix" - "ГНЮ НЕ Юникс").

Вскоре "Юникс" стала стандартом де-факто, а потом и юридическим - ISO / IEC 9945. ОС, придерживались этого стандарта или опираются на него, называют "открытыми" или "стандартным". К ним относятся системы, основанные на последней версии "Юникс", выпущенной "Bell Labs" ("System V"), на разработках Университета Беркли (" FreeBSD" , " OpenBSD" , " NetBSD" ), а также ОС "Linux", разработанная сообществом во главе с Линусом Торвальдсом и в рамках проекта "GNU" (основные системные инструменты).


8. Настоящее

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

При выборе ОС ключевым моментом является архитектура компьютера (в частности центрального процессора), на которой она будет запускаться. На персональных компьютерах совместимых с IBM РС запускаются ОС семейства "Майкрософт Виндовз", "Линукс" и "БСД". На мэйнфреймах Burroughs MCP - B5000, IBM OS/360 - IBM System/360, UNIVAC EXEC 8 - UNIVAC 1108. Кроме того на большинстве современных мэйнфреймов запускаются различные варианты Линукс или Юникс, а на некоторых - версия Datacenter Windows 2003 Server. На встраиваемых системах используется большое количество встроенных ОС.


8.1. Юникс-подобные ОС

KDE запущен в Линукс.

К юникс-подобных ОС относится большое количество операционных систем, которые можно условно разделить на три категории - System V, BSD и Линукс. Само название " Юникс" является торговой маркой, принадлежащей "The Open Group", которая собственно и лицензирует каждой конкретной ОС на предмет того, соответствует ли она стандарту. Поэтому через лицензионные или другие неувязки некоторые ОС, которые фактически являются Юникс-подобными, не признаны официально .

Системы Юникс запускаются на большом количестве процессорных архитектур. Они широко используются как серверные системы в бизнесе, как окружения рабочего системы в академическом и инженерном среде. Здесь популярны свободные варианты Юникс, такие как Линукс и БСД-системы. Кроме того, некоторые из них в последнее время получают широкое распространение в корпоративной среде, особенно это касается ориентированных на конечного пользователя дистрибутивов Линукс, в первую очередь Ubuntu, Mandriva, Red Hat Enterprise Linux и Suse. Линукс также является популярной системой на столешницах разработчиков, системных администраторов и других ИТ-специалистов.

Некоторые варианты Юникс, например HP-UX компании Hewlett-Packard и AIX от IBM запускаются только на аппаратных системах своих разработчиков. Другие, как например Solaris, могут запускаться на многих аппаратных типах, включая серверы на базе x86 и ПК.


8.2. Семья Microsoft Windows

Windows XP

Сначала семья ОС Microsoft Windows проектировалась как графическая надстройка над старыми средами DOS. Современные версии разработаны на базе нового ядра ( англ. NT - New Technology , Новая технология), которое появилось в OS / 2, заимствовано из VMS. Windows запускается на 32 - и 64-битных процессорах Словарь и AMD; старыми версиями могли запускаться на процессорах DEC Alpha, MIPS, Fairchild (позднее Intergraph) Clipper и PowerPC. Проводились работы на портирование ее на архитектуру SPARC.

По состоянию на 2006 год Windows удерживает монопольное положение (около 94%) мирового рынка настольных систем, несколько теряя позиции из-за роста популярности систем с открытыми кодами. Она также используется на малых и средних серверах сетей и баз данных. В последнее время Microsoft проводит ряд маркетинговых исследований, имеющих целью показать привлекательность семейства Windows на рынке корпоративных систем.

Крупнейшее на сегодняшний день распространена версия Microsoft Windows XР, выпущенная 25 октября 2001 года. Последний выпуск Windows XP Service Pack 3 выпущенных 12 декабря 2007 года. По состоянию на 27 июня 2008 года операционная система семейства Microsoft Windows занимают 91% доли мирового рынка ОС [1]

В ноябре 2006 года, после более чем 5 лет разработки, корпорация Microsoft выпустила ОС Windows Vista, содержит большое количество нововведений и архитектурных изменений по сравнению с предыдущими версиями Windows. Среди прочих можно выделить новый интерфейс, названный Windows Aero, ряд усовершенствований безопасности, например Контроль учетной записи пользователя ( User Account Control) и новые программы для мультимедиа, например Windows DVD Maker.


8.3. Mac OS X

Рабочий стол Mac OS X "Тигр"

Mac OS X - это ряд графических ОС, разрабатываемых реализуются и поддерживаются компанией Apple. Mac OS X - это преемник оригинальной MacОС, что ее разрабатывала Apple с 1984 года. В отличие от предшественницы, Mac OS X является Юникс -системой, разработанной на основе NEXTSTEP, близкой к ветви BSD.

Первые выпуски Mac OS X были в 1999 году - Mac OS X Server 1.0, и в марте 2001 - Mac OS X 10.0. С тех пор было выпущено еще 7 версий Mac OS X в вариантах "конечный пользователь" и "сервер". Последняя версия, Mac OS X 10.7, выпущенная 15 июля 2011 года. Выпуски Mac OS X называются именами крупных животных из семейства кошачьих; Последняя версия (10.7) носит название "Лев" и содержит много архитектурных и интерфейсных решений, призванных обеспечить лучшую совместимость и интеграцию с операционной системой для мобильных устройств Apple - iOS.

Серверная версия Mac OS X Server архитектурно идентична версии для конечного пользователя, но содержит программы для управления рабочими группами и администрирование ключевых сетевых служб, включая почтовые службы, серверы каталога, доступ к файлам, веб, календарей, вики Samba, LDAP, DNS, Apache и др.. В версии 10.7 серверные компоненты устанавливаются просто как дополнительный набор программ в среде рабочей станции.


9. Облачные операционные системы

Основная идея такой системы - легкий переход от одного компьютера к другому. Здесь могут возникнуть непроизвольные аналогии с аккаунтом социальной сети, который можно подгружать на любом доступном терминале с доступом к Сети в независимости от установленной ОС. Примерно такая идея и преследуется создателями этой новой революционной операционной системы. [2]

10. Сноски

Литература


См.. также


код для вставки
Данный текст может содержать ошибки.

скачать

© Надо Знать
написать нам