Найти тему
БитОбразование

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

Понятие «операционная система»

Структура вычислительной системы: если говорить про вычислительные системы, компьютерные системы вообще, то они делятся на 2 класса компонентов:

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

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

Единственное, с чем все согласны - это то, что операционные системы относятся к категории системного программного обеспечения. С точки зрения, например, разработчика операционных систем система управления базами данных – это приложение, потому что это некая программа, которая пользуется услугами операционных систем, с точки зрения разработчика СУБД - это, конечно, системное программное обеспечение, потому что СУБД в действительности очень во многом повторяют то, что делают операционные системы в более узком контексте применительно именно к специфике работы с данными. Для разработчиков СУБД компиляторы безусловно являются приложениями. Все компиляторы являются приложениями, все системы программирования вне зависимости - используют ли они технологию баз данных или нет. С точки зрения разработчика-компилятора – это, безусловно, системное программное обеспечение, потому что они работают и действительно позволяют отобразить языки высокого уровня системы команд процессора. Какое же это прикладное программное обеспечение, когда разработчики компиляторов должны знать систему команд процессора не хуже, чем разработчики процессора. В России трудно делать с нуля компилятор, потому что негде взять документацию такого уровня, который требуется для разработчиков. У нас настолько популярно GCC, потому что документация, которая нужна для построения команд на выходе компиляторов, доступна в Америке.

Слои программного обеспечения компьютерной системы
Слои программного обеспечения компьютерной системы

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

Точки зрения на операционные системы

Операционная система как виртуальная машина. Когда-то В. П. Иванников написал: "Бытует мнение, что операционные системы представляют для пользователей некоторую виртуальную машину". В этом смысле имеется ввиду совсем не та виртуализация, которая сейчас использует понятие "в облаках" и т.д., имеется ввиду, что операционная система повышает уровень представления компьютера для разработчиков других программ. Она скрывает, например, особенности устройств внешней памяти, не заставляя разработчиков приложений впрямую работать иногда с неудобными интерфейсами этих устройств. От разработчиков других программ (и системных, и прикладных) скрываются детали обработки прерываний, распределение памятью, управление обычной памятью, основной и виртуальной. При управлении виртуальной памятью создается впечатление - иллюзия неограниченного размера оперативной памяти, при управлении процессами - иллюзия неограниченного числа процессоров. С такой виртуальной машиной, которую представляет для пользователя операционные системы, проще иметь дело разработчикам приложений. В действительности нормальному человеку, который использует ноутбук в основном для того, чтобы писать тексты и пр., в принципе нет никакого дела до того, как устроена операционная система, которая стоит в его ноутбуке. Однако, это не так, и Билл Гейтс, и Линус Торвальдс не дают нам забыть, что мы имеем дело с операционной системой, так или иначе нам об этом напоминая, например, когда мы видим сообщение от Microsoft, что виртуальная память закончилась, и это на компьютере с 64-разрядной адресацией.

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

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

- никто из пользователей в оперативном режиме не должен иметь возможности удалять или повреждать чужие файлы;

- программы одних пользователей не должны произвольным образом вмешиваться в программы других пользователей;

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

В этом смысле задачей операционных систем является безопасность работы пользователей и их программ. С одной стороны, кажется, что в наш век персональных компьютеров, когда у каждого человека есть как минимум один, а как правило, больше 2-ух или 3-ех компьютеров - трудно утверждать, что требуется некая многопользовательская работа, но центры данных продолжают развиваться, на серверах, конечно же, работает несколько пользователей. Когда ресурсов много, нецелесообразно и глупо тратить их на одного человека. Это одна из современных проблем: люди не склонны выключать свои компьютеры, которые расходуют электроэнергию, бездумно растрачивая ресурсы. Если посчитать, сколько в мире в совокупности выходит на питание компьютеров, то становится страшно. Затея с биткоинами привела к тому, что ставятся специальные электростанции, чтобы их майнить.

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

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

История эволюции вычислительных систем

Первый период: 1945 - 1955 года

