Переносимость
Windows рассчитана на разные аппаратные платформы, включая как CISC-системы Intel, так и RISC-системы. Windows NT первого выпуска поддерживала архитектуры x86 и MIPS. Спустя некоторое время была добавлена поддержка Alpha AXP производства DEC (DEC была приобретена Compaq, а позднее произошло слияние компаний Compaq и Hewlett Packard).
(Хотя Alpha AXP был 64 -разрядным процессором, Windows NT работала с ним в 32-разрядном режиме. B ходе разработки Windows 2000 была создана ее 64 -разрядная версия специально под Alpha AXP, но в свет она так и не вышла.) B Windows NT 3.51 ввели поддержку четвертой процессорной архитектуры — Motorola PowerPC. B связи с изменениями на рынке необходимость в поддержке MIPS и PowerPC практически отпала еще до начала разработки Windows 2000. Позднее Compaq отозвала поддержку архитектуры Alpha AXP, и в Windows 2000 осталась поддержка лишь архитектуры x86. B самые последние выпуски — Windows XP и Windows Server 2003 — добавлена поддержка трех семейств 64 -разрядных процессоров: Intel Itanium IA -64, AMD x86-64 и Intel 64 -bit Extension Technology (EM64T) для x86 (эта архитектура совместима с архитектурой AMD x86-64, хотя есть небольшие различия в поддерживаемых командах). Последние два семейства процессоров называются системами с 64-разрядными расширениями и в этой книге обозначаются как x64. (Как 32 -разрядные приложения выполняются в 64 -разрядной Windows, объясняется в главе 3.)Переносимость Windows между системами с различной аппаратной архитектурой и платформами достигается главным образом двумя способами.
• Windows имеет многоуровневую структуру. Специфичные для архитектуры процессора или платформы низкоуровневые части системы вынесены в отдельные модули. Благодаря этому высокоуровневая часть системы не зависит от специфики архитектур и аппаратных платформ.
Ключевые компоненты, обеспечивающие переносимость операционной системы, — ядро (содержится в файле Ntoskrnl.exe) и уровень абстрагирования от оборудования (HAL) (содержится в файле Hal.dll). Функции, специфичные для конкретной архитектуры (переключение контекста потоков, диспетчеризация ловушек и др.), реализованы в ядре. Функции, которые могут отличаться на компьютерах с одинаковой архитектурой (например, в системах с разными материнскими платами), реализованы в HAL. Еще один компонент, содержащий большую долю кода, специфичного для конкретной архитектуры, — диспетчер памяти (memory manager), но если рассматривать систему в целом, такого кода все равно немного.• Подавляющее большинство компонентов Windows написано на C и лишь часть из них — на C++. Язык ассемблера применяли только при создании частей системы, напрямую взаимодействующих с системным оборудованием (например, при написании обработчика ловушек прерываний) или требующих исключительного быстродействия (скажем, при переключении контекста). Ассемблерный код имеется не только в ядре и HAL, но и в составе некоторых других частей операционной системы: процедур, реализующих взаимоблокировку, механизма вызова локальных процедур (LPC), части подсистемы Windows, выполняемой в режиме ядра, и даже в некоторых библиотеках пользовательского режима (например, в коде запуска процессов в Ntdll.dll — системной библиотеке, о которой будет рассказано в этой главе несколько позже).
Еще по теме Переносимость:
- Кластер Низкая Переносимость Неприятного
- Луна и Сатурн.
- НЕВРАСТЕНИЯ
- 11.2. Значение кислорода для работы мозга
- Экстремальные морально-психологические факторы:
- Хилл М., Страустрап Б.. универсальный язык программирования, 1999
- 6. Особенности алкоголизации и делинквентного поведения
- Ситуационное лидерство и ситуационное использование оснований власти.
- Введение
- 1. Ядро характера
- Глава семнадцатая. Советы при лечении антидепрессантами В поисках «черной желчи»
- 2.1.1. Технология
- СТРУКТУРИРОВАHИЕ ВРЕМЕHИ
- СТРУКТУРИРОВАHИЕ ВРЕМЕHИ
- 1. 1. Пражурналистские явления
- Экстремальные морально-психологическиефакторы
- Аспекты с Нептуном.
- 1. Сущность характера