Системное программное обеспечение. Операционная система (ОС).
Системное ПО – это набор программ, которые управляют компонентами вычислительной системы, такими как процессор, коммуникационные и периферийные устройства, а также обеспечивающие функционирования и работоспособности всей системы. Большинство из них отвечают непосредственно за контроль и объединение в единое целое различных компонентов аппаратного оборудования вычислительной системы.
Конкретные виды системного программного обеспечения включают:
1) загрузчик операционной системы
2) операционная система
3) драйверы устройств
Операционная система, ОС (англ. operating system) — базовый комплекс компьютерных программ, обеспечивающий управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит.
При включении компьютера операционная система загружается в память раньше остальных программ и затем служит платформой и средой для их работы. Помимо вышеуказанных функций ОС может осуществлять и другие, например, предоставление пользовательского интерфейса, сетевое взаимодействие и т. п.
С 1990-х наиболее распространёнными операционными системами для персональных компьютеров и серверов являются ОС семейства Microsoft Windows и системы класса UNIX (особенно GNU/Linux).
Основные функции (простейшие ОС):
- Загрузка приложений в оперативную память и их выполнение;
- Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода);
- Управление оперативной памятью (распределение между процессами, виртуальная память);
- Управление энергонезависимой памятью (Жёсткий диск, Компакт-диск и т.д.), как правило с помощью файловой системы;
- Пользовательский интерфейс;
Дополнительные функции (развитые современные ОС):
- Параллельное или псевдопараллельное выполнение задач (многозадачность);
- Взаимодействие между процессами;
- Межмашинное взаимодействие (компьютерная сеть);
- Защита самой системы, а также пользовательских данных и программ от злонамеренных действий пользователей или приложений;
- Разграничение прав доступа и многопользовательский режим работы (аутентификация, авторизация).
«Юникс», стандартизация ОС и открытые ОС
К концу 1960-х гг. отраслью и научно-образовательным сообществом был создан целый ряд ОС, реализующих все или часть очерченных выше функций. К ним относятся «Atlas» (Манчестерский университет), «CTTS» и «ITSS» (Массачусетский технологический институт (МТИ)), «THE» (Эйндховенский технологический университет), «RS4000» (Университет Орхуса) и др. (всего эксплуатировалось более сотни различных ОС).
Наиболее развитые ОС, такие как «OS/360» (компания «IBM»), «SCOPE» (компания «CDC») и завершённый уже в 1970-х годах «MULTICS» (МТИ и компания «Bell Labs»), предусматривали возможность исполнения на многопроцессорных компьютерах.
Эклектичный характер разработки ОС привёл к нарастанию кризисных явлений, прежде всего, связанных с чрезмерными сложностью и размерами создаваемых систем. ОС были плохо масштабируемыми (более простые не могли использовать все возможности крупных вычислительных систем; более развитые неоптимально исполнялись на малых или не могли исполняться на них вовсе) и тотально несовместимыми между собой, их разработка и совершенствование затягивалась.
Задуманная и реализованная в 1969 году Кеном Томсоном при участии нескольких коллег (включая Денниса Ричи, и Брайана Кернигана), ОС «Юникс» (Unix) вобрала в себя многие черты более ранних ОС, но обладала целым рядом свойств, отличающих её от большинства предшественниц:
1.простая метафорика (два ключевых понятия: вычислительный процесс и файл);
2.компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач («оболочка»);
3.минимизация ядра (кода, выполняющегося в «привилегированном» режиме процессора) и количества системных вызовов;
4.независимость от аппаратной архитектуры и реализация на машинно-независимом языке программирования (язык программирования «Си» стал «побочным продуктом» разработки «Юникс»);
5.унификация файлов.
«Юникс», благодаря своему удобству прежде всего в качестве инструментальной среды (среды разработки), была тепло принята сначала в университетах, а затем и в отрасли, получившей прототип единой ОС, которая могла использоваться на самых разных вычислительных системах и, более того, могла быть быстро и с минимальными усилиями перенесена на любую вновь разработанную аппаратную архитектуру.
В конце 70-х годов XX века сотрудники Калифорнийского университета в Беркли внесли ряд усовершенствований в исходные коды UNIX, включая работу с протоколами TCP/IP. Их разработка стала известна под именем BSD — «Berkeley Systems Distribution».
Задачу разработать независимую (от авторских прав «Bell Labs») реализацию той же архитектуры поставил и Ричард Столлмен, основатель проекта «GNU».
Благодаря конкурентности реализаций архитектура ОС «Юникс» стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического — ISO/IEC 9945.
ОС, следующие стандарту или опирающиеся на него, называют «открытыми ОС».
К открытым ОС относятся системы, базирующиеся на последней версии «Юникс», выпущенной «Bell Labs» («System V»), на разработках Университета Беркли («FreeBSD», «OpenBSD», «NetBSD»), а также ОС «GNU/Linux», разработанная в части утилит и библиотек проектом «GNU» и в части ядра — сообществом, возглавляемым Линусом Торвальдсом.
Стандартизация ОС гарантирует возможность безболезненной замены самой ОС и/или оборудования при развитии вычислительной системы или сети и дешёвого переноса прикладного программного обеспечения (строгое следование стандарту предполагает полную совместимость программ на уровне исходного текста; из-за профилирования стандарта и его развития некоторые изменения бывают всё же необходимы, но перенос программы между открытыми системами обходится на порядки дешевле, чем между альтернативными), а также преемственность опыта пользователей.