Отправляет email-рассылки с помощью сервиса Sendsay

Внутренее устройство Windows

  Все выпуски  

Внутренее устройство Windows


Переносимость

Windows рассчитана на разные аппаратные платформы,включая как CISC-системы INTEL,так и RISC-системы.Windows NT первого выпуска поддерживала архитектуры х86 и MIPS.Спустя некоторое времябыла добавлена поддержка ALPHA AXP производства DEC (DEC была приобретена COMPAQ,а позднее произошло слияние компаний COMPAQ и Hewlett Packard).(Хотя Alpha AXP был 64-разрядным процессором,Windows NT работала с ним в 32-разрядном режиме.В ходе разработки Windows 2000 была создана ее 64-разрядная версия специально под Alpha AXP,но в свет она так и не вышла.)В Windows NT 3.51 ввели поддержку четвертой процессорной архитектуры - Motorola PowerPC.В связи с изменениями на рынке необходимость в поддержке MIPS и PowerPC практически отпала еще до начала разработки Windows 2000.Позднее Compaq поддержку архитектуры х86.В самые последние выпуски - Windows XP и Windows Server 2003 - добавлена поддержка трех семейств 64-разрядных процессоров: Intel Itanium IA-64,AMD x86-64 и Intel 64-bit Extension Technology (EM64T) для х86 (эта архитектура совместима с архитектурой AMD x86-64,хотя есть небольшие различия в поддерживаемых командах).Последние два семейства процессоров называются системами с 64-разрядными расширениями и в той книге обозначаются как х64.
Переносимость Windows Между системами с различной аппаратной архитектурой и платформами достигается главным образом двумя способами.

1)Windows имеет многоуровневую структуру.Специфичные для архитектуры процессора или платформы низкоуровневые части системы вынесены в отдельные модули.Благодаря этому высокоуровневая часть системы не зависит от специфики архитектур и аппаратных платформ.Ключевые компоненты,обеспечивающие переносимость операционной системы,- ядро (содержится в файле Ntoskrnl.exe) и уровень абстрагирования от оборудования (HAL) (содержится в файле Hal.dll). Функции, специфичные для конкретной архитектуры (переключение контекста потоков,диспетчеризация ловушек и др.),реализованы в ядре.Функции,которые могут отличатся на компьютерах с одинаковой архитектурой (например,в системах с разными материнскими платами),реализованы в HAL.Еще один компонент,содержащий большую долю кода,специфичного для конкретной архитектуры,- диспетчер памяти (memory manager),но если расматривать систему в целом,такого кода все равно немного.

2)Подавляющее большинство компонентов Windows написано на С и лишь часть из них - С++.Язык ассемблера применяли только при создании частей системы,напрямую взаимодействующих с системным оборудованием (например,при написании обработчика ловушек прерываний) или требующих исключительного быстродействия (скажем,при переключении контекста).Ассемблерный код имеется не только в ядре и HAL,но и в составе некоторых других частей операционной системы: процедур реализующих взаимоблокировку,механизма вызова локальных процедур (LPC),части подсистемы Windows,выполняемой в режиме ядра,и даже в некоторых библиотеках пользовательского режима (например,в коде запуска процессов в Ntdll.dll.

В избранное