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

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

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

Ключевые задачи любой ОС сводятся к помощи пользователю в решении его задач. Для этих целей разработчики создают прикладное ПО, которое максимально информативно взаимодействует с ним. Хороший пример подобных программ – текстовые редакторы и процессоры (Блокнот, Microsoft Word), графические редакторы (Paint, Microsoft Visio), электронные таблицы (Microsoft Excel), системы управления базами данных (Microsoft Access, Microsoft SQL Server), браузеры (Internet Explorer) и т. п. Все множество прикладных программ называется прикладным программным обеспечением (application software).
Для того, чтобы создать прикладные программы, специалисты используют широкий перечень средств, начиная от языков программирования и заканчивая специальными отладчиками, способными создать готовый программный продукт – они-то и относятся к числу так называемого «инструментального» инструментального ПО (к примеру, Microsoft Visual Studio).
Назначение операционной системы
Важно отметить, что наравне с прикладными и инструментальными программами операционные системы занимают особое место. Их основная задача – создать понятный и удобный способ взаимодействия между пользователем и приложениями с одной стороны, и аппаратным обеспечением с другой.
Здесь же стоит отметить, что к системному ПО относятся также системные утилиты – программы, которые выполняют строго определенную функцию по обслуживанию вычислительной системы. Например, утилиты диагностируют состояние системы, выполняют дефрагментацию файлов на диске, осуществляют сжатие (архивирование) данных. В некоторых случаях утилиты устанавливаются вместе с ОС.
Далее рассмотрим, какие функции должны выполнять современные операционные системы.
Функции операционной системы
- обеспечивают работоспособность программ, становясь для них, своего рода, «базисом»;
- обеспечивают управление памятью, как оперативной, так и постоянной;
- управляют вводом-выводом, поддерживают обмен информацией между пользователем и устройством;
- поддерживают пользовательский интерфейс;
- активизируют инструменты для предотвращения взлома системы злоумышленниками;
- организуют сетевое взаимодействие.
Структура операционной системы
Современные процессоры имеют минимум два режима работы – привилегированный (supervisor mode) и пользовательский (user mode).
Отличие между ними заключается в том, что в пользовательском режиме недоступны команды процессора, связанные с управлением аппаратным обеспечением, защитой оперативной памяти, переключением режимов работы процессора. В привилегированном режиме процессор может выполнять все возможные команды.
Приложения, выполняемые в пользовательском режиме, не могут напрямую обращаться к адресным пространствам друг друга – только посредством системных вызовов.
Все компоненты операционной системы можно разделить на две группы – работающие в привилегированном режиме и работающие в пользовательском режиме, причем состав этих групп меняется от системы к системе.
Основным компонентом операционной системы является ядро (kernel). Функции ядра могут существенно отличаться в разных системах; но во всех системах ядро работает в привилегированном режиме (который часто называется режим ядра, kernel mode).
Термин «ядро» также используется в разных смыслах. Например, в Windows термин «ядро» (NTOS kernel) обозначает совокупность двух компонентов – исполнительной системы (executive layer) и собственно ядра (kernel layer)
Существует два основных вида ядер – монолитные ядра (monolithic kernel) и микроядра (microkernel). В монолитном ядре реализуются все основные функции операционной системы, и оно является, по сути, единой программой, представляющей собой совокупность процедур. В микроядре остается лишь минимум функций, который должен быть реализован в привилегированном режиме: планирование потоков, обработка прерываний, межпроцессное взаимодействие. Остальные функции операционной системы по управлению приложениями, памятью, безопасностью и пр. реализуются в виде отдельных модулей в пользовательском режиме.
Ядра, которые занимают промежуточные положение между монолитными и микроядрами, называют гибридными (hybrid kernel).
Примеры различных типов ядер:
- монолитное ядро – MS-DOS, Linux, FreeBSD;
- микроядро – Mach, Symbian, MINIX 3;
- гибридное ядро – NetWare, BeOS, Syllable.
Это еще раз подтверждает тот факт, что в зависимости от текущих потребностей пользователей может быть выбрана как одна, так и другая операционная система.
Кроме ядра в привилегированном режиме (в большинстве операционных систем) работают драйверы (driver) – программные модули, управляющие устройствами.
В состав операционной системы также входят:
- системные библиотеки (system DLL – Dynamic Link Library, динамически подключаемая библиотека), преобразующие системные вызовы приложений в системные вызовы ядра;
- пользовательские оболочки (shell), предоставляющие пользователю интерфейс – удобный способ работы с операционной системой.
Пользовательские оболочки реализуют один из двух основных видов пользовательского интерфейса:
- текстовый интерфейс (Text User Interface, TUI), другие названия – консольный интерфейс (Console User Interface, CUI), интерфейс командной строки (Command Line Interface, CLI);
- графический интерфейс (Graphic User Interface, GUI).
Пример реализации текстового интерфейса в Windows – интерпретатор командной строки cmd.exe; пример графического интерфейса – Проводник Windows (explorer.exe).
Классификация операционных систем

