Операционные системы типа UNIX, Windows. Операционная система Windows 2000/2003: основные свойства Windows, файловые системы Window. Операционные системы Linux, Unix

Операционная система UNIX — одна из самых популярных в мире операционных систем благодаря тому, что ее сопровождает и распространяет большое число компаний. Была разработана Кеном Томпсоном — сотрудником фирмы Bell Laboratories концерна AT&T в 1969 году как многозадачная система для миникомпьютеров и мэйнфреймов. UNIX вобрала в себя целый ряд новых разработок в области операционных систем. В принципе, она создавалась как операционная система для исследователей. При разработке UNIX была поставлена задача создать систему, которая могла бы удовлет­ворять непрерывно изменяющимся требованиям сотрудников, зани­мающихся разнообразными исследованиями.

В 1970 году Деннис Ритчи вместе с Кеном Томпсоном перепи­сали код системы с машинно-зависимого языка ассемблера (на ко­тором тогда писались все операционные системы) на язык высоко­го уровня — Си. Это позволило им написать всего одну версию операционной системы UNIX, которую потом можно было компи­лировать Си-компиляторами на различных машинах. Операцион­ная система UNIX стала, по сути дела, мобильной, то есть способ­ной работать на различных типах машин практически без пере­программирования. Кроме того, она позволяет иметь несколько видов Shell, т. е. интерфейсов взаимодействия между ядром и поль­зователем или интерпретаторов.

В 1974 году UNIX была передана университетам «для образова­тельных целей», а несколько лет спустя нашла коммерческое при­менение. Сейчас существуют версии UNIX для многих систем, начиная от PC (персонального компьютера) до су­перкомпьютеров, таких, как Cray Y-MP.

Для проведения сложных экспериментальных исследований, связанных с большим количеством сложных вычислений над боль­шим объемом данных, требуются значительные системные ресурсы. В этом случае многие UNIX системы позволяют организовать клас­тер, т. е. многомашинный вычислительный комплекс, где все ресур­сы компьютеров (дисковое пространство, память, ресурсы процес­сора) являются разделяемыми и доступными для любого пользова­теля в соответствии с его правами. В такой системе существует возможность постоянного наращивания мощности кластера, путем подсоединения дополнительных компьютеров, а работа в ней при этом остается для пользователя абсолютно «прозрачной», как если бы он работал на одном компьютере с огромными ресурсами.

Основные компоненты ОС UNIX

core — ядро системы;

kernel — оболочка ядра системы;

development system — средства разработки программ;

manuals — экранные руководства пользователя и программиста;

VP/ix — эмулятор MS-DOS;

UUCP — средства передачи данных по каналам связи;

STREAMS — механизм сетевых протоколов;

TCP/IP — сетевой протокол;

NFS — сетевая файловая система;

X Window — средства сетевых графических интерфейсов пользо­вателя (GUI);

Looking Glass — командная оболочка на базе GUI.

Ядро управляет основными ресурсами (процессор, оперативная память) и периферийными устройствами обмена и хранения данных (магнитные диски, магнитные ленты, принтеры, терминалы, линии связи и т. д.). Одной из функций ядра ОС UNIX является программ­ная поддержка файловой системы (ФС). Командный интерпретатор Shell обслуживает терминал пользователя и транслирует команды в запрос к ядру ОС. ^

Основные понятия, связанные с работой пользователя в ОС UNIX

Начало и конец сеанса работ. Каждый пользователь системы имеет:

• имя пользователя (для установления взаимодействия пользова­телей и начисления расходов);

• пароль пользователя (для контроля входа в систему и защиты своих данных).

Пользователи могут быть объединены в группы (например, во время работы над совместными проектами) для разделения общих ресурсов, тогда еще есть имя группы пользователей [2].

Один пользователь, называемый superuser, является админист­ратором системы (его имя root). В частности, он «заводит» (регист­рирует) всех прочих пользователей.

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

Имеется ряд команд, расположенных обычно в каталоге /etc, рассчитанных на управление системой, таких, как fsck, mount, chown и т. д. Как правило, каталог /etc доступен только суперпользовате­лю, так что системный администратор должен обладать правами су­перпользователя.

Спецпользователи. Это пользователи, выполняющие действия над системой, недоступные обычным, пользователям. Один из них, имеющий неограниченные полномочия, называется суперпользова­телем и имеет обычно имя root. Разные системы могут иметь и дру­гих спецпользователей, например пользователя с именем bin, обла­дающих меньшими полномочиями, чем суперпользователь.

Имеются команды, которые может выполнить только супер­пользователь, в частности установка даты командой date, монтаж файловой системы командой mount, создание специальных файлов командой mknod и др.

Стать суперпользователем можно несколькими способами. Пер­вый — загрузить систему в режиме единственного пользователя. Другой, применяемый на многопользовательской системе, — вы­полнить команду SU (superuser). Администратору системы рекомен­дуется входить в систему как обычному пользователю и только в случае необходимости становиться временно суперпользователем по команде SU.