На протяжении многих лет аппаратное программное обеспечение - hardware и software развивались совместно и оказывали взаимное влияние друг на друга. Прекрасным примером была организация работы в Институте точной механики и вычислительной техники, где работали потрясающие инженеры-электронщики, системотехники, архитекторы и прекрасные программисты. Это было "золотое племя", специалисты все время работали в связке, то есть инженеры проектировали и создавали новые компьютеры, а программисты участвовали в разработке оборудования и одновременно, до того времени как оборудование было готово, готовили для него системное программное обеспечение. Такая система существовала во многих компаниях, которые разрабатывали компьютеры, например, в Hewlett-Packard и Digital Equipment Corporation, IBM. В результате новые технические возможности приводили к созданию новых, удобных, эффективных и безопасных программ, а новые идеи в области программного обеспечения стимулировали инженеров в поиске новых технических решений. Интересно, что программистов инженеры-электронщики называли математиками. Очень ценным в то время был высокий уровень конкуренции. Удобство, эффективность и безопасность руководили этой эволюцией, естественным отбором, выживало то, что в действительности было лучше.

Основная характеристика - это были ламповые компьютеры, которые делались на электронных вакуумных лампах, операционные системы отсутствовали (еще 10-15 лет назад в Московском физико-техническом институте студенты сами паяли лампы и откачивать из них воздух).

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

Второй период: 1955 - начало 60-х годов

Это западная шкала, шкала 1945 - 1955 года совпадает для Запада и Востока, и в США, и в Великобритании, и в СССР начало этой работы совпадало. Во второй период, когда на Западе начали появляться транзисторы, в Советском Союзе их ещё не было, в то время они отстали уже на 5 лет.

Основная характеристика - появились компьютеры на основе транзисторов и пакетные операционные системы.

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

Происходит уменьшение размеров компьютеров, удешевление эксплуатации и обслуживания. Наконец, это время - начало широкого использования компьютеров коммерческими компаниями. Произошло бурное развитие алгоритмических языков: ALGOL-58, из существующих - LISP - это целое направление, целая парадигма программирования, функциональное программирование, которое современной молодежью воспринимается как открытие, а этот язык появился 60 лет назад, COBOL - язык IBM, который продолжает активно использоваться в бизнесе, ALGOL-60 - один из самых красивых языков, PL-1 - язык IBM, развитый Fortran и многие другие. Появились компиляторы и технологии компиляции, редакторы связи (чтобы было можно компилировать модули), библиотеки модулей, библиотеки математических и служебных подпрограмм. Все это привело к упрощению процесса программирования и к разделению персонала, который работает с компьютерами на: программистов, операторов, специалистов по эксплуатации, которые были очень важны, потому что компьютеры были не очень надежными, и разработчиков новых вычислительных машин.

Третий период: начало 60-х - 1980 год

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

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

Первыми устройствами внешней памяти были магнитные ленты и магнитные барабаны. Магнитная лента - это длинная, пластиковая и довольно узкая намагниченная ленточка, которая наматывается на катушку, в устройстве она перематывается с одной катушки на другую. Лента проходит между магнитными головками, которые могут читать и писать её, когда будет выполнено аппаратное позиционирование на ленте. Хорошо в магнитных лентах то, что они могут быть очень емкими, сколько данных поместится на одну ленту, зависит от того, сколько ленты поместится на катушку, а это зависит от того, какой толщины лента. Самые первые магнитные ленты, когда технология производства пластмасс была ещё неразвитой, были толстыми. Плохо - то, что в перематывающиеся катушки могли эффективно работать только в последовательном режиме. Если мы хотим найти данные, которые находятся на другом конце магнитной ленты, то необходимо 10 мин. ждать перемотку, так как быстро ленту мотать нельзя, она рвется. Второй вид устройств - это магнитные барабаны, массивные железные цилиндры, у которых намагничены только внешние поверхности, из-за массивновности их можно было очень быстро крутить, что позволяло выполнять быстрый обмен. На БЭСМ-6 были очень небольшие магнитные барабаны - 96 килобайт, при этом они весили полтонны, зато время произвольного доступа к блоку данных было всего в 10 раз меньше, чем время доступа к основной памяти. Магнитные ленты использовались для пакета заданий, при обработке пакета заданий на магнитной ленте очередность запуска заданий определялась порядком их ввода (последовательно подряд записываем - подряд читаем), магнитные барабаны использовались в основном для того, чтобы поддерживать виртуальную память.

