Операционная система (ОС) — программа, которая управляет ресурсами компьютера, особенно распределением этих ресурсов между другими программами. Типичные ресурсы включают центральный процессор (CPU), память компьютера, файловое хранилище, устройства ввода-вывода (I/O) и сетевые соединения. В задачи управления входит планирование использования ресурсов во избежание конфликтов и помех между программами. В отличие от большинства программ, которые выполняют задание и завершают работу, операционная система работает бесконечно долго и завершает работу только при выключении компьютера.
Современные многопроцессорные операционные системы позволяют использовать множество процессов, каждый из которых представляет собой «поток» вычислений, используемый для выполнения программы. Одна из форм многопроцессорной обработки называется тайм-шеринг, который позволяет многим пользователям разделить доступ к компьютеру, быстро переключаясь между ними. Разделение времени должно защищать от вмешательства программ пользователей, поэтому в большинстве систем используется виртуальная память, в которой память, или «адресное пространство», используемое программой, может находиться во вторичной памяти (например, на магнитном жестком диске), когда она не используется непосредственно, чтобы по требованию быть замененной обратно, чтобы занять более быструю основную память компьютера. Эта виртуальная память увеличивает адресное пространство, доступное программе, и помогает предотвратить вмешательство программ друг в друга, но требует тщательного контроля со стороны операционной системы и набора таблиц распределения для отслеживания использования памяти. Возможно, самой тонкой и критической задачей для современной операционной системы является распределение центрального процессора; каждому процессу разрешается использовать центральный процессор в течение ограниченного времени, которое может составлять доли секунды, после чего он должен отказаться от управления и приостановиться до следующей очереди. Переключение между процессами должно само использовать центральный процессор, защищая при этом все данные процессов.
Первые цифровые компьютеры не имели операционных систем. В них одновременно работала одна программа, которая распоряжалась всеми системными ресурсами, а человек-оператор предоставлял все необходимые специальные ресурсы. Первые операционные системы были разработаны в середине 1950-х годов. Это были небольшие программы-«супервизоры», которые обеспечивали базовые операции ввода-вывода (например, управление считывателями перфокарт и принтерами) и вели учет использования процессора для выставления счетов. Программы-супервизоры также предоставляли возможности мультипрограммирования, позволяя запускать несколько программ одновременно. Это было особенно важно для того, чтобы ранние многомиллионные машины не простаивали во время медленных операций ввода-вывода.
Компьютеры обзавелись более мощными операционными системами в 1960-х годах с появлением системы разделения времени, для которой требовалась система управления несколькими пользователями, совместно использующими процессорное время и терминалы. Двумя ранними системами разделения времени были CTSS (Compatible Time Sharing System), разработанная в Массачусетском технологическом институте, и Dartmouth College Basic System, разработанная в Дартмутском колледже. Среди других мультипрограммных систем — Atlas, разработанная в Манчестерском университете (Англия), и OS/360 от IBM, вероятно, самый сложный программный пакет 1960-х годов. После 1972 года система Multics для компьютера GE 645 компании General Electric Co. (а затем и для компьютеров Honeywell Inc.) стала самой сложной системой, обладающей большинством возможностей мультипрограммирования и разделения времени, которые впоследствии стали стандартными.
Мини-компьютеры 1970-х годов имели ограниченный объем памяти и требовали меньших операционных систем. Самой важной операционной системой того периода была UNIX, разработанная компанией AT&T для больших миникомпьютеров в качестве более простой альтернативы Multics. Она стала широко использоваться в 1980-х годах, отчасти потому, что была бесплатной для университетов, а отчасти потому, что была разработана с набором инструментов, которые были мощными в руках опытных программистов. В последнее время Linux, версия UNIX с открытым исходным кодом, разработанная частично группой под руководством финского студента-компьютерщика Линуса Торвальдса и частично группой под руководством американского программиста Ричарда Столлмана, стала популярной как на персональных компьютерах, так и на больших компьютерах.
Помимо таких систем общего назначения, на небольших компьютерах, управляющих сборочными линиями, самолетами и даже бытовой техникой, работают операционные системы специального назначения. Они представляют собой системы реального времени, предназначенные для быстрого реагирования на показания датчиков и использования их данных для управления механизмами. Операционные системы были разработаны и для мобильных устройств, таких как смартфоны и планшеты. iOS от Apple Inc., на которой работают iPhone и iPad, и Android от Google Inc. являются двумя известными мобильными операционными системами.
С точки зрения пользователя или прикладной программы, операционная система предоставляет услуги. Некоторые из них представляют собой простые команды пользователя, такие как «dir» — показать файлы на диске, другие — низкоуровневые «системные вызовы», которые может использовать графическая программа для вывода изображения. В любом случае операционная система предоставляет соответствующий доступ к своим объектам — таблицам расположения дисков в одном случае и процедурам передачи данных на экран в другом. Некоторые из ее процедур — те, что управляют процессором и памятью, — вообще доступны только другим частям операционной системы.
Современные операционные системы для персональных компьютеров обычно имеют графический интерфейс пользователя (GUI). GUI может быть неотъемлемой частью системы, как в старых версиях Mac OS от Apple и Windows OS от Microsoft Corporation; в других случаях он представляет собой набор программ, зависящих от базовой системы, как в системе X Window для UNIX и Mac OS X от Apple.
Операционные системы также предоставляют сетевые услуги и возможности обмена файлами — даже возможность совместного использования ресурсов между системами разных типов, такими как Windows и UNIX. Такой обмен стал возможен благодаря внедрению сетевых протоколов (правил взаимодействия), таких как TCP/IP в Интернете.