Классификацию операционных систем можно осуществлять несколькими способами:
1. По способу организации вычислений:
- системы пакетной обработки (batch processing operating systems) – целью является выполнение максимального количества вычислительных задач за единицу времени; при этом из нескольких задач формируется пакет, который обрабатывается системой;
- системы разделения времени (time-sharing operating systems) – целью является возможность одновременного использования одного компьютера несколькими пользователями; реализуется посредством поочередного предоставления каждому пользователю интервала процессорного времени;
- системы реального времени (real-time operating systems) – целью является выполнение каждой задачи за строго определённый для данной задачи интервал времени.
2. По типу ядра:
- системы с монолитным ядром (monolithic operating systems);
- системы с микроядром (microkernel operating systems);
- системы с гибридным ядром (hybrid operating systems).
3. По количеству одновременно решаемых задач:
- однозадачные (single-tasking operating systems);
- многозадачные (multitasking operating systems).
4. По количеству одновременно работающих пользователей:
- однопользовательские (single-user operating systems);
- многопользовательские (multi-user operating systems).
5. По количеству поддерживаемых процессоров:
- однопроцессорные (uniprocessor operating systems);
- многопроцессорные (multiprocessor operating systems).
6. По поддержке сети:
- локальные (local operating systems) – автономные системы, не предназначенные для работы в компьютерной сети;
- сетевые (network operating systems) – системы, имеющие компоненты, позволяющие работать с компьютерными сетями.
7. По роли в сетевом взаимодействии:
- серверные (server operating systems) – операционные системы, предоставляющие доступ к ресурсам сети и управляющие сетевой инфраструктурой;
- клиентские (client operating systems) – операционные системы, которые могут получать доступ к ресурсам сети.
8. По типу лицензии:
- открытые (open-source operating systems) – операционные системы с открытым исходным кодом, доступным для изучения и изменения;
- проприетарные (proprietary operating systems) – операционные системы, которые имеют конкретного правообладателя; обычно поставляются с закрытым исходным кодом.
9. По области применения:
- операционные системы мэйнфреймов – больших компьютеров (mainframe operating systems);
- операционные системы серверов (server operating systems);
- операционные системы персональных компьютеров (personal computer operating systems);
- операционные системы мобильных устройств (mobile operating systems);
- встроенные операционные системы (embedded operating systems);
- операционные системы маршрутизаторов (router operating systems).
Требования к операционным системам
Основное требование, предъявляемое к современным операционным системам – выполнение функций, перечисленных выше в параграфе «Функции операционных систем». Кроме этого очевидного требования существуют другие, часто не менее важные:
- расширяемость – возможность приобретения системой новых функций в процессе эволюции; часто реализуется за счет добавления новых модулей;
- переносимость – возможность переноса операционной системы на другую аппаратную платформу с минимальными изменениями;
- совместимость – способность совместной работы; может иметь место совместимость новой версии операционной системы с приложениями, написанными для старой версии, или совместимость разных операционных систем в том смысле, что приложения для одной из этих систем можно запускать на другой и наоборот;
- надежность – вероятность безотказной работы системы;
- производительность – способность обеспечивать приемлемые время решения задач и время реакции системы.
Резюме
Вполне очевидно, что операционные системы занимают одно из важнейших значений в программном и аппаратном обеспечении. Без ОС фактически не могут работать другие программы. Именно поэтому их разработке уделяется особое внимание с привлечением наиболее профессиональных и квалифицированных специалистов.
В зависимости от реальных потребностей пользователей, может быть подобрана как одна, так и другая операционная система.