В 60-е годы появились магнитные диски как компромисс между магнитными лентами и магнитными барабанами. Это были диски с подвижными головками, то есть они менее емкие, чем магнитные ленты, менее быстрые, чем магнитные барабаны, но зато они более емкие, чем магнитные барабаны и появлялся последовательный доступ, которого нет на лентах. Поэтому, когда появились магнитные диски – появилась возможность при обработке пакета заданий операционной системе или системе, которая планировала выполнение задания, выбирать очередное задание для выполнения, то есть пакетные системы начали заниматься планированием заданий. То или иное задание выбиралось в зависимости от наличия запрошенных ресурсов, приоритетности и срочности вычислений.

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

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

Для всего этого требовалась поддержка механизма прерываний, которые делились на внешние и внутренние.

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

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

Четвертый период: 1980-настоящее время

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

В 80-е годы появились большие интегральные схемы (БИС), то есть те самые чипы, которые работают сейчас, они все больше и больше интегрированы, но идея та же. Это привело к возрастанию степени интеграции и удешевление микросхем (чем более массовое производство, тем лучше). Возник тандем Intel и Microsoft, начался подъем Intel. В середине 80-х годов началась эра персональных компьютеров, сначала это был однопрограммный режим. Первые персональные компьютеры обладали очень убогой архитектурой, происходила деградация архитектуры и операционных систем. Первыми операционными системами были системы семейства DOS - Disk Operating System - дисковая операционная система. Первая оконная система, которую производил Microsoft - Windows NT 3.1 была сделана как надстройка над DOS. В России в начале 90-х годов появились первые персональные компьютеры, которые были очень дорогими и попадали в академические институты по одной единице, простые люди не могли позволить себе их купить. Программы, в частности Word 6.0 были крайне неудобными. Массовость персональных компьютеров привела к двум вещам, во-первых, потребность в "дружественном" программном обеспечении, которая естественно привела к тому, что первыми программами, которые появились на персональных компьютерах, были игры. Конец кастовости программистов. Коль скоро компьютеры стали персональными и доступными - появилось желание программировать у неспециалистов, в результате появилось большое количество некачественных программ.

С середины 80-х активно стала развиваться технология локальных сетей ЭВМ, в том числе с включением персональных компьютеров. Появились термины Network and Distributed Operating Systems. Билл Джой был одним из основателей и вице президентом компании Sun Microsystems, Джой входил в команду, которая в Университете Беркли делала BSD Unix. Когда Sun Microsystems была молодой и растущей компанией, Бил Джой сказал крылатую фразу: "The Network is the Computer". На самом деле в мире Unix никогда не было разницы между отдельным компьютером и компьютером, который подключен к сети, в которой находятся другие компьютеры. Для Unix с использованием разных технологий, в особенности технологией сокетов на основе TCP/IP, в действительности доступ к другим компьютерам был настолько же естественным, как доступ к своим. Когда Microsoftввела термин "Network and Operating Systems", это для специалистов по Unix не было открытием, Unix был настолько же локальной системой, насколько и сетевой.

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

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

Основные функции классических операционных систем

Перечень основных функций операционных систем близок к тому, что в свое время сформулировал известный голландский программист и сomputer science Эдсгер Вибе Дейкстра, разрабатывая свою операционную систему THE, у него есть замечательная статья "THE Operating System" в которой это описывается. Приведем немного расширенный вариант:

- планирование заданий и использования процессора;

- обеспечение программ средствами коммуникации и синхронизации;

- управление памятью;

- управление файловой системой;

- управление вводом-выводом;

- обеспечение безопасности.

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

О безопасности: при том, что в нашей стране все говорят про information security, computer security, неприкосновенность индивидуальных данных и т.д. – мы почти не будем рассматривать security в операционных системах, потому что это настолько отдельная тема. Похоже, среди множества подходов к безопасности все-таки единственным условно-надежным подходом является криптография. Условным, потому что, не смотря на Закон Мура и пр., производительность вычислительных систем растет настолько быстро, что стойкость криптографической защиты остается надежной очень недолго, проходит несколько лет и необходимо увеличивать, удлинять ключи - это бесконечная борьба. В Unix, как и в Windows - парольная защита/password security, пароли хранятся в зашифрованном виде. Интересна закономерность, что злоумышленники могут взломать парольную защиту на любом компьютере приблизительно за день с помощью простого перебора. Когда в Unix увеличили длину ключа для шифрования, то злоумышленники стали догонять через год, то есть через год они получают способность взломать за день. Существующие механизмы обеспечения безопасности в действительности защищают весьма условно. Мы будем рассматривать безопасность только в контексте файловых систем, в контексте очень простых средств защиты.

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

