ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ Экономический факультет УТВЕРЖДАЮ Заведующий кафедрой ________________________ «___»_____________201_ г. ЛЕКЦИЯ №10 по дисциплине «Инструментальные средства информационных систем» Понятие операционных систем для студентов направления «Информационные системы и технологии» Наименование направления (специальности) 230400.62 шифр Рассмотрено УМК " " ___________ 201_ года протокол N ______________ Ставрополь – 201_ г. 1 Учебные и воспитательные цели: 1. Сформировать информационно-наглядное представление об операционных системах. 2. Показать место дисциплины в подготовке по направлению «Информационные системы и технологии». 3. Охарактеризовать устройство ОС. Время:_____________________________________________________ 90 мин. Учебно-материальное обеспечение: 1. Опорная лекция. 2. ГОС ВПО по специальности 3. Рабочая программа дисциплины. 4. Основная и дополнительная литература. 5. Методические указания по изучению дисциплины. Распределение времени: I Вступительная часть 7 мин. II. Учебные вопросы: 1. Характеристики ОС 40 мин. 2. Свободные и проприетарные ОС 35 мин. III. Заключительная часть 8 мин. 2 1. Характеристики ОС Операцио́нная систе́ма — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Это определение применимо к большинству современных операционных систем общего назначения. В логической структуре типичной вычислительной системы операционная система занимает положение между устройствами с их микроархитектурой, машинным языком и, возможно, собственными (встроенными) микропрограммами — с одной стороны — и прикладными программами с другой. Разработчикам программного обеспечения операционная система позволяет абстрагироваться от деталей реализации и функционирования устройств, предоставляя минимально необходимый набор функций. В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. С 1990-х годов наиболее распространёнными операционными системами являются системы семействаWindows и системы класса UNIX (особенно Linux и Mac OS). Слайд __ Схема, иллюстрирующая место операционной системы в многоуровневой структуре компьютера 3 Основные функции: Исполнение запросов программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти и др.). Загрузка программ в оперативную память и их выполнение. Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода). Управление оперативной памятью (распределение между процессами, организация виртуальной памяти). Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, оптические диски и др.), организованным в той или иной файловой системе. Обеспечение пользовательского интерфейса. Сохранение информации об ошибках системы. Слайд__ Одна из первых ОС - OS/360 OS/360 использовалась на большинстве компьютеров IBM начиная с 1966, включая те компьютеры, которые помогали NASA отправить человека на луну. Дополнительные функции: Параллельное или псевдопараллельное выполнение задач (многозадачность). Эффективное распределение ресурсов вычислительной системы между процессами. Разграничение доступа различных процессов к ресурсам. Организация надёжных вычислений (невозможности одного вычислительного процесса намеренно или по ошибке повлиять на 4 вычисления в другом процессе), основана на разграничении доступа к ресурсам. Взаимодействие между процессами: обмен данными, взаимная синхронизация. Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений. Многопользовательский режим работы и разграничение прав доступа. Компоненты операционной системы: Загрузчик - системное программное обеспечение, обеспечивающее загрузку операционной системынепосредственно после включения компьютера. Ядро - центральная часть операционной системы (ОС), обеспечивающая приложениям координированный доступ к ресурсам компьютера Командный процессор (Оболочка операционной системы) (от англ. shell «оболочка») — интерпретатор команд операционной системы, обеспечивающий интерфейс для взаимодействия пользователя с функциями системы. Драйверы устройств - компьютерная программа, с помощью которой другие программы (операционная система) получают доступ к аппаратному обеспечению некоторого устройства. Встроенное программное обеспечение – (Прошивка) называется содержимое энергонезависимой памяти компьютера, в которой содержится его микропрограмма. Существуют две группы определений операционной системы: «набор программ, управляющих оборудованием» и «набор программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который связан с вопросом, в каких случаях требуется операционная система. Есть приложения вычислительной техники, для которых операционные системы излишни. Например, встроенные микрокомпьютеры, содержащиеся во многих бытовых приборах, автомобилях (иногда по десятку в каждом), простейших сотовых телефонах, постоянно исполняют лишь одну программу, запускающуюся по включении. Многие простые игровые приставки — также представляющие собой специализированные микрокомпьютеры — могут обходиться без операционной системы, запуская при включении программу, записанную на вставленном в устройство «картридже» или компакт-диске. Операционные системы нужны, если: 5 вычислительная система используется для различных задач, причём программы, решающие эти задачи, нуждаются в сохранении данных и обмене ими. Из этого следует необходимость универсального механизма сохранения данных; в подавляющем большинстве случаев операционная система отвечает на неё реализацией файловой системы. Современные системы, кроме того, предоставляют возможность непосредственно «связать» вывод одной программы со вводом другой, минуя относительно медленные дисковые операции; различные программы нуждаются в выполнении одних и тех же рутинных действий. Например, простой ввод символа с клавиатуры и отображение его на экране может потребовать исполнения сотен машинных команд, а дисковая операция — тысяч. Чтобы не программировать их каждый раз заново, операционные системы предоставляют системные библиотеки часто используемых подпрограмм (функций); между программами и пользователями системы необходимо распределять полномочия, чтобы пользователи могли защищать свои данные от несанкционированного доступа, а возможная ошибка в программе не вызывала тотальных неприятностей; необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере (даже содержащем лишь один процессор), осуществляемой с помощью приёма, известного как «разделение времени». При этом специальный компонент, называемый планировщиком, делит процессорное время на короткие отрезки и предоставляет их поочерёдно различным исполняющимся программам (процессам); оператор должен иметь возможность так или иначе управлять процессами выполнения отдельных программ. Для этого служат операционные среды — оболочка и наборы утилит — они могут являться частью операционной системы. Таким образом, современные универсальные операционные системы можно охарактеризовать, прежде всего, как: использующие файловые системы (с универсальным механизмом доступа к данным), многопользовательские (с разделением полномочий), многозадачные (с разделением времени). Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов в самой операционной системе. В составе операционной системы различают три группы компонентов: ядро, содержащее планировщик; драйверы устройств, непосредственно управляющие оборудованием; сетевая подсистема, файловая система; системные библиотеки; оболочка с утилитами. 6 Большинство программ, как системных (входящих в операционную систему), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ресурсам ядра, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что система (точнее, её ядро) управляет оборудованием. В определении состава операционной системы значение имеет критерий операциональной целостности (замкнутости): система должна позволять полноценно использовать (включая модификацию) свои компоненты. Поэтому в полный состав операционной системы включают и набор инструментальных средств (от текстовых редакторов до компиляторов, отладчиков и компоновщиков). Ядро операционной системы Ядро — центральная часть операционной системы, управляющая выполнением процессов, ресурсами вычислительной системы и предоставляющая процессам координированный доступ к этим ресурсам. Основными ресурсами являются процессорное время, память и устройства ввода-вывода. Доступ к файловой системе и сетевое взаимодействие также могут быть реализованы на уровне ядра. Как основополагающий элемент операционной системы, ядро представляет собой наиболее низкий уровень абстракции для доступа приложений к ресурсам вычислительной системы, необходимым для их работы. Как правило, ядро предоставляет такой доступ исполняемым процессам соответствующих приложений за счёт использования механизмов межпроцессного взаимодействия и обращения приложений к системным вызовам ОС. Описанная задача может различаться в зависимости от типа архитектуры ядра и способа её реализации. Объекты ядра ОС: Процессы Файлы События Потоки Семафоры Мьютексы Каналы Файлы, проецируемые в память Эволюция и основные идеи Предшественником операционных систем следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов). 7 Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций вводавывода, вычисления математических функций и т. п.). В 1950—1960-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы. Пакетный режим Необходимость оптимального использования дорогостоящих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём система может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора. Разделение времени и многозадачность Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ. Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов. Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме. Разделение полномочий Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности изменения исполняемой программы или данных одной программы в памяти компьютера другой программой (намеренно или по ошибке), а также изменения самой системы прикладной программой. Реализация разделения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное пространство компьютера) и 8 «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенным при запуске программы на исполнение). Масштаб реального времени Применение универсальных компьютеров для управления производственными процессами потребовало реализации «масштаба реального времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами. Включение функции масштаба реального времени позволило создавать решения, одновременно обслуживающие производственные процессы и решающие другие задачи (в пакетном режиме и/или в режиме разделения времени). Файловые системы и структуры Постепенная замена носителей с последовательным доступом (перфолент, перфокарт и магнитных лент) накопителями произвольного доступа (на магнитных дисках). Файловая система — способ хранения данных на внешних запоминающих устройствах. 2. Свободые и проприетарные ОС Проприета́рное программное обеспечение — программное обеспечение, являющееся частной собственностью авторов или правообладателей . «Свободное ПО» - это программное обеспечение, в лицензионном договоре на использование которого отсутствуют условия, ограничивающие свободу пользователей ПО, т.е. это то ПО, которое пользователи могут свободно запускать, копировать, распространять, изучать, изменять и улучшать. Для данной категории программного обеспечения не существует фиксированного набора лицензионных условий, достаточных для того, чтобы та или иная лицензия была отнесена к разряду «свободных». Более точно это выражается в наличии у пользователей четырех видов свободы: 1. Запускать программу для любых целей: физическое лицо или организация могут использовать СПО в любой сфере и не обязаны сообщать об этом его разработчику или кому-либо другому. 2. Изучать, как программа работает, и адаптировать ее для своих нужд (доступ к исходному коду – необходимое для этого условие). 3. Повторно распространять копии как исходной, так и модифицированной версии ПО. 4. Улучшать программу и опубликовывать результаты работы по ее улучшению для пользы всего общества. Чтобы право на модификацию программы могло быть реализовано, пользователь также должен иметь доступ к исходному коду. 9 Свободный софт не только обеспечивает пользователям правовую безопасность, но и дает возможность экономить на приобретении ПО и лицензионных отчислениях за его использование. Среди других преимуществ СПО специалисты называют возможность устанавливать его на не слишком мощную и относительно дешевую компьютерную технику (в том числе ПК, находящиеся в эксплуатации четыре-пять лет) и высокий уровень информационной безопасности (исчезает угроза заражения компьютерными вирусами). В соответствии с современным законодательством большинства стран, программный продукт и его исходный код охраняются авторским правом, которое даёт авторам и правообладателю (чаще всего правообладателем является организация-наниматель автора служебных произведений) власть над изменением, распространением, способом использования и поведением программы, включая случаи, когда исходный код опубликован. Сила власти авторских прав в современном обществе настолько велика, что даже изучение или попытки исправления ошибок программ путём дизассемблирования могут преследоваться уголовным правом. Чтобы избавить пользователей программ от проблем, вызванных перекосом законодательства об охране результатов интеллектуальной деятельности в сторону правообладателя, авторы и правообладатели могут передать пользователям права на четыре вышеперечисленные свободы действий. Это достигается путём выпуска исходного кода программного обеспечения на условиях одной из особого рода лицензий, называемых свободными лицензиями. Несмотря на то, что по условиям свободных лицензий выданные пользователям разрешения правообладатель отозвать не может, свои права, гарантированные законодательством, авторы сохраняют. Преимущества СПО • Снижение совокупной стоимости владения информационной системой Решения, спроектированные на основе свободного ПО, позволяют экономить бюджет за счет отсутствия дорогостоящих лицензионных платежей и более низкой стоимости внедрения. • Безопасность информационной системы В свободных программах, за счет открытости их кода и постоянного использования и тестирования тысячами программистов по всему миру, могут быть оперативно выявлены и исправлены недокументированные возможности, которые угрожают информационной безопасности компании или государства. • Независимость от поставщика Ни один из разработчиков не обладает исключительными правами на продукт СПО. Этот принцип помогает обеспечить технологическую независимость всей ИТ-инфраструктуры государства. • Стабильность решения в долгосрочной перспективе 10 В случае использования ПО с открытым кодом отсутствуют риски, связанные с банкротством разработчика, закрытием или «замораживанием» проекта, так как поддержку решения может осуществлять любая команда разработчиков. • Максимальная адаптация решений Открытость исходного кода свободных программных продуктов позволяет создавать системы любой сложности с практически неограниченными возможностями масштабирования. UNIX-подобная операционная система (иногда сокр. как *nix) — операционная система, которая образовалась под влиянием UNIX. Термин включает свободные/открытые операционные системы, образованные от UNIX компании Bell Labs или эмулирующие его возможности, коммерческие и запатентованные разработки, а также версии, основанные на исходном коде UNIX. Нет стандарта, определяющего термин, и допустимы различные точки зрения о том, считать ли определённый продукт UNIXподобным или нет. История Unix Операционная система UNIX была создана еще до эры коммерческого софта. Она писалась инженерами, как система "для себя". Поэтому в нее были заложены передовые на то время концепции. В дальнейшем своем развитии при добавлении новых черт, обычно считалось, что делать нужно "правильно". Т.е. например если нужно было выбирать из двух решений, одно из которых было с инженерной точки зрения "неправильным", например, повышало производительность сегодня, но могло принести затруднения в дальнейшем, как правило, такое решение отвергалось и выбиралось "правильное" решение, пусть и с определенной потерей производительности. Первые версии UNIX были написаны на Ассеблере, затем система была переписана на СИ. Это дало системе уникальную переносимость. На PC UNIX был портирован, а точнее заново написан (Linux) сразу, как только развитие PC, а точнее выпуск PC на процессоре i386, позволило это сделать. В 1985 году стартовал проект POSIX. Это стандарт на интерфейсы UNIXподобных ОС. Во многом благодаря наличию такого стандарта, так быстро смог появится на свет и достигнуть зрелости Linux — свободная воплощение UNIX. Развитие интернета с самого начала и до нашего времени неразрывно связано с серверами под управлением ОС UNIX. Сначала с коммерческими, а теперь все больше и больше со свободными. С точки зрения коммерциализации развитие UNIX можно разделить на три этапа. 1. Некоммерческое распространение в университетах. 2. Распространение коммерческих UNIX систем. 3. Появление свободных реализаций (Linux, FreeBSD) и вытеснение коммерческих систем (настоящий момент). 11 До появления системы X Window System UNIX была системой с текстовым интерфейсом, затем добавился графический, но традиционно текстовый интерфейс сохраняет важное значение. Очень важно то, что UNIX с самого начала был многозадачной и многопользовательской системой. Т.е. на одной машине могут работать сразу несколько пользователей, и выполняться несколько программ одновременно. Фирменной чертой всех UNIX-подобных ОС была и остается надежность. Linux (Линукс) – это операционная система, которая на сегодняшний день является фактически единственной альтернативной заменой ОС Windows от Microsoft. Свое начало Linux берет с 1991 года, когда молодой программист с Финляндии Линус Торвальдс взялся за работу над самой первой версией системы, которая и была названа в честь его имени. Рассвет популярности Linux начался с самого его возникновения. Это связано, в первую очередь, с тем, что ядро этой ОС, как и большинство программ, написанных под нее, обладают очень важными качествами. Microsoft Windows — семейство проприетарных операционных систем корпорации Microsoft, ориентированных на применении графического интерфейса при управлении. Первые версии Windows не были полноценными операционными системами, а являлись надстройками к операционной системе MS-DOS и были по сути многофункциональным расширением, добавляя поддержку новых режимов работы процессора, поддержку многозадачности, обеспечивая стандартизацию интерфейсов аппаратного обеспечения и единообразие для пользовательских интерфейсов программ. Семейство Windows NT Только в этом семействе представлены операционные системы для серверов. 1. Windows NT 3.1 (1993) 2. Windows 2000 — Windows NT 5.0 (2000) 3. Windows XP — Windows NT 5.1 (2001) 4. Windows Vista — Windows NT 6.0 (2006) 5. Windows 7 — Windows NT 6.1 (2009) 6. Windows 8 — Windows NT 6.2 (2012) 7. Windows 8.1 - Windows NT 6.3 (2013) 8. Windows Server 2012 R2 — Windows NT 6.3 (2013) 12 13