Пользователи и группы. Имеется два файла с именами passwd и group, находящихся в каталоге /etc, которые содержат информацию о пользователях и группах пользователей соответственно. Одна за­пись в файле passwd соответствует одному пользователю и имеет следующие текстовые поля, разделенные символом двоеточия:

имя пользователя;

пароль пользователя (в закодированном виде);

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

целочисленный идентификатор группы;

комментарий, который содержит сведения о месте работы пользователя и может использоваться командой finger и учет­ными программами;

каталог пользователя;

интерпретатор команд пользователя.

Управление операционной системой. Средства управления операционной системой – аппаратно-зависимы, однако приводимое ниже описание этих средств являются типичными для большинства версий ОС UNIX.

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

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

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

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

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

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

Удобство и эффективность современных вариантов ОС UNIX не означает, что вся система, включая ядро, спроектирована и структуризована наилучшим образом. ОС UNIX развивалась на протяжении многих лет. Наращивались возможности систе­мы, и, как это часто бывает в больших системах, качественные улучшения структуры ОС UNIX не поспевали за ростом ее возмож­ностей.

В результате ядро большинства современных коммерческих ва­риантов ОС UNIX представляет собой не четко структуриро­ванный монолит большого размера. По этой причине программиро­вание на уровне ядра ОС UNIX продолжает оставаться искусством (если не считать отработанной и понятной технологии разработки драйверов внешних устройств). Эта недостаточная технологичность организации ядра ОС UNIX многих не удовлетворяет.

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

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

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

Машинно-зависимая часть традиционного ядра ОС UNIX включает следующие компоненты:

раскрутки и инициализации системы на низком уровне (пока это зависит от особенностей аппаратуры);

первичной обработки внутренних и внешних прерываний;

управления памятью (в той части, которая относится к особенностям аппаратной поддержки виртуальной памяти);

переключения контекста процессов между режимами пользо­вателя и ядра; • связанные с особенностями целевой платформы части драйве­ров устройств.

Основные функции. К основным функциям ядра ОС UNIX при­нято относить следующие:

инициализации системы — функция запуска и раскрутки. Ядро системы обеспечивает средство раскрутки (bootstrap), ко­торое обеспечивает загрузку полного ядра в память компьюте­ра и запускает ядро;

Управление процессами и нитями – функция, завершения и отслеживания существующих процессов и нитей («процессов», выполняемых на общей виртуальной памяти). Поскольку ОС UNIX является мультипроцессорной операционной системой, ядро обеспечивает разделение между запушенными процессами времени процессора (или процессоров в мультипроцессорных системах) и другими ресурсами копьютера.

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

Управление файлами – функция, реализующая абстракцию файловой системы, - иерархи каталогов и файлов. Файловые системы ЩС UNIX поддерживают несколько типов файлов. Некоторые файлы могут содержать данные в формате ASCII, другие будут соответствовать внешним устройствам. В файловой системе хранятся объектные файлы, выполняемые файлы и т.д. Файлы обычно хранятся на устройствах внешней памяти; доступ к ним обеспечивается средствами ядра. В мире UNIX существует несколько типов организации файловых систем. Современные варианты ОС Unix одновременно поддерживают большинство типов файловых систем;

Коммуникации и обеспечения возможности обмена данными между процессорами, выполняющимися внутри одного компьютера (IPC - Inter-Process Communications), между процессорами, выполняющимся в разных узлах локальной и глобальной сети передачи данных, а также между процессорами и драйверами внешних устройств;

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

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

Название не изменяет смысл, который состоит в том, что для обращения к функциям ядра ОС используя «специальные команды» процессора, при выполнении которых возникает особого рода внутреннее прерывание процессора, переводящие его в режим ядра (в большинстве современных ОС это вид прерываний называется trap - ловушка). При обработке таких прерываний (дешифрации) ядро ОС распознает, что на самом деле прерывание является запросом к ядру со стороны пользовательской программы на выполнение определенных действий, выбирает параметры обращения и обрабатывает его, после чего выполняет «возврат из прерывания», возобновляя нормальное положение пользовательской программы.

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

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

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

Принятого на сегодня механизма состоит в том, что возможному прерыванию процессора (будь то внутренние или внешние прерывание) соответствует некоторый фиксированный адрес физической оперативной памяти. В тот момент, когда процессору разрешается прерываться по причине наличия внутренней или внешней заявки на прерывание, происходит аппаратная передача управления на ячейку физической оперативной памяти с соответствующим адресом – обычно адрес этой ячейки называется «вектором прерывания».

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

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

Операционная оболочка Windows 3.1, Операционная оболочка Windows 3.1 — надстройка над DOS, обеспечивающая более удобный и наглядный интерфейс для пользователей (графический интерфейс), т. е. набор средств для вывода изображений на экран и манипулирования ими, построения меню, окон на экране и т.д., мультипрограммирования (т. е. возможность одновременного выполнения нескольких программ), имеющая расширенные средства для обмена информацией между программами [16].