Механизмом системных вызовов называлось: в БЭСМ-6 - экстракоды, в IBM - системные макрокоманды, в Unix - системные вызовы. В любом варианте для того, чтобы было можно добраться из пользовательской программы до некоторой службы, которая находится в ядре - необходимо, чтобы процессор изменил режим работы, перейдя в режим, когда можно выполнять привилегированные команды, потому что именно они требуются, чтобы выполнить такую программу, которую нельзя выполнить - просто загрузив её из библиотеки. Для того, чтобы это сделать - необходимо каким-то образом прервать обычное выполнение программы, чтобы через это прерывание начало работать ядро операционной системы. Оказывается, и все это давно поняли, самый простой механизм - это вызвать искусственное внешнее прерывание путем попытки выполнения команд с запрещенным кодом операции. Команды процессора устроены следующим образом: у каждой команды есть некоторое поле постоянной или переменной длинны, которое говорит, что эта команда делает, она называется "код операции". После нее следуют какие-то дополнительные поля, которые содержат информацию о данных, которые будет обрабатывать эта команда. В любой системе команд среди кодов операции есть неиспользуемые, один из них специальным образом выбирается именно для того, чтобы вызывать внутренние прерывания, которые понимаются операционной системой как обращение к её интерфейсам.

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

Обзор популярных ОС и их особенностей

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

Windows

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

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

macOS

macOS - проприетарная операционная система, разработанная компанией Apple для своих персональных компьютеров и ноутбуков Macintosh. Она известна своим элегантным и интуитивно понятным интерфейсом, а также тесной интеграцией с другими устройствами и сервисами Apple.

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

Linux

Linux - свободная и открытая операционная система, основанная на ядре Linux. Она была создана Линусом Торвальдсом и сообществом разработчиков open-source. Linux высоко ценится за свою надежность, безопасность и гибкость, что делает ее популярным выбором для серверов, суперкомпьютеров и встраиваемых систем.

Существует множество различных дистрибутивов Linux, каждый из которых имеет свои особенности и предназначен для различных целей. Некоторые из наиболее популярных дистрибутивов включают Ubuntu, Fedora, Debian и CentOS. Linux также широко используется на мобильных устройствах, таких как смартфоны и планшеты, на базе операционной системы Android, которая построена на ядре Linux.

Unix

Unix - одна из старейших операционных систем, разработанная в 1970-х годах в Bell Labs. Она была создана для мультизадачности и многопользовательской работы и послужила основой для многих современных операционных систем, включая Linux и macOS.

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

ChromeOS

ChromeOS - операционная система, разработанная Google и основанная на ядре Linux. Она была создана для использования на недорогих ноутбуках и планшетах, известных как Chromebooks и Chrometabs, и ориентирована на облачные вычисления и веб-приложения.

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

Android

Android - операционная система для мобильных устройств, разработанная компанией Google на базе ядра Linux. Она используется на смартфонах, планшетах, часах, телевизорах и других устройствах различных производителей, таких как Samsung, Huawei, Xiaomi и многих других.

Одной из ключевых особенностей Android является открытость исходного кода и возможность кастомизации интерфейса и функциональности производителями устройств. Android предлагает обширный выбор приложений через Google Play Store, а также поддерживает различные сервисы Google, такие как Gmail, Google Maps и Google Drive.

iOS

iOS - проприетарная операционная система, разработанная компанией Apple для своих мобильных устройств, таких как iPhone, iPad и iPod Touch. Она известна своим интуитивно понятным интерфейсом, высоким уровнем безопасности и тесной интеграцией с другими продуктами и сервисами Apple.

iOS предлагает богатый выбор приложений через App Store, а также множество встроенных функций, таких как Siri (персональный цифровой помощник), FaceTime (видеозвонки), iCloud (облачное хранилище) и многие другие. iOS также известна своей высокой производительностью и оптимизацией для аппаратного обеспечения Apple.

Заключение

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