Архитектура Windows 9x - Architecture of Windows 9x
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
В Windows 9x серия операционных систем относится к ядро которая лежит в основе Windows 9x. Его архитектура монолитный.
Базовый код похож по функциям на MS-DOS. Как 16- / 32-разрядный гибрид, он требует для работы поддержки MS-DOS.
Критические файлы
Windows 95 загружается с использованием следующего набора файлов:[нужна цитата ]
32-битная оболочка и интерпретатор командной строки:
- SHELL.DLL и SHELL32.DLL - Shell API
- EXPLORER.EXE - Оболочка Windows и файловый менеджер
- COMMAND.COM - командная строка ракушка исполняемый файл
Ядро Windows 95:
- KERNEL32.DLL и KRNL386.EXE - Windows API для ресурсов Windows
- ADVAPI32.DLL Дополнительные функции к ядру. Включает функции для реестра Windows и функции выключения и перезапуска
- GDI32.DLL и GDI.EXE - Графический интерфейс устройства
- USER32.DLL и USER.EXE - реализация GUI
- COMMCTRL.DLL и COMCTL32.DLL - Общие элементы управления (пользовательский интерфейс)
- DDEML.DLL Динамический обмен данными Библиотека управления (DDEML) предоставляет интерфейс, который упрощает задачу добавления возможности DDE в приложение.
- MSGSRV32.EXE Действует как 32-битный сервер сообщений и никогда не будет отображаться в списке задач Windows.
- WIN.COM - отвечает за загрузку графического интерфейса и Windows-части системы
Реестр и другие файлы конфигурации:
- SYSTEM.DAT, USER.DAT - содержит Реестр Windows
- MSDOS.SYS - содержит некоторые низкоуровневые ботинок настройки и ресурсы, такие как отключение двойной буферизации и GUI логотип
- WIN.INI и SYSTEM.INI - файлы конфигурации из Windows 3.1, также обрабатываемые в Windows 9x
Диспетчер виртуальных машин и диспетчер конфигурации:
- VMM32.VXD - Диспетчер виртуальных машин и драйверы по умолчанию. Он заменяет io.sys в качестве ядра
Устанавливаемый диспетчер файловой системы:
- IFSHLP.SYS - позволяет Windows выполнять прямые вызовы файловой системы в обход методов MS-DOS
- IFSMGR.VXD - 32-битный драйвер для устанавливаемой файловой системы
- IOS.VXD I / O Supervisor, который контролирует и управляет всей файловой системой в защищенном режиме и драйверами блочных устройств
- MPREXE.EXE MPRSERV.DLL и MPR.DLL - Маршрутизатор с несколькими провайдерами, необходимый для сетевой аутентификации и профилей пользователей
- MSPWL32.DLL Библиотека управления списком паролей
Драйверы устройств:
- IO.SYS - исполняемый файл, обрабатывающий все основные функции, такие как Ввод / вывод процедуры, а также служит ядром, пока vmm32.vxd не вступит во владение
- HIMEM.SYS - Драйвер устройства DOS, который позволяет программам DOS сохранять данные в расширенной памяти через спецификацию расширенной памяти.
- SYSTEM.DRV, MMSOUND.DRV, COMM.DRV , VGA.DRV, МЫШЬ.DRV, BIGMEM.DRV, KEYBOARD.DRV - 16-битные драйверы
- CP 1252.NLS, CP 437.NLS, UNICODE.NLS, LOCALE.NLS - раскладки клавиатуры
- RMM.PDR Виртуальное устройство сопоставителя реального режима
Система также может использовать CONFIG.SYS, который содержит настройки и команды, выполненные перед загрузкой интерпретатор команд ) и AUTOEXEC.BAT, который является командный файл автоматически выполняется после загрузки COMMAND.COM. Однако эти два файла не критичны для процесса загрузки, поскольку IO.SYS содержит настройки по умолчанию для обоих на случай отсутствия в системе. В Windows ME, CONFIG.SYS и AUTOEXEC.BAT не обрабатываются и LOGO.SYS может использоваться как заставка.
Последовательность загрузки
Процесс запуска Windows 9x состоит из 6 этапов. Первые два из этих шагов являются общими для любого Операционная система загрузка с использованием традиционной комбинации BIOS и Главная загрузочная запись.
Этап 1. Процесс начальной загрузки ROM BIOS
В ROM BIOS запускает выполнение с адреса физической памяти FFFF0h. На этом этапе BIOS сначала выполняет Самотестирование при включении, затем проверяет наличие загрузочного диска на диске A. Если он не найден на диске A, BIOS ПЗУ проверяет наличие жесткого диска. Если на компьютере установлена система Plug and Play BIOS, BIOS дополнительно проверяет RAM на наличие адресов портов ввода / вывода, линий прерывания и каналов DMA на предмет наличия Подключи и играй устройства, отключает найденные устройства, создает карты использованных и неиспользуемых ресурсов и повторно включает устройства.
Этап 2 - Основная загрузочная запись и загрузочный сектор
В Главная загрузочная запись загружается по адресу 7C00h и загружает загрузочный сектор окон Раздел диска. Загрузочный сектор содержит программу загрузки диска и Блок параметров BIOS таблица, которая ищет расположение корневого каталога и файла IO.SYS, а затем загружает файл IO.SYS в память.
Фаза 3 - IO.SYS инициализация файла
IO.SYS инициализирует минимальный Таблица размещения файлов водитель и грузы MSDOS.SYS в память. Затем отображается «Запуск Windows» в зависимости от строки BootDelay в файле MSDOS.SYS. Затем он загружает LOGO.SYS файл и отображает стартовый образ на экране. Если DRVSPACE.INI или же DBLSPACE.INI файл существует, он также загружает драйверы для сжатых дисков. Затем Windows пытается открыть файл реестра SYSTEM.DAT. Если это не удается, он пытается открыть SYSTEM.DA0. Если настроено в MSDOS.SYS или в реестре, двойная буферизация также включена.
Этап 4 - CONFIG.SYS и настройка реального режима
Windows 95 и Windows 98 теперь анализируют CONFIG.SYS и загружают MS-DOS реальный режим драйверы. Windows ME игнорирует это. Если файл CONFIG.SYS не существует, файл IO.SYS загружает драйверы. IFSHLP.SYS, HIMEM.SYS и SETVER.EXE. Windows оставляет за собой все блоки старшей памяти для использования в операционной системе Windows 95 или для расширенная память.Windows 95 и Windows 98 выполняют COMMAND.COM для обработки AUTOEXEC.BAT. Он загружает прекратить и остаться резидентом программы в память. Windows ME игнорирует этот шаг, поскольку поддержка DOS в реальном режиме отключена, а загружаемые TSR могут поставить под угрозу стабильность системы.
Этап 5 - Инициализация драйверов
IO.SYS теперь работает WIN.COM. WIN.COM загружает VMM32.VXD файл в память или обращается к нему с жесткого диска. Этот файл содержит самые важные драйверы и ядро 9x. драйвер виртуального устройства загрузчик проверяет наличие повторяющихся драйверов виртуальных устройств, которые существуют как в папке Windows System Vmm32, так и в файле VMM32.VXD. В случае дублирования драйвер в каталоге Windows System Vmm32 будет загружен. Windows 95 и 98 теперь запрашивают вызовы драйверов реального режима INT 2Fh и найдите драйверы в записи реестра HKEY_LOCAL_MACHINE System CurrentControlSet Services VxD, отмеченной для загрузки как внешний файл. Затем Vmm32 анализирует раздел [386 Enh] файла Windows System.ini и загружает перечисленные там драйверы. Некоторые важные драйверы загружаются, даже если они не указаны в Реестр Windows, SYSTEM.INI или в каталоге Windows System Vmm32.
После загрузки драйверов виртуальных устройств в реальном режиме происходит инициализация драйвера в Windows 95 и Windows 98. Затем Vmm32 переключает ЦП с реальный режим к защищенный режим Следующим шагом является инициализация драйверов защищенного режима, выполняемая в три этапа для каждого устройства: критическая часть инициализации (пока прерывания отключены), инициализация устройства (когда разрешен файловый ввод-вывод) и этап InitComplete. После инициализации драйвера дисплея Windows переключается на графический режим.
Этап 6 - инициализация Win32
После загрузки всех драйверов Kernel32.dll, gdi32.dll, Gdi.exe, user32.dll, User.exe, shell32.dll и Explorer.exe файлы загружены. Следующим шагом в процессе запуска является загрузка сеть среда. Пользователю предлагается войти в настроенную сеть. Когда пользователь входит в систему, его настройки рабочего стола загружаются из реестра или в конфигурации рабочего стола используется рабочий стол по умолчанию. Затем Windows запускает программы, определенные в Папка автозагрузки, WIN.INI и программы, определенные в разделах реестра Run, RunOnce, RunServices и RunServicesOnce внутри веток HKEY_LOCAL_MACHINE Software Microsoft Windows CurrentVersion и HKEY_CURRENT_USER Software Microsoft Windows CurrentVersion . После запуска каждой программы в разделе реестра RunOnce программа удаляется из раздела.
Ядро
Ядро Windows 9x - это 32-битное ядро с виртуальная память. Драйверы предоставляются файлами .VXD или, начиная с Windows 98, более новыми. WDM можно использовать драйверы.[1] Тем не менее MS-DOS ядро остается в памяти. Windows будет использовать старые 16-разрядные драйверы MS-DOS, если они установлены, за исключением Windows Me. В Windows Me DOS все еще работает, но Windows игнорирует любые попытки загрузить драйверы устройств при синтаксическом анализе AUTOEXEC.BAT и перемещает переменные среды, которые она все еще распознает, из файла CONFIG.SYS в реестр Windows.
Смотрите также
Рекомендации
- ^ Microsoft (15 апреля 2002 г.). «Модель драйвера Windows (WDM)». Microsoft. Архивировано из оригинал на 2013-01-18. Получено 2016-05-27.
дальнейшее чтение
- Шульман, Эндрю (ноябрь 1994). Несанкционированная Windows 95 - комплект ресурсов разработчика (1-е изд.). Фостер-Сити, Калифорния, США: John Wiley & Sons, Inc. ISBN 1-56884-305-4. ISBN 978-1-56884-305-6.
- Шульман, Эндрю; Браун, Ральф Д.; Макси, Дэвид; Michels, Raymond J .; Кайл, Джим (1994) [ноябрь 1993]. Недокументированная DOS: руководство программиста по зарезервированным функциям и структурам данных MS-DOS - расширено за счет включения MS-DOS 6, Novell DOS и Windows 3.1 (2-е изд.). Ридинг, Массачусетс: Эддисон Уэсли. ISBN 0-201-63287-X. ISBN 978-0-201-63287-3. (xviii + 856 + vi стр., 3,5-дюймовая дискета) Исправления: [1][2]
- Пол, Маттиас Р. (10 апреля 2002 г.). "[fd-dev] Доступ к HMA от TSR". freedos-dev. В архиве из оригинала на 09.09.2017. Получено 2017-09-09.
[...] MS-DOS 7.0 + [...] представил [...] по большей части недокументированную структуру данных RMD, обычно расположенную в HMA. Ядро собирает и записывает данные конфигурации и драйвера реального режима во время загрузки (тип драйвера, прерывания, обработанные драйвером, CONFIG.SYS строка вызова и т. д.) и сохраняет эту информацию в [...] сложной растущей [...] структуре данных. Предположительно [...] предназначено для использования ядром Windows, чтобы получить лучшее представление о загруженных драйверах реального режима [...] или даже попытаться отцепить или выгрузить некоторые из них, [...] он используется только в очень ограниченной степени ([...] некоторая информация отражается в файлах журнала, созданных [...] при запуске, и некоторые части [...] диспетчера конфигурации также используют ее), [. ..] оставляя место [...] за пределами технической стороны [...], потому что ничего интересного не задокументировано [...]
- Пол, Матиас Р. (13 августа 2002 г.). "Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird" (на немецком). Группа новостей: de.comp.lang.assembler.x86. В архиве из оригинала на 2017-09-04. Получено 2017-09-03. (NB. Также при использовании MS-DOS 7+ HMA и WINDOWS IOS.LOG.)
- Пол, Маттиас Р. (2004-06-17). "Re: Случайные зависания с DR-DOS 7.03". [email protected]; FidoNet конференция: ALT_DOS. Архивировано из оригинал на 2019-04-28. Получено 2019-04-28.
[...] все версии MS-DOS до Windows 95 [...] использовали файл COMMAND.COM в стиле COM, который имеет специальную подпись в начале файла, [...] запрошенного BIOS MS-DOS перед загрузкой оболочки, но не с помощью DR-DOS BIOS [...] COMMAND.COM проверит, [...] что он работает на "правильной" версии DOS, поэтому, если вы загрузите их COMMAND.COM в DR-DOS вы получите сообщение об ошибке «Плохая версия» и их COMMAND.COM завершится, поэтому DR-DOS отобразит [...] сообщение об ошибке «Плохой или отсутствующий интерпретатор команд» (если DR-DOS был пытается загрузить командный процессор SHELL = после завершения обработки CONFIG.SYS). В этом случае вы можете ввести путь к действующему DR-DOS COMMAND.COM (C: DRDOS COMMAND.COM), и все будет в порядке. Теперь все изменилось с тех пор, как MS-DOS 7.0 [...] COMMAND.COM внутренне превратилась в файл в стиле EXE, поэтому нет никакой волшебной [...] сигнатуры [...] для проверки [...] таким образом DR-DOS никак не может исключить несовместимость COMMAND.COM. Кроме того, их COMMAND.COM больше не проверяет версию, но [...] не работает под DR-DOS [...] просто дает сбой [...] ПК DOS COMMAND.COM отлично работает под DR-DOS [...]
[3][4] - Король, Адриан (1994). Внутри Microsoft Windows 95 (2-е изд.). Редмонд, Вашингтон, США: Microsoft Press. ISBN 1-55615-626-X. ISBN 978-1-55615-626-7.
- Руководство программиста по Microsoft Windows 95: ключевые темы по программированию для Windows от группы разработчиков Microsoft Windows. Техническая справка (1-е изд.). Редмонд, Вашингтон, США: Microsoft Press. 1995-07-01. ISBN 1-55615-834-3. ISBN 978-1-55615-834-6. Получено 2016-05-26.
- Оней, Уолтер (1995). Системное программирование для Windows 95 (1-е изд.). Редмонд, Вашингтон, США: Microsoft Press. ISBN 1-55615-949-8. ISBN 978-1-55615-949-7.
- Пьетрек, Мэтт (Ноябрь 1995 г.). Секреты системного программирования Windows 95. Секреты серии (1-е изд.). John Wiley & Sons, Inc. ISBN 1-56884-318-6. ISBN 978-156884-318-6. Получено 2016-05-26.
- Хазза, Карен (1997). Написание Windows VxD и драйверов устройств - секреты программирования для драйверов виртуальных устройств (2-е изд., 2-е изд.). Лоуренс, Канзас, США: Миллер Фриман, Inc. ISBN 0-87930-438-3. ISBN 978-0-87930-438-6.
- Митчелл, Стэн (1997-05-11). Шульман, Эндрю (ред.). Внутри файловой системы Windows 95. Справочники в двух словах (1-е изд.). Севастополь, Калифорния, США: O'Reilly & Associates, Inc. ISBN 1-56592-200-X. ISBN 978-1-56592-200-6. Получено 2016-05-26.
внешняя ссылка
- Microsoft. «Компоненты архитектуры Windows 95». Microsoft. В архиве с оригинала на 2014-10-17. Получено 2016-05-27.
- Microsoft (15 ноября 2006 г.). «Описание процесса запуска Windows 95». 1.1. Microsoft. Q174018. В архиве из оригинала на 14.02.2014. Получено 2016-05-27.
- Microsoft (2013-10-26). «Понимание Win16Mutex». 5.0. Microsoft. KB125867. Q125867. Архивировано из оригинал на 2014-01-16. Получено 2016-05-27.