В течение долгих лет с момента своего появления персональные компьютеры (IBM-совместимые) обходились без специальных «пользовательских оболочек», работая непосредственно под управлением операционной системы (MS-DOS, DR DOS, PC DOS...).

Версия 3.0 оболочки Windows (и появившаяся следом 3.1) использует совершенно другие принципы в части интерфейса пользователя с ЭВМ. (Можно считать эти принципы новыми, но машины фирмы Apple строятся на этих принципах уже в течение многих лет.) Основная идея, заложенная в основу оболочки Windows, — ес­тественность представления информации. Информация должна представляться в той форме, которая обеспечивает наиболее эффек­тивное усвоение этой информации человеком. Windows 3.1 представляет собой существенный шаг вперед по сравнению с предыдущими интерфейсами пользователя с ЭВМ. Наиболее важными от­личительными чертами ее являются следующие:

  • Windows представляет собой замкнутую рабочую среду. Практи­чески любые операции, доступные на уровне операционной системы, могут быть выполнены без выхода из Windows. За­пуск прикладной программы, форматирование дискет, печать текстов — все это можно вызвать из Windows и вернуться в Windows по завершении операции. Опыт работы в DOS приго­дится и здесь: многие основополагающие принципы и поня­тия среды Windows не отличаются от соответствующих прин­ципов и понятий среды DOS;
  • основными понятиями пользовательского интерфейса в среде Windows являются окно и пиктограмма. Все, что происходит в рамках оболочки Windows, в определенном смысле представ­ляет собой либо операцию с пиктограммой, либо операцию с окном (или в окне). Стандартизована в среде Windows и структура окон и расположение элементов управления ими. Стандартизованы наборы операций и структура меню для сер­висных программ. Стандартны операции, выполняемые с по­мощью мыши для всех сервисных и прикладных программ;
  • Windows представляет собой графическую оболочку. От пользо­вателя не требуется ввод директив с клавиатуры в виде тексто­вых строк. Необходимо выбирать из предлагаемого набора требуемую операцию с помощью курсора мыши. С помощью, того же манипулятора можно перемещать пиктограммы и окна по экрану, менять их размер, открывать и закрывать их. Традиционный интерфейс DOS понятие «графически-ориентированный» включает в себя для Windows также и соответствие изоб­ражения на экране последующему изображению на твердой копии (распечатке), В этом плане можно считать, что в обо­лочке Windows реализован принцип WYSIWYG, до сих пор бывший привилегией относительно небольшого числа программ. С помощью TrueType-шрифтов этот принцип на­шел в рамках Windows 3.1 свое дальнейшее развитие;
  • Windows обеспечивает независимый запуск и параллельное выпол­нение нескольких программ. Большинство других оболочек и операционных систем рассчитано на выполнение в данный момент только одной программы. В рамках Windows пользова­тель может запустить несколько программ для параллельного (независимого) выполнения. Каждая из выполняемых про­грамм имеет свое собственное окно;
  • Windowsинтегрированная программа. Под управлением обо­лочки Windows могут работать не только специальные про­граммы, разработанные для эксплуатации в среде Windows (Windows-приложения), но и «обычные» программы, работаю­щие в среде DOS, т. и, DOS-приложения (DOS-прикладные программы). Оболочка Windows обеспечивает эффективный и комфортабельный обмен информацией между отдельными программами, выполняемыми под ее управлением, в первую очередь о Windows-приложениях. С понятием «интегрированное» связывают обычно также возможность со­вместного использования ресурсов компьютера различными программами. Например, принтер, подключенный к компью­теру, может с одинаковым успехом использоваться всеми про­граммами на конкурентной основе. Причем все операции, связанные с необходимостью перекодировок, смен драйверов (например, при переходе от печати текстов к выводу иллюстраций) берет на себя оболочка.

Основные преимущества Windows:

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

Windows — программы могут обращаться к внешним устройст­вам только через Windows, a DOS — программы обращаются к устройствам, минуя DOS. Это снимает с разработчиков проблему совместимости с конкретным внешним устройством.

2. Имеются средства для построения пользовательского интер­фейса программ (окна, меню, запросы, списки программ и т. д.).

3. Доступность всей оперативной памяти (а не 640 Кбайт, как в DOS).

4. Динамическое подключение библиотек (dll-файлов). Библио­теки расширяют возможности Windows и могут быть вызваны авто­матически любой Windows-программой.

5. Обмен данным между приложениями Windows.

6. Использование масштабируемых шрифтов типа True Type.

7. Организация встроенных справочников программ,

8. Единый пользовательский интерфейс.

9. Многозадачность — одновременное выполнение нескольких программ, переключение с одной задачи на другую, управление приоритетами выполняемых программ.

10. Совместимость с DOS-приложениями. Многие DOS-про­граммы запускаются под управлением Windows, но работают мед­леннее.

11- Поддержка мультимедиа (подключение CD-ROM, медиапреера, микрофона, видеокамеры и других средств обмена информа­цией с окружающей средой).

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

Каждое окно в обязательном порядке содержит поле заголовка и Рабочее поле (или поле индикации).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: