Система Windows 9.x во многом основана на тех же самых концепциях, что и Dos. Тех же два системных файла io.sys и msdos.sys, только теперь весь системный код находится в первом из них, а второй содержит ASCII – текст с установками, управляющими поведением системы при загрузке.
Эквиваленты программ himem.sys, ifshlp.sys автоматически загружаются программой io.sys при старте системы. Как и прежде, для загрузки в память драйверов и резидентных программ можно использовать файлы config.sys и autoexec.bat. Но за загрузку тех 32-разрядных драйверов устройств, которые разработаны специально для Windows 9.x, теперь отвечают записи в системном реестре (Registry). Когда вся предварительная работа сделана, стартует файл win.com.
Registry – это база данных, в которой Windows 9.x хранит информацию о всех настройках, конфигурационных установках и параметрах, которые нужны для работы ее собственных модулей и отдельных приложений. Системный реестр как бы выполняет функции файлов config.sys, autoexec.bat и ini – файлов Windows 3.1 вместе взятых.
На диске компьютера реестр хранится в виде двух отдельных файлов: system.dat и user.dat. В первом из них содержатся всевозможные аппаратные установки. А во втором – данные о работающих с системой пользователях и их программных конфигурациях.
По способу хранения данных Windows 9.x использует ту же файловую систему, что и Dos, и те же дисковые структуры, главную загрузочную запись (MBR), загрузочную запись Dos (DBR), таблицы размещения файлов (FAT) и каталоги. Но имена файлов могут теперь иметь длину до 255 символов и при этом сохраняется односторонняя совместимость с файловыми системами, созданными под Dos. Такая совместимость достигается, так как Windows 95 хранит для каждого файла и каталоги по два имени – полное и короткое.
Встроенные функции ОС находятся в dll – динамически загружаемых модулях (dynamic – link library). Модули dll – это разделяемые библиотеки процедур, к которым по мере необходимости обращаются исполняемые программы.
Основой кода Windows 9.x служат модули Kernel, User и Gdi. Каждый из них состоит из двух частей: 32 – разрядной и 16 – разрядной. Windows 9.x использует 16 – разрядный код, когда он необходим для обеспечения совместимости. 16 – разрядные функции Windows 95 написаны преимущественно на ассемблере.
32 – разрядная часть модуля Kernel за базовые услуги – файловый ввод – вывод, управление памятью, загрузку и выполнение программ, поддержку сетевой и файловой систем. Имя файла 32 – разрядного модуля Kernel – Kernel32.dll. 16 – разрядная часть Kernel, Kernel386.exe, задействуется только на момент загрузки Windows 95 и используется только для инициализации 32 – разрядной части Kernel.
GDI управляет графическими операциями Windows 9.x и печатью. 32 – разрядный модуль Gdi32.dll отвечает за подсистему буффизации входных и выходных потоков, подсистему печати, растеризатор шрифтов (TrueType) и основные операции рисования то есть за все операции, где особенно важна скорость выполнения или требуется особая точность вычислений с плавающей запятой. Операции управления окнами, для которых более важна совместимость со старыми приложениями, описывает 16 – разрядный Gdi.exe.
Модуль User управляет пользовательским вводом – выводом, включая операции с клавиатурой, мышью, звуковым драйвером, системными часами и портами ввода – вывода. User поддерживает отображение и перемещение окон, меню и значков. User фактически остался в Windows 95 16 – разрядным (User.exe), его 32 – разрядная часть (User32.dll) используется для трансформации вызовов 32 – разрядных приложений и переадресации 16 – разрядному блоку. Трансформации 32 – разрядных вызовов в 16 – разрядные и наоборот очень часто применяются в Windows 95.
Непосредственно в ОС Windows 9.x реализованы и некоторые другие функции. Среди модулей, поддерживающих их можно назвать WinNet, обеспечивающий аппаратно – независимый уровень поддержки сетевых функций; Multimedia, содержащий интерфейс для мультимедиа – драйверов и функций ввода – вывода.