Часть кода ос которая непосредственно взаимодействует с аппаратным обеспечением компьютера
Цель лекции:Ознакомить с сервисным программным обеспечение ПК.
Основные вопросы:
- Системное программное обеспечение.
- Базовое программное обеспечение: Понятие операционной системы.Программы оболочки;
- Сервисные программы.
Содержание:
Системное программное обеспечение – совокупностьпрограмм и программных комплексов для обеспечения работы компьютера и сетей ЭВМ. Системное программное обеспечение подразделяется на базовое и сервисное программное обеспечение.
Базовое программное обеспечение – минимальный набор программных средств, обеспечивающих работу компьютера: к нему относятся операционные системы и операционные оболочки. Базовое ПО – самый низкий уровень программного обеспечения. Оно отвечает за взаимодействие с базовыми аппаратными средствами. Как правило, базовые программные средства непосредственно входят в состав базового оборудования и хранится в специальных микросхемах, называемых ПЗУ. Программы и данные записываются в микросхемы ПЗУ на этапе производства и не могут быть изменены в процессе эксплуатации.
В тех случаях, когда изменение базовых программных средств во время эксплуатации является технически целесообразным, вместо микросхем ПЗУ применяют перепрограммируемые ПЗУ. В этом случае изменение содержания ПЗУ можно выполнять на специальных устройствах, называемых программаторами.
Операционная система-это комплекс программ, организующих управление работой компьютера и его взаимодействие с пользователем.
С одной стороны, она опирается на базовое программное обеспечение компьютера, входящее в его систему BIOS (базовая система ввода-вывода), с другой стороны, она сама является опорой для программного обеспечения более высоких уровней – прикладных и большинства служебных приложений. Приложениями операционная система принято называть программы, предназначенные для работы под управлением данной системы.
Операционные системы для персонального компьютера различаются по нескольким параметрам:
- однозадачные и многозадачные;
- однопользовательские и многопользовательские.
Однозначные операционные системы обычно позволяют запустить одну программу в основном режиме и еще одну программу, вспомогательную, в так называемом фоновом режиме. Например, в основном режиме можно запустить редактор текстов, а в фоновом - программу печати.
Многозадачные системы позволяют запустить одновременно несколько программ, которые будут работать параллельно, не мешая друг другу.
Однопользовательские операционные системы позволяют работать на компьютере в каждый момент времени только одному человеку.
В многопользовательской системе работу можно организовать так, что каждый пользователь будет иметь доступ к информации общего доступа и, введя пароль, к личной информации, доступной только ему. Например, UNIX позволяет нескольким пользователям одновременно работать на одном компьютере с помощью так называемых терминалов, в роли которых могут выступать либо специализированные устройства (видеомонитор с клавиатурой), либо запущенная на ПК специальная программа. Терминал может находиться в нескольких метрах или в нескольких тысячах километров от компьютера. Терминал может быть связан с основным компьютером и через локальную сеть или мировую компьютерную сеть Internet.
Состав операционной системы. Структура ОС составляют следующие модули:
- базовый модуль (ядро ОС) – управляет работой программами и файловой системой, обеспечивает доступ к ней и обмен файлами между периферийными утройствами;
- командный процессор – расшифровывает и исполняет команды пользователя, поступающие прежде всего через клавиатуру;
- драйверы периферийных устройств – программно обеспечивают согласованность работы этих устройств с процессором;
- дополнительные сервисные программы (утилиты) – делают удобным и многосторонним процесс общения пользователя с компьютером.
Главное назначение операционной системы – это управление ресурсами, а главные ресурсы, которыми она управляет – это аппаратура компьютера. Операционная система реализует множество различных функций, в том числе:
- определяет так называемый «интерфейс пользователя»;
- обеспечивает разделение аппаратных ресурсов между пользователями;
- дает возможность работать с общими данными в режиме коллективного пользования;
- планирует доступ пользователей к общим ресурсам;
- обеспечивает эффективное выполнение операций ввода-вывода;
- осуществляет восстановление информации и вычислительного процесса в случае ошибок.
Операционная система управляет следующими основными ресурсами: процессорами; памятью; устройствами ввода-вывода; данными.
Операционная система взаимодействует с: операторами ЭВМ; прикладными программистами; системными программистами; административным персоналом; программами; аппаратными средствами; пользователями.
Режим работы с компьютером. Все операционные системы способны обеспечивать как пакетный, так и диалоговый режим работы с пользователем. В пакетном режиме операционная система автоматически исполняет заданную последовательность команд. Суть диалогового режима состоит в том, что операционная система находится в ожидании команды пользователя и получив ее, приступает к исполнению, а исполнив, возвращает отклик и ждет очередной команды. Диалоговый режим работы основан на использовании прерываний процессора и прерываний BIOS (которые, в свою очередь, также основаны на использовании прерываний процессора). Опираясь на эти аппаратные прерывания, операционная система создает свой комплекс системных прерываний. Способность операционной системы прерывать текущую работу и отреагировать на события, вызванные пользователем с помощью управляющих устройств, воспринимается как диалоговый режим работы.
Виды интерфейсов пользователя. По реализации интерфейса пользователя различают неграфические и графические операционные системы. Неграфические операционные системы реализуют интерфейс командной строки. Основным устройством управления в данном случае является клавиатура. Управляющие команды вводят в поле командной строки, где их можно и редактировать. Исполнение команды начинается после ее утверждения, например нажатием клавиши Enter. Для компьютеров платформы IBM PC интерфейс командной строки обеспечивается семейством операционных систем под общим названием MS DOS.
Графические операционные системы реализуют более сложный тип интерфейса, в котором в качестве органа управления кроме клавиатуры может использоваться мышь или адекватное устройство позиционирования. Работа графической операционной системой основана на взаимодействии активных и пассивных экранных элементов управления. Характер взаимодействия между активными и пассивными элементами управления выбирает сам пользователь.
Обеспечение автоматического запуска. Все операционные системы обеспечивают свой автоматический запуск. Для дисковых ОС в специальной (системной) области диска создается запись программного кода. Обращение к этому коду выполняют программы, находящиеся в базовой системе ввода-вывода (BIOS). Завершая свою работу, они дают команду на загрузку и исполнение содержимого системной области диска. Недисковые ОС характерны для специализированных вычислительных систем. Математическое обеспечение, содержащееся в микросхемах ПЗУ таких компьютеров, можно условно рассматривать как аналог операционной системы. ЕЕ автоматический запуск осуществляется аппаратно. При подаче питания процессор обращается к фиксированному физическому адресу ПЗУ, с которого начинается запись программы инициализации операционной системы.
Организация файловой системы. Все современные дисковые ОС обеспечивают создание файловой системы, предназначенной для хранения данных на дисках и обеспечения доступа к ним. Принцип организации файловой системы – табличный. Поверхность жесткого диска рассматривается как трехмерная матрица, измерениями которой являются номера поверхности, цилиндра и сектора. Наименьшей физической единицей хранения данных является сектор. Группы секторов условно объединяются в кластеры. Кластер является наименьшей единицей адресации к данным. Размер кластера, в отличие от размера сектора, не фиксирован и зависит от емкости диска.
История развития ОС.В своем развитии ОС прошли через ряд поколений. Вычислительные машины нулевого поколения в 40-х годах не имели операционных систем. В 50-х годах в машинах первого поколения появились возможности пакетной обработки. В начале 60-х годов в системах второго поколения были впервые реализованы такие режимы вычислений, как мультипрограммирование, мультипроцессорный режим, разделение времени и режим реального времени, а так же концепция независимости программ от устройств ввода-вывода. Системы третьего поколения (середина 60-х, 70-х годов) были по преимуществу универсальными, они предусматривали работу во многих режимах. В настоящее время доминирующее положение занимают системы четвертого поколения, в том числе средства для вычислительных сетей, для ПК, операционные системы для виртуальных машин, системы без баз данных и системы распределенной обработки данных.
В настоящее время наиболее распространены несколько типов операционных систем: однозадачная однопользовательская система MS-DOS выпускается фирмой Microsoft с 1981 г.; она работает в текстовом режиме; известны также ее разновидности от других фирм-разработчиков: DR DOS, PC DOS;
OS/2 – разрабатывается фирмой IBM;
Unix – многозадачная многопользовательская система, создана корпорацией Bell Laboratory;
Mac OС – выпускается фирмой Apple для компьютеров типа Macintosh;
NetWare – сетевая операционная система, выпускается фирмой Novell;
Windows 95 / 98 / NT / 2000 / ХР / 2003 – разрабатывается фирмой Microsoft.
Как уже отмечалось, если операционная система не создает пользователю удобных условий работы, между ней и человеком возможно существование еще одного посредника- программы- оболочки:
Программы оболочки – программы предназначенны для создания пользователю удобных условий работы. Примеры: Norton Commander, DOS-Navigator, WINDOWS 3.1. Появление подобных программ связано с тем, что операционные системы старого образца (например, MS-DOS) несмотря на простоту и надежность не были снабжены средствами, создающими пользователю удобную среду для работы. В таких операционных системах общение человека с машиной производилось (и производится) при помощи команд, которые надо набирать с клавиатуры.
Например, в операционной системе MS-DOS для того, чтобы скопировать файл text.txt из каталога C:\ABCDE в каталог A:\DOC необходимо набрать с клавиатуры следующую команду:
copy C:\ABCDE\text.txt A:\DOC
Очевидно, такой способ общения (интерфейс) ненагляден, требует знания наизусть стандартного набора команд данной операционной системы, правил работы с ними и неудобен- требует набора текста с клавиатуры, причем безошибочного.
Программы -оболочки выполняют роль надстроек над такими операционными системами, давая пользователю возможность выполнять те же самые операции быстрее и нагляднее. В современных операционных системах (WINDOWS'95) предусматриваются свои средства, обеспечивающие удобство работы пользователям, и дополнительные программы-оболочки если и используются при работе, то в силу привычки к старым, проверенным и любимым программам.
Сервисное программное обеспечение – программы и программные комплексы, которые расширяют возможности базового ПО и организуют более удобную среду для пользователя. Сервисное По включает программы:
- диагностики работоспособности компьютера;
- обслуживания дисков и архивирования данных;
- антивирусные и т.д.
Сетевые системы – программы, обеспечивающие работу компьютерных сетей. Примеры: Novell Netware, LANtastic. Для одноранговых (децентрализованных) сетей сетевые системы включают в состав операционных систем. Примеры: WINDOWS NT, WINDOWS'95 (с оговорками). К этому же классу программ можно отнести интернетовские броузеры. Примеры: Netscape Navigator, MS Internet Explorer.
(Значительная часть сервисных программ входит в стандартный комплект поставки современных ОС. Кроме того, существует широкий набор сервисных программ (утилит), которые могут устанавливаться дополнительно, например, Norton Utilities, Norton AntiVirus, Antiviral Toolkit Pro (AVP – антивирус Касперского), антивирусный комплект Диалог Наука (Доктор Web) и др.)
От системного программного обеспечения зависят эксплуатационные показатели всей вычислительной системы в целом. Конкретные программы, отвечающие за взаимодействие с конкретными устройствами, называются драйверами устройств – они входят в состав ПО системного уровня.
Другой класс программ системного уровня отвечает за взаимодействие с пользователем. Именно благодаря им он получает возможность вводить данные в вычислительную систему, управлять ее работой и получать результат в удобной для себя форме. Эти программные средства называются средствами обеспечения пользовательского интерфейса.
Все оконечные и сетевые устройства, подключенные к сети Интернет, функционируют благодаря операционной системе (ОС).
При включении компьютер загружает ОС в ОЗУ (обычно с диска). Часть кода ОС, которая непосредственно взаимодействует с аппаратным обеспечением компьютера, называется ядром ОС. Часть, которая обеспечивает связь между приложениями и пользователем, называется оболочкой. Пользователь взаимодействует с оболочкой посредством интерфейса командной строки (CLI) или графического интерфейса пользователя (GUI).
При использовании интерфейса командной строки происходит непосредственное обращение к системе в текстовом режиме методом ввода команд с клавиатуры в командную строку. Система выполняет команду, часто выводя выходные данные в текстовом формате. Графический интерфейс обеспечивает взаимодействие с системой в среде, где используются графические изображения, мультимедиа и текст. Действия выполняются с помощью изображений на экране. Графический интерфейс удобнее и не требует таких знаний структуры команд, как интерфейс командной строки. Именно поэтому многие используют графический интерфейс (GUI). В большинстве операционных систем есть оба интерфейса.
Для получения дополнительной информации нажмите на изображение оборудования, ядра ОС и оболочки.
Доступ к большинству операционных систем оконечных устройств осуществляется с помощью графического интерфейса пользователя, включая доступ к MS Windows, MAC OS X, ОС Linux, Apple iOS, Аndroid и другим.
Операционная система на домашних маршрутизаторах обычно называется микропрограммой. Наиболее распространенный способ настройки домашнего маршрутизатора — доступ к графическому интерфейсу через веб-браузер. На большинстве домашних маршрутизаторов при появлении новых функций или уязвимых мест в безопасности активируется обновление микропрограмм.
Сетевые устройства инфраструктуры работают на основе сетевой операционной системе. Сетевая операционная система, используемая на устройствах Cisco, называется операционной системой сетевого взаимодействия Cisco (IOS). Операционная система сетевого взаимодействия Cisco (IOS) — это общий термин для группы сетевых операционных систем, используемых на сетевых устройствах Cisco. Операционная система Cisco IOS используется в большинстве устройств Cisco, независимо от их типа и размеров. Наиболее распространённый способ доступа к этим устройствам — использование интерфейса командной строки (CLI).
В этой главе мы подробно рассмотрим топологию сетевого коммутатора малого бизнеса. Топология состоит из двух коммутаторов и двух ПК. На ней мы продемонстрируем использование CISCO IOS с помощью интерфейса командной строки (CLI).
Взаимодействие ОС и аппаратного обеспечения следует рассматривать с двух сторон. С одной стороны, ОС должна реализовывать средства взаимодействия с аппаратным обеспечением, с другой стороны - архитектуру компьютера надо проектировать с учетом того, что на компьютере будет функционировать ОС.
Интерфейс аппаратного обеспечения должны быть полностью скрыт от прикладных программ и пользователей, всю работу с ним выполняет ОС. Рассмотрим особенности аппаратной поддержки этого интерфейса и его использование в современных ОС.
Средства аппаратной поддержки операционных систем
Современные аппаратные архитектуры компьютеров реализуют базовые средства поддержки операционных систем. К ним принадлежат:
-привилегированный режим процессора,
-средства переключения задач,
-поддержка управления памятью (механизмы трансляции адресов, защита памяти),
-защита устройств ввода-вывода,
-базовая система ввода-вывода (BIOS).
Рассмотрим эти средства подробнее.
Система прерываний является основным механизмом, который обеспечивает функционирование ОС. С помощью прерываний процессор получает информацию о событиях, не связанных с основным циклом его работы (получением инструкций по памяти и их выполнением). Прерывания бывают двух типов: аппаратные и программные.
Аппаратное прерывание - это специальный сигнал (запрос прерывания, IRQ), который передается процессору от аппаратного устройства.
К аппаратным прерываниям принадлежат:
-прерывание введения-вывода, которые поступают от контролера периферийного устройства; например, такое прерывание генерирует контролер клавиатуры при нажатии на клавишу;
-прерывание, связанные с аппаратными или программными ошибками (такие прерывания возникают, например, в случае сбоя контролера диска, доступа к запрещенной области памяти или деление на нуль).
Программные прерывания генерирует прикладная программа, выполняя специальную инструкцию прерывания. Такая инструкция есть в системе команд большинства процессоров. Обработка программных прерываний процессором не отличается от обработки аппаратных прерываний.
Если прерывания состоялось, то процессор немедленно передает управление специальной процедуре - обработчику прерывания. После выхода из обработчика процессор продолжает выполнение инструкций прерванной программы. Различают два типа прерываний в зависимости от того, какая инструкция будет выполнена после выхода из обработчика:
-для отказов повторяется инструкция, которая вызвала прерывание,
-для ловушек - выполняется следующая инструкция.
Все прерывания ввода-вывода и программные прерывания принадлежат к категории ловушек, большинство прерываний через ошибки относятся к отказам.
Если ОС не занятая выполнениям какой-нибудь задачи, она ожидает прерывание, которое и привлекает ее к работе. Поэтому можно считать, что современные ОС управляются прерываниями.
Для реализации привилегированного режима процессора в одном из его регистры предусмотрены специальный бит (бит режима), который показывает, в каком режиме находится процессор. В случае программного или аппаратного прерывания процессор автоматически переключается в привилегированный режим, и именно поэтому ядро ОС (которое состоит из обработчиков прерываний) всегда получает управление в этом режиме. За любой попытки непосредственно выполнить привилегированную инструкцию в режиме пользователя происходит аппаратное прерывание.
Средства переключения задач дают возможность сохранять содержимое регистров процессора (контекст задачи) в случае прекращения задачи и восстанавливать данные перед ее дальнейшим выполнением.
Механизм трансляции адресов обеспечивает преобразование адресов памяти, с которыми работает программа, у адреса физической памяти компьютера. Аппаратное обеспечение генерирует физический адрес, используя специальные таблицы трансляции.
Защита памяти обеспечивает проверку прав доступа к памяти во время каждой попытки его получить. Средства защиты памяти интегрированные с механизмами трансляции адресов: в таблицах трансляции поддерживается информация о правах, необходимых для их использования, и о лимите (размеры участка памяти, к которой можно получить доступ с их помощью). Невозможно получить доступ к памяти сверх лимита или при отсутствии прав на использование таблицы трансляции.
Системный таймер является аппаратным устройством, которое генерирует прерывание таймера через определенные промежутки времени. Такие прерывания обрабатывает ОС; информацию от таймера чаще всего используют для определения времени переключения задач.
Защита устройств ввода-вывода основывается на том, что все инструкции ввода-вывода определены как привилегированные. Прикладные программы осуществляют ввод-вывод не прямо, а при посредничестве ОС.
Базовая система ввода-вывода (BIOS) - служебный программный код, который сохраняется в постоянном запоминающем устройстве и предназначен для изоляции ОС от конкретного аппаратного обеспечения. Укажем, что средства BIOS не всегда дают возможность использовать все возможности архитектуры: например, процедуры BIOS для архитектуры IА-32 не работают в защищенном режиме. Поэтому современные ОС используют их только для начальной загрузки системы.
Операцио́нная систе́ма, сокр. ОС (англ. operating system , OS) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Это определение применимо к большинству современных операционных систем общего назначения.
Архитектура ОС UNIX и ее элементы , понятие ядра ОС .
Самый общий взляд на архитектуру UNIX позволяет увидеть двухуровневую модель системы, состоящую из пользовательской и системной части (ядра) . Ядро непосредственно взаимодействует с аппаратной частью компьютера, изолируя прикладные программы (процессы в пользовательской части операционной системы) от особенностей ее архитектуры. Ядро имеет набор услуг, предоставляемых прикладным программам посредством системных вызовов. Таким образом, в системе можно выделить два уровня привилегий: уровень системы (привиегии специального пользователя root) и уровень пользователя (привилегии всех остальных пользователей).
Важной частью системных программ являются демоны. Демон – это процесс, выполняющий опеределенную функцию в системе, который запускается при старте системы и не связан ни с одним пользовательским терминалом. Демоны предоставляют пользователям определенные сервисы, примерами которых могут служить системный журнал, веб-сервер и т.п.. Аналогом демонов в операционной системе Windows NT и более поздних версиях являются системные службы.
Ядро UNIX
Ядроì (kernel) — центральная часть операционной системы (ОС), обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память, внешнее аппаратное обеспечение, внешнее устройство ввода и вывода информации. Также обычно ядро предоставляет сервисы файловой системы и сетевых протоколов.
Операционная система UNIX обладает классическим монолитным ядром (см. «Архитектура операционной системы»), в котором можно выделить следующие основные части:
Доступ к структурам ядра осуществляется через файловый интерфейс.
Драйверы устройств делятся на символьные и блочные по типу внешнего устройства. Для каждого из устройств определен набор возможных операций (открытие, чтение и т.д.). Блочные устройства кэшируются с помощью специального внутреннего механизма управления буферами.
Благодаря тому, что в UNIX аппаратно-независимая часть явно отделена, это семейство операционных систем может быть с минимальными затратами перенесено на новые аппаратные платформы.
Видно, что ядро операционной системы UNIX является классическим для многозадачной многопользовательской операционной системы, поэтому оно широко используется в обучении системному программированию и теории операционных систем.
Понятие оболочки Shell(функции и возможности). Примеры оболочек.
Оболочка операционной системы (от англ. shell «оболочка») — интерпретатор команд операционной системы, обеспечивающий интерфейс для взаимодействия пользователя с функциями системы.
В общем случае, различают оболочки с двумя типами интерфейса для взаимодействия с пользователем: текстовый пользовательский интерфейс (TUI) и графический пользовательский интерфейс (GUI).
Примеры оболочек.
Текстовый пользовательский интерфейс, ТПИ (англ. Text user interface, TUI; также Character User Interface, CUI) — разновидность интерфейса пользователя, использующая при вводе-выводе и представлении информации исключительно набор буквенно-цифровых символов и символов псевдографики. Характеризуется малой требовательностью к ресурсам аппаратуры ввода-вывода (в частности, памяти) и высокой скоростью отображения информации, поэтому широко использовался на начальном этапе развития вычислительной техники. Также, его разновидность — интерфейс командной строки — имеет отдельные преимущества в юзабилити перед графическим интерфейсом. Поэтому программы, основанные на ТПИ, имеют некоторое распространение до настоящего времени, особенно в специфических сферах и на маломощном оборудовании.
Графи ì ческий интерфе ì йс по ì льзователя, графический пользовательский интерфейс (англ. Graphical user interface, GUI) — разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графических изображений.
В отличие от интерфейса командной строки, в GUI пользователь имеет произвольный доступ (с помощью устройств ввода — клавиатуры, мыши, джойстика и т. п.) ко всем видимым экранным объектам (элементам интерфейса) и осуществляет непосредственное манипулирование ими. Чаще всего элементы интерфейса в GUI реализованы на основе метафор и отображают их назначение и свойства, что облегчает понимание и освоение программ неподготовленными пользователями.
Windows
7-Zip — бесплатный файловый архиватор для Windows с высокой степенью сжатия.
WinRAR — мощная программа для работы с разнообразными популярными форматами архивов файлов.
Universal Extractor — простая программа, служащая для извлечения данных из архивов практически любых типов.
IZArc — бесплатный архиватор для Windows, поддерживающий большое количество форматов.
HaoZip — мощный бесплатный архиватор со множеством полезных и удобных дополнительных возможностей.
PeaZip — свободный бесплатный архиватор и графическая оболочка для других архиваторов.
TUGZip — простой в использовании архиватор, поддерживающий большое количество форматов.
Unix and Linux
Ark – программа для работы с архивами для среды KDE. Может работать как самостоятельная программа так и вызываться через контекстное меню KDE.
Atool - cценарий для управления файловыми архивами различных типов (tar, tar+gzip, zip и т.д.).
Btar - это архиватор, совместимый с tar, который позволяет использовать сжатие, шифрование, дифференциальный бэкап и обладает устойчивостью к частичным повреждениям архива.
Bzip2 - небольшая консольная утилита для эффективного сжатия данных.
Comprez - простая, безопасная и удобная оболочка к утилитам сжатия и распаковки файлов и каталогов.
Понятие контекста процесса.
Для возобновления выполнения процесса необходимо сохранить информацию о состоянии ОС: Контекст – информация, которая отражает состояние операционной среды, та информация, которая необходима для выполнения процесса: • Состояние регистров (программный счетчик, регистра указатель стека и т.д.) • Режим работы процессора • Указатели на открытые файлы • Информация о незавершенных операциях ввода/вывода • Коды ошибок, выполняемых системных вызовов
Файловая система
Файловая система - это методы и структуры данных, которые используются операционной системой для хранения файлов на диске или его разделе. О файловой системе также говорят, ссылаясь на раздел или диск, используемый для хранения файлов или тип файловой системы.
Нужно видеть разницу между диском или разделом и установленной на нем файловой системой. Некоторые программы (например, программы установки файловой системы) при обращении к диску или разделу используют прямой доступ к секторам. Если на этом месте была файловая система, то она будет серьезно повреждена. Большинство программ взаимодействуют с диском посредством файловой системы, и, следовательно, их работа будет нарушена, если на разделе или диске никакая система не установлена (или тип файловой системы не соответствует требуемуму).
Перед тем, как раздел или диск могут быть использованы в качестве файловой системы, она должна быть инициализирована, а требуемые данные перенесены на этот диск. Этот процесс называется созданием файловой системы.
Архитектура клиент-сервер
Клиент – компьютер, подключенный к вычислительной сети.
Сервер (server) – компьютер, предоставляющий свои ресурсы клиентам сети. Различают следующие виды серверов.
Архитектура клиент-сервер - архитектура распределенной вычислительной системы, в которой приложение делится на клиентский и серверный процессы.
В зависимости от того, как распределены логические компоненты приложения между клиентами и серверами, различают четыре модели архитектуры клиент-сервер:
- модель "сервер базы данных";
- модель "сервер транзакций";
- модель "сервер приложений".
Классификация.
Существует множество способов классификации сетей. Основным критерием классификации принято считать способ администрирования. То есть в зависимости от того, как организована сеть и как она управляется, её можно отнести к локальной, распределённой, городской или глобальной сети. Управляет сетью или её сегментом сетевой администратор. В случае сложных сетей их права и обязанности строго распределены, ведётся документация и журналирование действий команды администраторов.
Компьютеры могут соединяться между собой, используя различные среды доступа: медные проводники (витая пара), оптические проводники (оптические кабели) и через радиоканал (беспроводные технологии). Проводные, оптические связи устанавливаются через Ethernet, беспроводные — через Wi-Fi, Bluetooth, GPRS и прочие средства. Отдельная локальная вычислительная сеть может иметь связь с другими локальными сетями через шлюзы, а также быть частью глобальной вычислительной сети (например, Интернет) или иметь подключение к ней.
Чаще всего локальные сети построены на технологиях Ethernet или Wi-Fi. Для построения простой локальной сети используются маршрутизаторы, коммутаторы, точки беспроводного доступа, беспроводные маршрутизаторы, модемы и сетевые адаптеры.
Маршрутизация в локальных сетях используется примитивная, если она вообще необходима. Чаще всего это статическая либо динамическая маршрутизация (основанная на протоколе RIP).
Иногда в локальной сети организуются рабочие группы — формальное объединение нескольких компьютеров в группу с единым названием.
Сетевой администратор — человек, ответственный за работу локальной сети или её части. В его обязанности входит обеспечение и контроль физической связи, настройка активного оборудования, настройка общего доступа и предопределённого круга программ, обеспечивающих стабильную работу сети.
Технологии локальных сетей реализуют, как правило, функции только двух нижних уровней модели OSI - физического и канального. Функциональности этих уровней достаточно для доставки кадров в пределах стандартных топологий, которые поддерживают LAN: звезда, общая шина, кольцо и дерево
Особенности и недостатки.
Операционные системы семейства Linux - наиболее динамично развивающееся семейство ОС. Незаконченность установления полной упорядоченности ресурсов, некоторая сложность в освоении обычными пользователями и неполное признание производителями ПО - вот основные недостатки Linux. Преимуществ гораздо больше, это: Массовость - то есть общественная доступность проекта, участие в нём программистов со всего мира. Благодаря массовости быстрее выявляются изъяны, создаются новые дистрибутивы; Открытость ОС Linux сделала её потрясающей сферой для работы программиста; Бесплатность ОС говорит сама за себя; Развитая оболочка делает эту систему более профессиональной; наконец система безопасности в этой ОС продумана с особой тщательностью. Linux - это особая идеология, которая возможно вскоре покорит мир, придя на смену гегемонии Windows.
Windows и Linux трудно сравнивать "на равных" из-за следующих факторов:
- Исторически слово «Linux» означает ядро операционной системы. Операционные системы на основе ядра Linux, утилит проекта GNU исторически называют GNU/Linux, но в последнее время имя упрощают до «Linux», что не везде приветствуется.
- Linux — это не определённая ОС, их более 600, среди них есть те, которые отличаются друг от друга значительно, а некоторые совсем немного.
- И Windows, и Linux поставляются в различных конфигурациях. Особенно Linux, для которой существует огромное количество вариантов, некоторые из них предназначены для узкого круга задач.
- Цена и широта технической поддержки различаются у разных поставщиков, а также в зависимости от версии и дистрибутива
- Производители оборудования могут устанавливать дополнительное ПО с операционной системой, которое делает доступные функции системы разнообразнее. Иногда они даже спонсируют продавца, снижая цену продукта для пользователя.
- Данные, полученные от маркетинговых подразделений, и результаты тестирования могут расходиться.
- Microsoft распространяет Windows под разными лицензиями (закрытыми). Дистрибутивы Linux, со своей стороны, могут содержать проприетарные компоненты.
С точки зрения пользователя UNIX устроен примерно так:
1. Ядро. Работает с устройствами, управляет памятью и процессами.
2. Текстовая подсистема, работа с системой через терминал. Причем для управления всеми возможностями ОС достаточно только текстовой подсистемы. Возможно вход через эту подсистему многих пользователей. Богатый набор как встроенных утилит, так и приложений, работающих в текстовом режиме.
3. Графическая подсистема Xwindow. Запускается как процесс в системе.
4. Система удаленного доступа в текстовом режиме. Позволяет полноценную работу с ОС в текстовом режиме. Потребляет мало ресурсов. Позволяет работать на сравнительно слабых компьютерах одновременно десяткам и сотням пользователей. Количество сессий ограничено ресурсами компьютеров.
5. Система удаленного доступа в графическом режиме. Позволяет одновременно работать нескольким пользователям в графическом режиме. Количество сессий ограничено ресурсами компьютеров.
6. Система передачи графического окна приложения на другой компьютер. Позволяет запустив приложение на одном компьютере, управлять им с другого компьютера, через окно приложения, передаваемое на этот другой компьютер. Количество сессий ограничено ресурсами компьютеров.
Windows
1. Ядро. Работает с устройствами, управляет памятью и процессами, управляет графической подсистемой.
2. Графическая подсистема. Обеспечивает интерфейс с пользователем. Приоритетная система для пользовательского интерфейса.
3. Текстовая подсистема. Обеспечивает текстовый интерфейс с пользователем. Текстовый интерфейс весьма урезанный. Набор утилит текстового режима как встроенных, так и других производителей весьма куцый. Синтаксис и состав команд текстового режима меняется от версии к версии. Запускается только поверх графического режима.
4. Система удаленного доступа. Появилась впервые, как встроенная в систему, в Windows NT Server 4.0. До этого были только продукты других фирм. В связи с тем, что запускается полноценная графическая сессия, кушает очень много ресурсов. Наличие системы удаленного доступа и количество одновременных сессий может вообще отсутствовать или быть ограничено в разных версиях из коммерческих соображений.
Жесткие ссылки
Для создания дополнительных жестких ссылок на существующий файл (но не на директорию, даже не смотря на то, что записи . и .. существуют в системе в виде жестких ссылок) используется команда ln.
Символические ссылки
Для создания символических ссылок используется команда ln с опцией -s. При создании символических ссылок используются имена файлов или директорий, которые могут быть как абсолютными, так и относительными. Если вы используете относительные имена, то, как правило, подразумевается, что создаваемые ссылки будут располагаться в текущей рабочей директории; в противном случае создаваемые вами ссылки будут относительными по отношению к другой точке файловой системы. В листинге 3 показаны два способа создания символических ссылок на файл file1, а также то, как вместо двух жестких ссылок (которые мы не смогли создать в листинге 2) создать две символические ссылки.
Слои программного обеспечения компьютерной системы . Определение ОС .
Операцио́нная систе́ма, сокр. ОС (англ. operating system , OS) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Это определение применимо к большинству современных операционных систем общего назначения.
Если код ОС может быть сравнительно легко перенесен с аппаратной платформы одного типа на аппаратную платформу другого типа, то такую ОС называют переносимой (portable), или мобильной.
Для того чтобы обеспечить свойство мобильности ОС, разработчики должны следовать следующим правилам.
§ Большая часть кода должна быть написана на языке, трансляторы которого имеются на всех машинах, куда предполагается переносить систему. Такими языками являются стандартизованные языки высокого уровня. Большинство переносимых ОС написано на языке С, который имеет много особенностей, полезных для разработки кодов операционной системы, и компиляторы которого широко доступны. Программа, написанная на ассемблере, является переносимой только в тех случаях, когда перенос операционной системы планируется на компьютер, обладающий той же системой команд. В остальных случаях ассемблер используется только для тех непереносимых частей системы, которые должны непосредственно взаимодействовать с аппаратурой (например, обработчик прерываний), или для частей, которые требуют максимальной скорости (например, целочисленная арифметика повышенной точности).
§ Объем машинно-зависимых частей кода, которые непосредственно взаимодействуют с аппаратными средствами, должен быть по возможности минимизирован. Так, например, следует всячески избегать прямого манипулирования регистрами и другими аппаратными средствами процессора. Для уменьшения аппаратной зависимости разработчики ОС должны также исключить возможность использования по умолчанию стандартных конфигураций аппаратуры или их характеристик. Каждый раз, когда какому-либо модулю ОС требуется выполнить некоторое действие, связанное с аппаратурой, он манипулирует абстрактными данными, используя соответствующую функцию из имеющегося набора. Когда ОС переносится, то изменяются только эти данные и функции, которые ими манипулируют. Например, в ОС Windows NT диспетчер прерываний преобразует аппаратные уровни прерываний конкретного типа процессора в стандартный набор уровней прерываний IRQL, с которыми работают остальные модули ОС. Поэтому при переносе Windows NT на новую платформу нужно переписать, в частности, те коды диспетчера прерываний, которые занимаются отображением уровней прерывания на абстрактные уровни IRQL, а те модули ОС, которые пользуются этими абстрактными уровнями, изменений не потребуют.
§ Аппаратно-зависимый код должен быть надежно изолирован в нескольких модулях, а не быть распределен по всей системе. Изоляции подлежат все части ОС, которые отражают специфику как процессора, так и аппаратной платформы в целом. Низкоуровневые компоненты ОС, имеющие доступ к процессорно - зависимым структурам данных и регистрам, должны быть оформлены в виде компактных модулей, которые могут быть заменены аналогичными модулями для других процессоров.
В идеале слой машинно-зависимых компонентов ядра полностью экранирует остальную часть ОС от конкретных деталей аппаратной платформы (кэши, контроллеры прерываний ввода-вывода и т. п.), по крайней мере для того набора платформ, который поддерживает данная ОС. В результате происходит подмена реальной аппаратуры некой унифицированной виртуальной машиной, одинаковой для всех вариантов аппаратной платформы. Все слои ОС, которые лежат выше слоя машинно-зависимых компонентов, могут быть написаны для управления именно этой виртуальной аппаратурой. Таким образом, у разработчиков появляется возможность создавать один вариант машинно-независимой части ОС (включая компоненты ядра, утилиты, системные обрабатывающие программы) для всего набора поддерживаемых платформ (рис. 2.2.1).
Рис. 2.2.1.Перенос операционной системы на разные аппаратные платформы
Совместимость и множественные прикладные среды
В то время как многие архитектурные особенности ОС непосредственно касаются только системных программистов, концепция множественных прикладных сред непосредственно связана с нуждами конечных пользователей — возможностью ОС выполнять приложения, написанные для других ОС. Такое свойство ОС называется совместимостью.
Двоичная совместимость и совместимость исходных текстов
Необходимо различать совместимость на двоичном уровне и совместимость на уровне исходных текстов. Приложения обычно хранятся в ОС в виде исполняемых файлов, содержащих двоичные образы кодов и данных. Двоичная совместимость достигается в том случае, когда можно взять исполняемую программу и запустить ее на выполнение в среде другой ОС.
Совместимость на уровне исходных текстов требует наличия соответствующего компилятора в составе программного обеспечения компьютера, на котором предполагается выполнять данное приложение, а также совместимости на уровне библиотек и системных вызовов. При этом необходима перекомпиляция имеющихся исходных текстов в новый исполняемый модуль.
Совместимость на уровне исходных текстов важна в основном для разработчиков приложений, в распоряжении которых эти исходные тексты всегда имеются. Но для конечных пользователей практическое значение имеет только двоичная совместимость, так как только в этом случае они могут использовать один и тот же коммерческий продукт, поставляемый в виде двоичного исполняемого кода, в различных операционных средах и на различных машинах. Обладает ли новая ОС двоичной совместимостью или совместимостью исходных текстов с существующими операционными системами, зависит от многих факторов. Самый главный из них — архитектура процессора, на котором работает новая ОС. Если процессор использует тот же набор команд (возможно, с некоторыми добавлениями) и тот же диапазон адресов, тогда двоичная совместимость может быть достигнута довольно просто. Для этого достаточно соблюдения следующих условий:
§ вызовы функций API, которые содержит приложение, должны поддерживаться данной ОС;
§ внутренняя структура исполняемого файла приложения должна соответствовать структуре исполняемых файлов данной ОС.
Гораздо сложнее достичь двоичной совместимости ОС, предназначенным для выполнения на процессорах, имеющих разные архитектуры. Помимо соблюдения приведенных выше условий необходимо организовать эмуляцию двоичного кода.
Пусть, например, требуется выполнить DOS-программу для IBM PC-совместимого компьютера на компьютере Macintosh. Компьютер Macintosh построен на основе процессора Motorola 680x0, а компьютер IBM PC — на основе процессора Intel 80x86. Процессор Motorola имеет архитектуру (систему команд, состав регистров и т. п.), отличную от архитектуры процессора Intel, поэтому ему непонятен двоичный код DOS-программы, содержащей инструкции этого процессора. Для того чтобы компьютер Macintosh смог интерпретировать машинные инструкции, которые ему изначально непонятны, на нем должно быть установлено специальное программное обеспечение — эмулятор.
Эмулятор должен последовательно выбирать каждую двоичную инструкцию процессора Intel, программным способом дешифрировать ее, чтобы определить, какие действия она задает, а затем выполнять эквивалентную подпрограмму, написанную в инструкциях процессора Motorola. Так как к тому же у процессора Motorola нет в точности таких же регистров, флагов и внутреннего арифметико-логического устройства, как в Intel, он должен также имитировать (эмулировать) все эти элементы с использованием своих регистров или памяти. Состояние эмулируемых регистров и флагов после выполнения каждой команды должно быть абсолютно таким же, как и в реальном процессоре Intel. Это очень медленная работа, так как одна команда процессора Intel исполняется значительно быстрее, чем эмулирующая его последовательность команд процессора Motorola.
Создание полноценной прикладной среды, полностью совместимой со средой другой ОС, является достаточно сложной задачей, тесно связанной со структурой операционной системы. Существуют различные варианты построения множественных прикладных сред, отличающиеся как особенностями архитектурных решений, так и функциональными возможностями, обеспечивающими различную степень переносимости приложений.
В ОС, построенных с использованием микроядерной концепции, таких как, например, Windows NT или Workplace OS, прикладные среды выполняются в виде серверов пользовательского режима. Один из наиболее очевидных вариантов реализации множественных прикладных сред основывается на стандартной многоуровневой структуре ОС. На рис. 2.2.3 операционная система OS1 поддерживает кроме своих «родных» приложений приложения операционных систем OS2 и OS3. Для этого в ее составе имеются специальные приложения — прикладные программные среды, — которые транслируют интерфейсы «чужих» ОС API OS2 и API OS3 в интерфейс своей «родной» ОС — API OS1.
Рис. 2.2.3. Прикладные программные среды, транслирующие системные вызовы
К сожалению, поведение почти всех функций, составляющих API одной ОС, как правило, существенно отличается от поведения соответствующих функций другой ОС.
2.3 ОС с монолитным ядром. Концепция построения ОС с монолитным ядром. Преимущества и недостатки монолитного ядра.
Монолитное ядро — классическая и, на сегодняшний день, наиболее распространённая архитектура ядер операционных систем. Монолитные ядра предоставляют богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве.
Монолитные ядра имеют долгую историю развития и усовершенствования и, на данный момент, являются наиболее архитектурно зрелыми. Вместе с тем, монолитность ядер усложняет их отладку, понимание кода ядра, добавление новых функций и возможностей, удаление унаследованного от предыдущих версий, кода. «Разбухание» кода монолитных ядер также повышает требования к объёму оперативной памяти, требуемому для функционирования ядра ОС. Это делает монолитные ядерные архитектуры мало пригодными к эксплуатации в системах, сильно ограниченных по объёму ОЗУ, например, встраиваемых системах, производственных микроконтроллерах и т. д.
Монолитное ядро представляет собой набор процедур, каждая из которых может вызвать каждую. Все компоненты этого ядра являются не самостоятельными модулями, а составной частью одной большой программы. Все процедуры работают в привелигированном режиме, используют общие структуры данных и взаимодействуют друг с другом путем непосредственного вызова.
Старые монолитные ядра требовали перекомпиляции при любом изменении состава оборудования. Большинство современных ядер позволяют во время работы динамически подгружатьмодули, выполняющие части функции ядра. Такие ядра называются модульными ядрами. Возможность динамической подгрузки модулей не нарушает монолитности архитектуры ядра, так как динамически подгружаемые модули загружаются в адресное пространство ядра и в дальнейшем работают как интегральная часть ядра.
Во многих ОС с монолитным ядром сборка ядра, т.е. его компиляция осуществляется отдельно для каждого компьютера, т.к. ядро является единой программой, то перекомпиляция - это единственный способ добавить в него новые компоненты или исключить неиспользуемые.
Достоинства: скорость работы, упрощённая разработка модулей.
Недостатки: поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.
Присутствие в ядре лишних компонентов крайне нежелательно, потому что ядро ОС полностью загружается в ОП, поэтому отсутствие в ядре неиспользуемых компонентов крайне важно. Кроме того исключение ненужных компонентов повышает надежность ОС в целом.
Такая организация ОС предлагает следующую структуру:
1 уровень: Главная программа
2 уровень: Набор служебных процедур
3 уровень: Набор утилит
Главная программа вызывает требуемую служебную процедуру. Набор служебных процедур выполняет системные вызовы, которые выполняются в привелигированном режиме. Набор утилит помогает выполнить сервисные процедуры.
2.4 Микроядерная архитектура. Концепция микроядерной архитектуры. Преимущества и недостатки микроядерной архитектуры.
Микроядерная архитектура является альтернативой классическому способу построения операционной системы. Под классической архитектурой в данном случае понимается рассмотренная выше структурная организация ОС, в соответствии с которой все основные функции операционной системы, составляющие многослойное ядро, выполняются в привилегированном режиме. При этом некоторые вспомогательные функции ОС оформляются в виде приложений и выполняются в пользовательском режиме наряду с обычными пользовательскими программами (становясь системными утилитами или обрабатывающими программами). Каждое приложение пользовательского режима работает в собственном адресном пространстве и защищено тем самым от какого-либо вмешательства других приложений. Код ядра, выполняемый в привилегированном режиме, имеет доступ к областям памяти всех приложений, но сам полностью от них защищен. Приложения обращаются к ядру с запросами на выполнение системных функций.
Рис. 2.4.1.Перенос основного объема функций ядра в пользовательское пространство
Все остальные более высокоуровневые функции ядра оформляются в виде приложений, работающих в пользовательском режиме. Однозначного решения о том, какие из системных функций нужно оставить в привилегированном режиме, а какие перенести в пользовательский, не существует. В общем случае многие менеджеры ресурсов, являющиеся неотъемлемыми частями обычного ядра — файловая система, подсистемы управления виртуальной памятью и процессами, менеджер безопасности и т. п., — становятся «периферийными» модулями, работающими в пользовательском режиме.
Работающие в пользовательском режиме менеджеры ресурсов имеют принципиальные отличия от традиционных утилит и обрабатывающих программ ОС, хотя при микроядерной архитектуре все эти программные компоненты также оформлены в виде приложений. Утилиты и обрабатывающие программы вызываются в основном пользователями. Ситуации, когда одному приложению требуется выполнение функции (процедуры) другого приложения, возникают крайне редко. Поэтому в ОС с классической архитектурой отсутствует механизм, с помощью которого одно приложение могло бы вызвать функции другого.
Совсем другая ситуация возникает, когда в форме приложения оформляется часть ОС. По определению, основным назначением такого приложения является обслуживание запросов других приложений, например создание процесса, выделение памяти, проверка прав доступа к ресурсу и т. д. Именно поэтому менеджеры ресурсов, вынесенные в пользовательский режим, называются серверами ОС, то есть модулями, основным назначением которых является обслуживание запросов локальных приложений и других модулей ОС. Очевидно, что для реализации микроядерной архитектуры необходимым условием является наличие в ОС удобного и эффективного способа вызова процедур одного процесса из другого. Поддержка такого механизма и является одной из главных задач микроядра.
Рис. 2.4.2. Реализация системного вызова в микроядерной архитектуре
Преимущества и недостатки микроядерной архитектуры
ОС, основанные на концепции микроядра, в высокой степени удовлетворяют большинству требований, предъявляемых к современным ОС, обладая переносимостью, расширяемостью, надежностью. За эти достоинства приходится платить снижением производительности, и это является основным недостатком микроядерной архитектуры.
Высокая степень переносимости обусловлена тем, что весь машинно-зависимый код изолирован в микроядре, поэтому для переноса системы на новый процессор требуется меньше изменений и все они логически сгруппированы вместе.
Расширяемость присуща микроядерной ОС в очень высокой степени. В традиционных системах даже при наличии многослойной структуры нелегко удалить один слой и поменять его на другой по причине множественности и размытости интерфейсов между слоями. Добавление новых функций и изменение существующих требует хорошего знания ОС и больших затрат времени. В то же время ограниченный набор четко определенных интерфейсов микроядра открывает путь к упорядоченному росту и эволюции ОС. Добавление новой подсистемы требует разработки нового приложения, что никак не затрагивает целостность микроядра. Микроядерная структура позволяет не только добавлять, но и сокращать число компонентов операционной системы, что также бывает очень полезно. Например, не всем пользователям нужны средства безопасности или поддержки распределенных вычислений, а удаление их из традиционного ядра чаще всего невозможно. Обычно традиционные ОС позволяют динамически добавлять в ядро или удалять из ядра только драйверы внешних устройств — ввиду частых изменений в конфигурации подключенных к компьютеру внешних устройств подсистема ввода-вывода ядра допускает загрузку и выгрузку драйверов «на ходу». При микроядерном подходе конфигурируемость ОС не вызывает никаких проблем и не требует особых мер — достаточно изменить файл с настройками начальной конфигурации системы или же остановить не нужные больше серверы в ходе работы обычными для остановки приложений средствами.
Использование микроядерной модели повышает надежность ОС. Каждый сервер выполняется в виде отдельного процесса в своей собственной области памяти и таким образом защищен от других серверов операционной системы, что не наблюдается в традиционной ОС, где все модули ядра могут влиять друг на друга. И если отдельный сервер терпит крах, то он может быть перезапущен без останова или повреждения остальных серверов ОС. Более того, поскольку серверы выполняются в пользовательском режиме, они не имеют непосредственного доступа к аппаратуре и не могут модифицировать память, в которой хранится и работает микроядро. Другим потенциальным источником повышения надежности ОС является уменьшенный объем кода микроядра по сравнению с традиционным ядром — это снижает вероятность появления ошибок программирования.
Производительность. При классической организации ОС (рис. 2.4.3, а) выполнение системного вызова сопровождается двумя переключениями режимов, а при микроядерной организации (рис. 2.4.3, 6) — четырьмя. Таким образом, ОС на основе микроядра при прочих равных условиях всегда будет менее производительной, чем ОС с классическим ядром. Именно по этой причине микроядерный подход не получил широкого распространения.
Рис. 2.4.3. Смена режимов при выполнении системного вызова
Читайте также: