Вопрос 5. Общие сведения об операционной системе Windows
В настоящее время большинство персональных компьютеров в мире работают под управлением той или иной версии операционной системы Windows (Microsoft). Программные продукты этого семейства обладают общими характерными чертами:
· единый графический пользовательский интерфейс;
· пошаговое выполнение операций за счет наличия Мастеров;
· поддержка работы в сетевой среде;
· наличие универсальной системы средств обмена данными между приложениями (буфер обмена, динамический обмен данными – DDE, связывание и встраивание объектов – OLE).
В операционных системах семейства Windows реализована открытая архитектура (Windows Open Services Architecture – WOSA), которая предоставляет механизмы для решения задачи передачи информации независимо от ее местоположения и формата представления. С их помощью пользователь компьютера может легко подключиться к любой из информационных служб, располагающихся в различных сетях или операционных системах. В настоящее время обеспечивается стандартный доступ к базам данных, почте, телефонным сетям и системам лицензирования, сетевым службам и специализированным службам (финансовые системы и данные реального времени).
Первыми разработками Microsoft в области создания новых ОС для персональных компьютеров были программные среды Windows 3.x (Windows 3.0, Windows 3.1, Windows 3.11 for Workgroup), которые представляли собой графическую надстройку над операционной системой MS DOS.
Затем на рынок операционных систем корпорацией была представлена первая настоящая ОС семейства Windows – Windows 95[8][1]. Она является многозадачной, 32-разрядной ОС с расширенными сетевыми функциями и обеспечивает широкие возможности работы с мультимедиа, обработки текстовой, графической, звуковой и видеоинформации, а также предоставляет встроенные средства поддержки обмена файлами и их защиты, возможность совместного использования принтеров, факсов и других общих ресурсов. Windows 95 позволяет отправлять сообщения электронной почтой, факсимильной связью, поддерживает удаленный доступ. Применяемый в ней защищенный режим не позволяет прикладной программе в случае сбоя нарушить работоспособность системы, надежно предохраняет приложения от случайного вмешательства одного процесса в другой, обеспечивает определенную устойчивость к вирусам.
Windows 98 отличается от Windows 95 интеграцией с браузером Internet Explorer, что обеспечивает отображение содержимого папок в виде окна браузера; улучшенной совместимостью с новыми аппаратными средствами компьютера; поддержкой стандарта plug-and-play[9][2]. Может использоваться на настольных и портативных компьютерах.
Windows Millenium Edition (Windows ME) является очередной версией ОС линейки Windows 95, Windows 98 и Windows 98 SE. В ее основе лежит ядро Windows 98.
Параллельно с Windows 95 корпорация Microsoft представила на рынок принципиально новую операционную систему – Windows NT (New Technology), ставшую родоначальницей ряда ОС. Это 32-разрядная система со встроенной сетевой поддержкой и развитыми средствами многопользовательской работы. Она обеспечивает истинную многозадачность, многопроцессорную обработку, разграничение доступа к аппаратным и информационным ресурсам, защиту данных и многое другое.
Эта операционная система очень удобна для пользователей, работающих в локальной сети, а также для коллективных пользователей, особенно группы, выполняющей совместный проект и обменивающейся данными. Поставляется в двух вариантах Windows NT Server и Windows NT for Workstation.
Операционная система нового поколения Windows 2000 ориентирована на разнообразные компьютеры: портативные, настольные, серверы и кластерные системы, и обеспечивает тесную интеграцию с Internet. Она является развитием ОС Windows NT 4.0 и характеризуется следующими параметрами:
· имеет 32-разрядную файловую систему с открытой для дальнейшего развития архитектурой, работающую быстрее и реализующую множество новых возможностей;
· максимально упрощает установку и настройку оборудования за счет поддержки стандарта plug-and-play;
· имеет встроенные средства для работы со звуком, видео и компакт-дисками (CD-ROM); диагностики, оптимизации и исправления ошибок, которые помогают устранять конфликты между устройствами и повышают эффективность функционирования всей системы;
· включает эффективные инструменты для работы с Internet, которые ускоряют работу и поиск информации в World Wide Web.
Вследствие наличия эффективных средств обеспечения защиты (сохранение состояния системы для ее восстановления после сбоев, модифицированная файловая система, шифрование, управление доступом и прочее) Windows 2000 была признана одной из самых безопасных ОС.
В системе Windows 2000 реализованы многие решения, призванные уменьшить затраты на эксплуатацию системы в корпоративных сетях.
Семейство Windows 2000 включает: Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, Windows 2000 Datacenter Server. Каждая из них предназначена для своих целей и имеет соответствующие возможности и функции. Например, Windows 2000 Professional ориентирована на домашние компьютеры или рабочие станции.
Windows XP объединяет в себе лучшие качества предыдущих версий Windows: надежность, стабильность и управляемость – от Windows 2000, технологию plug-and-play – от Windows 98. В ней реализован более эффективный интерфейс пользователя, включающий новые возможности группировки и поиска документов, возможность быстрого переключения пользователей и т.д. Пользователь Windows XP может создавать компакт-диски в форматах, позволяющих осуществлять однократную или многократную запись (CD-R или CD-RW), применяя для этого обычный метод перетаскивания или соответствующих мастеров. Операционная система Windows XP реализована корпорацией Microsoft в двух версиях: для домашних пользователей Windows XP Home Edition, и для корпоративных клиентов – Windows XP Professional Edition.
ОС Windows NT, 2000, XP поддерживают файловые системы FAT, NTFS, CDFS.
Дальнейшее развитие возможностей ОС Windows 2000 Server получили в 64-разрядной операционной системе Windows Server 2003, версии которой ориентированы на малый бизнес и рынок SOHO (Small Office/Home Office – малый офис/домашний офис), серверы крупных предприятий, построение Web-серверов.
Windows CE – операционная система для мобильных вычислительных устройств, таких, как карманные компьютеры, цифровые информационные пейджеры, сотовые телефоны, мультимедийные и развлекательные приставки, включая DVD проигрыватели и устройства доступа в Internet. Это 32-разрядная, многозадачная операционная система, имеющая открытую архитектуру. Windows CE позволяет устройствам различных категорий «говорить» и обмениваться информацией друг с другом, связываться с корпоративными сетями и с Internet, пользоваться электронной почтой. Она компактна и высоко производительна, функционирует на микропроцессорах различных марок и изготовителей.
Cемейство Unix является одной из альтернатив семейству ОС Windows. Unix была создана в Bell Telephone Laboratories. Основное отличие и преимущество этого семейства заключается в реализации для широкого круга аппаратных платформ – это первая действительно переносимая на различные аппаратные платформы операционная система. Unix ориентирована, прежде всего, на работу в больших локальных и глобальных сетях. В ней используются различные варианты графического интерфейса. Универсальность системы обеспечивается множеством прикладных программ.
В настоящее время существуют версии ОС Unix от различных производителей. Среди них наиболее известны коммерческие версии Sun и Solaris для компьютеров фирмы Sun, AIX для мини-компьютеров IBM, IRIX для компьютеров Silicon Graphics, свободно распространяемые FreeBSD и Linux для компьютеров платформы Intel.
Независимо от версии общими для Unix чертами являются:
· многопользовательский режим и наличие мощных средств защиты данных от несанкционированного доступа;
· переносимость системы за счет написания ее ядра на языке С;
· наличие простого пользовательского интерфейса;
· наличие встроенных средств поддержки компьютерных сетей, что делает систему одной из самых популярных серверных платформ в Internet.
В настоящее время все большую популярность приобретает ОС Linux, которая является многозадачной, многопользовательской операционной системой с поддержкой национальных и стандартных клавиатур, поддерживает различные типы файловых систем, в частности, MS DOS, обеспечивает поддержку полного семейства протоколов TCP/IP для работы в сети.
Первая версия операционной системы Linux была создана в 1991 г. финским студентом Линусом Торвальдсом. Эта система распространяется бесплатно (англ. freeware), и ее программный код доступен всем желающим, поэтому многие программисты стали поддерживать Linux, добавляя к ней драйверы устройств, разрабатывая разные приложения и др.
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
Основные сведения об операционной системе Windows
Windows – это операционные системы защищенного режима (32-битные и 64-битные версии). Система безопасности этих операционных систем построена на разделении кода пользователя и системного кода. Код пользователя работает в режиме «user mode» и на него наложено множество ограничений. Системный код работает в режиме «kernel mode» и почти ничем не ограничен.
Основанная единица выполнения в Windows – это поток (по терминологии защищенного режима – задача). Потоки объединяются в процессы. В общем случае одна программа – это один процесс. В процессе может быть сколько угодно потоков. Каждый процесс обособлен от всех остальных. Это достигается за счет того, что у каждого процесса своя собственная виртуальная память. Тем не менее, если программе надо получить доступ в памяти других процессов, она может осуществить это через специальные системные сервисы.
Диспетчеризация потоков осуществляется на основе приоритетов. Приоритеты у потоков являются динамическими, т. е. могут меняться в зависимости от того, что делает поток. В некоторый момент времени процессором всегда выполняется поток с наибольшим приоритетом.
Память в Windows
Каждый процесс имеет свое собственное виртуальное адресное пространство. Адресное пространство любого процесса разбито на две равные части: память процесса и память системы. Младшие 2 Гбайт памяти являются памятью процесса, старшие 2 Гбайт – памятью системы. Память системы одна для всех процессов, она недоступна из режима пользователя «user mode» даже для чтения. Любое обращение к ней приводит к ошибке доступа и завершению приложения.
В некоторых случаях под память процесса выделяется 3 Гбайт памяти, а под память системы – 1 Гбайт. Так делается тогда, когда используются приложения, требовательные к памяти, которым 2 Гбайт памяти недостаточно. Для 64-битных систем этот метод потерял актуальность.
Адреса в диапазоне 0h – FFFFh никому не доступны. Эта память нужна для выявления нулевых указателей. Любой указатель, значение которого меньше 100000h, считается нулевым. Таким образом, каждому процессу в Win32 в общем случае доступно 2 Гбайт (за вычетом 64 Кбайт) виртуальной памяти.
Исполняемые компоненты Windows
В операционных системах (ОС) Windows имеется несколько типов исполняемых файлов. Все они имеют формат РЕ (Portable Executable). Наиболее часто используемые исполняемые компоненты в Windows: EXE (приложение), DLL (динамическая библиотека), SYS (драйвер).
EXE-файлы – это самый распространенный тип исполняемых файлов в Windows. В них находятся программы.
DLL-файлы – это динамически загружаемые библиотеки. В них хранятся функции и процедуры, которые могут использовать другие исполняемые компоненты.
SYS-файлы – это файлы драйверов режима ядра. В них находится код нулевого кольца операционной системы.
Файлы формата РЕ состоят из заголовка и секций. Секция в РЕ-файле – это его основная составляющая единица. В заголовке содержатся основные характеристики файла и таблица секций.
Рассмотрим базовые характеристики исполняемых файлов. Самые главные характеристики файла – точка входа и база образа, т. е. указание, по какому адресу должен быть загружен данный модуль.
При создании исполняемого файла компоновщик должен вставить в код программы вместо меток конкретные адреса и подразумевает, что этот код будет загружен по некоторому базовому адресу. Загрузчик Windows должен знать, по какому адресу надо загрузить данный исполняемый файл, и именно для этого используется поле базы образа в заголовке исполняемого файла. Очень часто при загрузке файлов DLL и SYS адрес, указанный в поле базы образа, является уже занятым или просто недоступным. Если при загрузке исполняемого файла адрес, указанный в поле базы образа, уже занят, то он грузит файл по другому адресу и при этом загрузчику надо подправить в коде программы все обращения к данным. Для этого загрузчику будут нужны релокейшены. Релокейшены содержат информацию о командах, в которых есть обращения к памяти для поправки адресов. Точкой входа содержит адрес, с которого начнется выполнение исполняемого файла.
Каждый файл может иметь таблицу импорта и экспорта. С помощью таблицы импорта исполняемый файл может импортировать функции, которые находятся в других модулях, загруженных в текущее адресное пространство, и использовать эти функции как свои. Для того чтобы другие модули могли использовать функции из данного модуля, адреса этих функций должны быть прописаны в таблице экспорта.
Как было сказано выше, в заголовке PE-файла содержится таблица секций, она описывает каждую секцию в РЕ-файле: начало данных в секции, размер данных, адрес, куда должна быть спроецирована данная секция и ее характеристики. Наиболее часто в секциях находятся данные, код, импорты, экспорты и релокейшены.
Итак, файлы с расширением .EXE являются обычными программами. В 99,99 % случаев ЕХЕ-файл представляет процесс, в память которого он загружен. Файлы с расширением .DLL являются библиотеками, где содержатся функции, которые могут использовать другие программы или другие DLL. Файлы с расширением .SYS являются драйверами режима ядра. Код, содержащийся в них, выполняется на нулевом уровне привилегий, в режиме ядра. В файлах DLL и SYS точка входа указывает на инициализирующую функцию.
Системные библиотеки и подсистемы
В коде Win32, выполняемом в режиме пользователя, запрещены любые прямые обращения к устройствам и портам ввода-вывода. Это значит, что любые обращения к портам ввода-вывода, вызов прерываний и выполнение привилегированных инструкций приведут к ошибке и завершению программы. Обращение к памяти, на которую спроецированы регистры устройств, обращение к другим важным областям памяти (например, 0B8000h) ничего не даст. Без обращения к внешним устройствам и портам ввода-вывода польза от программ, работающих в третьем кольце, нулевая. Для того чтобы они могли обратиться к внешним устройствам и наладить взаимодействие с «окружающим миром», операционная система предоставляет программам API-функции (Application Program Interface).
Программирование в Windows основывается на использовании интерфейса прикладного программирования API. Он предоставляет программисту набор готовых классов, функций, структур и констант. Их количество составляет около двух тысяч. API-функции обеспечивают взаимодействие приложения с внешними устройствами и ресурсами операционной системы.
Все API-функции содержатся в системных DLL-библиотеках. Самые главные из DLL-библиотек:
1) kernel32.dll – взаимодействие с системой;
2) user32.dll – пользовательский интерфейс;
3) gdi32.dll – графика.
Библиотека kernel32.lib предназначена для работы с объектами ядра операционной системы, ее функции позволяют управлять памятью и другими системными ресурсами. Библиотека user32.lib отвечает за окна и интерфейс пользователя, в ней сосредоточены функции для управления окнами, обработки сообщений, работы с меню, таймерами и т.п. Библиотека gdi32.dll обеспечивает графический интерфейс операционной системы. В состав библиотеки входят функции управления выводом на экран монитора, управления выводом принтера, функции для работы со шрифтами и т. п.
Функции библиотеки kernel32.dll в основном являются оболочками вокруг функций из ntdll.dll.
Функции из библиотеки ntdll.dll являются переходниками к функциям ядра Windows. Эти функции принимают параметры, подготавливают их к вызову команды «sysenter». Библиотека ntdll.dll – важнейший компонент пользовательской подсистемы Windows и является основополагающей для всех подсистем, так как именно через нее пользовательский код может взаимодействовать с кодом ядра. Эта библиотека загружается в память любого процесса одной из первых и всегда по одному и тоже адресу. Библиотека kernel32.dll является основополагающей для подсистемы Win32. Она загружается во все процессы Win32 одной из первых (после ntdll) и всегда по одному и тому же адресу.
Модель вызова функций в Win32
В системах Win32 при вызове всех системных функций используется модель вызова stdcall.
Согласно этой модели параметры функций передаются через стек в обратном порядке. При этом за очистку стека от параметров ответственна вызываемая функция. Например, если у функции есть три параметра, то вызов по соглашению stdcall будет выглядеть так:
Результат выполнения функции будет содержаться в регистре ЕАХ.
При использовании API-функций следует помнить, что они сохраняют значение не всех регистров общего назначения. Соглашение stdcall предусматривает сохранение содержимое регистров ЕВХ, ESI, EDI и ЕВР. При написании функций обратного вызова также надо обязательно сохранять содержимое этих регистров, поскольку код системных функций не ожидает их изменения.
Выполнение программ в Win32
При загрузке исполняемого файла загрузчик Windows выполняет такие действия:
1) создает для файла виртуальное адресное пространство размером 4 Гбайт, причём нижние 2 Гбайт из них доступны приложению;
2) загружает системные библиотеки ntdll.dll, kernel32.dll и библиотеки, указанные в таблице импорта файла;
3) создает первичный поток процесса, который начинает свое выполнение с точки входа программы.
Во время выполнения процесса, вернее, его потоков, ему запрещены какие-либо обращения к портам ввода-вывода и вызов каких-либо прерываний, запрещена работа с привилегированными регистрами и выполнение привилегированных команд. Чтобы программы могли работать с внешними устройствами, Windows предоставляет им API-функции, позволяющие им работать с внешними устройствами, взаимодействовать с системой, а также друг с другом. API-функции находятся в системных библиотеках. Каждая функция, которая работает с ресурсом, охраняемым системой (файлы, процессы, устройства и т. д.), вызывает соответствующую функцию ядра системы.
Резюмируем все вышесказанное. Операционная система помещает программу в некоторое изолированное адресное пространство, разрешая ей взаимодействовать с «внешним миром» посредством функций (системных сервисов), которые сама же и предоставляет. Операционная система избавляет программиста, который пользуется ассемблером, от множества забот, которые вообще-то не должны его касаться. Например, от работы с системными регистрами и структурами, взаимодействия с внешними устройствами, реализации работы с файловой системой и т. д.
В связи с этим программирование на ассемблере под Win32 намного легче. Например, при работе с файлами программисту не нужно заботиться о том, какая же модель жесткого диска установлена на компьютере: достаточно просто вызывать функции, которые предоставляет операционная система, а она уже сама разберется со всеми проблемами.
Типы структур программ Windows
Возможны три типа структур программ для Windows:
1) диалоговая (основное окно – диалоговое);
3) классическая (GUI, graphical user interface).
Диалоговые приложения для Windows имеют минимальный интерфейс связи с пользователем и передают информацию посредством диалоговых окон (например, окна сообщения MessageBox).
Консольные приложения представляет собой программу, работающую в текстовом режиме. Работа консольного приложения напоминает работу MS-DOS. Но это лишь внешнее впечатление. Консольное приложение обеспечивается специальными функциями Windows. Диалог с пользователем ведется посредством консоли. Примером консольного приложения является Far.
Оконные приложения строится на базе набора функций API, составляющих графический интерфейс пользователя GUI. Главным элементом такого приложения является окно. Окно может содержать элементы управления: кнопки, списки, окна редактирования и др. Эти элементы, по сути, также являются окнами, но обладающими особыми свойствами. События, происходящие с этими элементами (и самим окном), приводят к приходу сообщений в процедуру окна. Диалог с пользователем ведется посредством графического интерфейса.
Дата добавления: 2018-06-27 ; просмотров: 1238 ; Мы поможем в написании вашей работы!