Windows 95 real mode

From a developers standpoint, the ideal way to run drivers is in protected mode in Windows 95. These virtual device drivers, which have the extension .VXD, will work for most every device driver commonly found in the MS-DOS CONFIG.SYS and AUTOEXEC.BAT files.

Double-buffering and the HIMEM.SYS, SMARTDRV.EXE, SETVER.EXE, and IFSHLP.SYS programs and files are all loaded from within IO.SYS. Microsoft also provides protected-mode drivers for a broad cross section of peripheral devices.

When Windows 95 installs, it looks for real-mode drivers in CONFIG.SYS and AUTOEXEC.BAT that it can replace. The list of device drivers that can be safely replaced is stored in the text file IOS.INI (located in the Windows directory).

IMPORTANT


There are roughly 300 device drivers that Windows 95 can replace, and about 300,000 device drivers that Windows 95 has never heard of. These real-mode device drivers must run, or the device they support will not operate. That is why CONFIG.SYS, SYSTEM.INI, and AUTOEXEC.BAT files still exist.

Virtual Device Drivers vs. Real-Mode Drivers

There are several reasons for eliminating real-mode drivers from the Windows memory stack:

  • Real-mode drivers are 16-bit drivers. For the most part, they are slower than 32-bit drivers (although a well-written 16-bit driver can out-perform a poorly-written 32-bit driver).
  • Windows 95 runs in protected mode. To use a real-mode driver, Windows must switch between real mode and protected mode (this is time consuming).
  • Real-mode drivers must reside in conventional or upper memory, thus utilizing valuable resources (virtual drivers don’t).
  • The processor has no built-in protection for real-mode drivers.

Windows 95 includes VxDs (virtual device drivers) to replace the following Windows 3.x real-mode components:

  • FAT file system (VFAT.VXD)
  • CD-ROM file system (CDFS.VSD)
  • SMARTDrive disk cache (VCACHE.VXD)
  • Mouse driver (VMOUSE.VXD)
  • Network protocols
  • SHARE.EXE MS-DOS file sharing and locking support (VSHARE.VXD)
  • Disk device drivers including SCSI devices

Plug and Play

The ultimate goal of any computer user is to be able to simply plug any device into a computer, turn it on, and have it work. This is the concept upon which Plug and Play is founded. A well-designed Plug and Play system would eliminate the need for jumpers, switches, and installation software. Does Plug and Play work? The answer is a resounding yes and no. In order for Plug and Play to work, the system must have three things:

  • A Plug and Play BIOS
  • A Plug and Play device
  • A Plug and Play operating system (such as Windows 95)

Windows 95 uses the Configuration Manager (CONFIGMG.VXD) to collect BIOS information and manage the assignment of IRQ, DMA, and other settings. During each startup, the Configuration Manager searches the system for all information, checks for conflicts, and reconfigures as necessary to resolve conflicts. Any time a new device (without a driver) is detected, the Configuration Manager launches the necessary wizard to configure the device. When all is well, it simply asks for confirmation of the device and how it is to be configured. When Plug and Play doesn’t work or there is a problem, the solution is usually in the Device Manager.

Device Manager

As mentioned, all Windows 95 information is stored in the Registry. The Device Manager provides a graphical view of all the devices on a computer. This is the place to find and resolve hardware problems. The Device Manager allows you to make many changes to the hardware configuration of a computer, including:

  • Add or remove a device.
  • View devices by IRQ, I/O port, and DMA channel.
  • Print system reports.
  • View individual device properties.
  • Adjust a device’s resources.
  • Change drivers.
  • Adjust settings.

To display the Device Manager, select Start, select Settings, then select Control Panel, and open the System icon. You can also right-click My Computer and select Properties from the context menu. (See Figure 16.9 for the Device Manager.)

Click to view at full size.

Figure 16.9 Device Manager

To see a specific device, click on the plus sign (+) to the left of the device class. (See Figure 16.10.) Any time Windows 95 sees a conflict, it denotes the device with a red X or a yellow exclamation point.

Click to view at full size.

Figure 16.10 Device Manager expanded

To see a list of all IRQ and DMA channels, right-click My Computer to get Properties, click on the panel marked System Manager, and then click on the Properties dialog box below that to get the IRQ, as shown in Figure 16.11.

Click to view at full size.

Figure 16.11 Computer properties

To document a system, select the Print command button from the Device Manager window, then select the type of printout you want (system summary, selected class or device, all devices and system summary), shown in Figure 16.12.

Click to view at full size.

Figure 16.12 Print system summary

To view the details of an individual device, select the device and select the Properties button at the bottom of the window. Many setup options can be changed from this screen.

NOTE


If the device is not Plug and Play-compliant, the changes will also need to be made on the device itself.

To remove a device, simply select it from the Device Manager and click the Remove button at the bottom of the Device Manager screen. Don’t forget to turn off your computer and physically remove the device from the system.

Adding New Hardware

Adding new hardware is simple-it will follow one of two processes, depending on whether or not the device is Plug and Play. Both processes use the Hardware wizard. With Plug and Play, this wizard is launched automatically when Windows detects the new device during startup. With a non-Plug and Play device, you have to start the wizard manually by using the Add New Hardware icon in the Control Panel. When installing manually, Windows asks if you want to specify the device or let Windows find it. In most cases, Windows does a good job of finding it; however, if you know the device and have the manufacturer’s software for installation, it is often better to tell Windows what to do.

Installing Printers

Installing printers is similar to installing any other device. However, since several printer drivers can be installed and chosen at will from inside an application, Windows 95 uses a special wizard for printers. Printers also use standard ports (LPT1 or LPT2); therefore, setting the IRQs and I/O addresses is not an issue. A new Plug and Play printer is perhaps as close to true Plug and Play as possible. Simply plug the printer into a parallel port, turn on the printer, and boot up the computer. Windows 95 will recognize the printer (by polling the ports during startup) and launch the Install wizard. In many cases, you merely confirm that Windows has recognized the correct printer and it will do the rest.

For a non-Plug and Play printer, simply select the Add Printer icon from the Printers folder in the Control Panel. You will be asked to select the printer from a list. If the printer is not on the list, you will need to use the Have Disk option and supply the software. Options can vary depending on whether you are connecting to a network or a local printer.

by updated

Режимы процессора Intel
80386

Режимы Windows 3.0

Реальный режим. Точная
копия того единственного режима в
котором работали процессоры 8086 и 8088
адресуя 1 Мбайт оперативной памяти.

Реальный режим (Real mode).
Работал на процессоре 8086.

Режим процессора 80286.
Защищенный режим, в который можно было
переключать процессор 80286, чтобы он
адресовал до 16 Мбайт оперативной
памяти и обеспечивал использование
программами только выделенных им
адресов памяти.

Стандартный Режим (Standard
mode). Работал на процессоре 80286. Не
позволял использовать виртуальную
память. Программы DOS использовали
стандартную память и переключали
процессор в реальный режим.

Защищенный режим. «Родной»
режим процессора 80386, наиболее полно
использующий преимущества его
32-разрядной архитектуры, которой
отличают передовые методы защиты
программ, 32-разрядная («плоская» в
отличие от 16-разрядной, сегментной)
адресация до 4Гбайт памяти и возможность
подкачки страниц памяти по требованию

386-й Расширенный режим
(386 Enhanced mode). Работает только на
процессорах 80386 и выше, позволяет
использовать виртуальную память для
всех программ. Программы DOS выполняются
в собственных виртуальных машинах и
переключают процессор в режим
виртуального процессора 8086.

Режим виртуального
процессора 8086, или V86. Защищенный режим,
в котором процессор 80386 полностью
эмулирует работу процессора 8086, не
переходя при этом в реальный режим.

Основные
преимущества
Windows:

Независимость
программ от внешних устройств – монитора,
клавиатуры, принтера, драйвера для
поддержки этих устройств входят в состав
Windows или поставляются вместе с этими
устройствами.
Windows
программы могут обращаться к внешним
устройствам только через ОС, это снимает
с разработчиков проблему совмести с
конкретными внешними устройствами.

— Имеется
средства для построения пользовательского
интерфейса (окна, меню, запросы, списки
программ и так далее)

— Доступность
всей оперативной памяти

— Динамическое
подключение библиотек

— Обмен данными
между приложениями Windows

— Использование
масштабируемых шрифтов

— Организация
встроенных справочников программ

— Единый
пользовательский интерфейс

— Многозадачность,
поддержка мультимедиа

Особенности
Windows 95

  1. Графический
    пользовательский интерфейс упрощает
    работу с ПК

  2. 95%
    возможностей представляемых ПК
    достигается простым нажатием кнопки
    пуск

  3. Панель
    задач позволяет легко переключать
    программы

  4. Проводник
    – средство для просмотра файлов, дисков
    и сетевых связей и для работы с ними

  5. Длинные
    имена файлов

  6. Для быстрого
    доступа к часто используемым файлам,
    папкам, дискам создаются ярлыки

  7. Многозадачность

  8. Простой
    доступ к интернету

  9. ОС совместима
    с приложениями для DOS и Windows 3.X, но так
    же поддерживает и 32 разрядные приложения.

  10. Богатая
    графика, поддержка видео, midi, цифровое
    периферийное видео

  11. Технология
    plug & play, позволяет автоматически
    распознавать и устанавливать аппаратное
    средство сразу при включении ПК после
    того, как в него вставлено плата
    соответствующего устройства

  12. Автоматическое
    подключение к сети

  13. Повышенная
    надежность

  14. Легкость
    в обращении

  15. Справка

Уровень
защиты intel 80-86

Прикладные программы(3)

Функции операционной
системы, 32 разрядный код(0)

Драйверы устройств(3)

Аппаратура(0)

Процессоры
совместимые с intel 80-386 поддерживают 4
уровня или привилегированности
обеспечивающие различные степени защиты
и привилегий для исполняемых программ
в каждый момент времени процессор может
работать только на одном уровне привилегий
при любой передачи управления с одного
уровня на другой процессор выполняет
десятки операций, но применение различных
уровней привилегий необходимо ОС чтобы
обеспечить защиту жизненно важных
участков кода системы. Для выполнения
кода системного уровня win 95 использует
нулевое кольцо защиты, программы
выполняемые в нулевом кольце работают
с аппаратурой напрямую сервисом нулевого
уровня защиты пользуется файловой
системой защищенного режима, диспетчер
виртуальных машин и аппаратно
ориентированные драйверы, компоненты
ОС предназначены для работы в нулевом
кольце должны быть тщательно проверены
и отлажены поскольку ошибка в таком
драйвере может вызвать крах всей системы,
прикладные программы и многие части ОС
выполняются только в третьем кольце
защиты, они не имеют таких прав как у
программ нулевого уровня и не могут
напрямую работать с устройствами
компьютера им приходится обращаться к
драйверам устройств выполняющимся в
нулевом кольце, но зато они относительно
безопасны для всей системы в целом,
оптимальное разделение всех выполняемых
программ на системные с высоким уровнем
привилегий и прикладные с низким уровнем
привилегий обеспечивают достаточно
высокую степень защиты без заметного
ущерба для общей производительности
системы.

Функции
ОС.

User16

Управление окнами
и меню Windows 3.1, новые методы (поддержка
модели асинхронного ввода и т.д.)

GDI
16

Графические методы
Windows 3.1, новые графические методы, EMF и
т.д.

Kernel16

Инициализация
Kernel 32

User32

Переадресация
32-разрядных вызовов 16-разрядному
модулю

GDI
32

Отображение шрифтов
TrueType, подсистема печати, новая
графическая система

Kernel32

Управление потоками,
синхронизация объектов, управление
памятью, файлы отображаемые в память,
файловый ввод – вывод, консоль,
коммуникации и т.д.

Основой кода
win95
выполняемого в 0 кольце защиты процессора
служат модули kernel user gdi каждый из них
состоит из двух частей 32 разрядной и 16
разрядной.
Win95
использует 16 разрядный код когда он
необходим для обеспечения совместимости
или если 32 разрядное кодирование не
целесообразно поскольку увеличило бы
расход памяти без заметного увеличения
производительности. 32 разрядная часть
модуля kernel отвечает за файловый ввод-вывод
управление памятью загрузку и выполнение
программ, поддержку сетевой и файловой
систем, 16 разрядная часть kernel задействуется
только на момент и загрузки ОС и
используется для инициализации 32
разрядной части kernel, а сам kernel32 никогда
не обращается к kernel16, модуль gdi управляет
графическими операциями win95 – включением
и выключением пикселов прорисовка их
линий, закраской областей. Отвечает за
подсистему печати и выполняет основные
операции рисования, там где особенна
важна скорость выполнения или требуется
особая точность вычислений с плавающей
запятой используется GDI32. Операции
управления окнами, для которых более
важна совместимость со старыми
приложениями описывает 16-разрядный
GDI, модуль User управляет пользовательским
вводом-выводом, включая операции с
клавиатурой, мышью, звуковым драйвером,
системными часами и портами ввода-вывода,
User обеспечивает пользовательский
интерфейс, поддерживает отображение и
перемещение окон меню и значкой, user в
win95 фактически остался 16 разрядным, его
32 разрядная часть используется только
для переадресации 32 разрядных вызовов
16 разрядном модуле.

Виртуальная
адресация памяти

Win95
позволяет использовать больший объем
памяти чем установленный на ПК объем
оперативной памяти Win95 использует
возможности процессора 80-386 по обмену
страницами памяти с жестким диском в
процессе работы в память постоянно
загружаются программный код и данные,
если потребности программ превышают
возможности ПК те участки (страницы
памяти), которые требуются реже всего
откладываются на жесткий диск, для этого
используется специальный файл обмена
(файл подкачки) файл виртуальной памяти)
особенностью виртуальной памяти win95
является способность файла подкачки
динамически изменять свой размер в
зависимости от потребности системы
процессор делит, доступное адресное
пространство на 4 кб страницы общим
числом 2
32
что и дает 4Гб адресуемой памяти, при
этом страницы памяти виртуальные адреса
которых находятся в строгом порядке
могут быть на самом деле разбросаны по
диску диспетчер виртуальной памяти
процессора устанавливает соответствию
между виртуальными адресами страниц
памяти и их физическим местоположением
в оперативную память ПК или файле
подкачки

4Гб адресов
памяти распределены следующим образом

Операционная
система

Kernel,
GDI,
код нулевого кольца

Системная область

4 Гбайт

Программы

Dll
и другие разделяемые объекты

Разделяемая
область

3 Гбайт

Программы
Win32 и Win16

Область
приложений

2 Гбайт

Программы Win16

2
Мбайт

Программы MS-DOS

1 Мбайт

Когда
виртуальный адрес по которому обращается
приложение несоответствует странице
расположенная в физической памяти
процессор сообщает об ошибке и диспетчер
виртуальной памяти подкачивает требуемую
страницу из файла обмена, при этом
предварительно приходится освобождать
соответствующий объем оперативной
памяти и сбрасывать нужную страницу из
памяти не нужную страницу в файл обмена.

Многозадачность.

Win95 это
многозадачная и многопоточная ОС это
значит что ОС «одновременно» может
выполняться несколько процессов причем
в пределах одного процесса могут
параллельно существовать несколько
более простых процессов – потоков,
каждое работающее приложение windows или
ms dos является процессом причем каждый
процесс состоит хотя бы из одного потока.
Поток может использовать память и
системные ресурсы выделяемые ему
материнским процессам но не может сам
обращаться к ОС с требованием выделить
новые ресурсы, в каждый момент времени
выполняется один поток существует два
режима работы, режим вытесняющей
многозадачности – каждый поток
выполняется определенное количество
времени или до тех пор пока приоритет
другого потока не превысит его приоритет,
приоритеты распределяются ОС по этому
не один процесс или поток не может
захватить монопольное управление,
каждому приложению отводится строго
определенная доля процессорного времени,
каждое приложение может быть в любой
момент переведено в фоновый режим, при
вытесняющей многозадачности кажется
что программы действительно работают
одновременно программа
MSdos
и
Win32
выполняются в режиме вытесняющей
многозадачности
, при
кооперативной многозадачности
,
каждое приложение получает фактически
столько процессорного времени, сколько
оно считает нужным.

Все приложения
делят процессорное время периодически
опрашивая друг друга, все приложения
win16 выполняютя под windows95 в режиме
кооперативной многозадачности и вместе
представляют собой для ОС как бы один
процесс работающий в режиме вытеснения.

Виртуальные
машины

В нулевом
кольце защиты процессора 80-386 работают
виртуальные машины win95, прикладные
программы выполняются в виртуальных
машинах, которые для них создают процессор
и ОС, виртуальная машина представляет
собой среду имитирующую отдельный
компьютер со всеми его системными и
периферийными устройствами, процессор
при этом решает задачу эмуляции отдельного
процессора для каждой виртуальной
машины, а операционная система дополняет
их виртуальными устройствами, благодаря
системе виртуальных машин, разработчикам
ПО неприходится беспокоится о том, чтобы
их программы отслеживали использование
ресурсов компьютера другими программами
поскольку память и наборы ресурсов
каждой виртуальной машины изолированы
от ресурсов других виртуальных машин

Когда
загружается
Windows95
всегда создается системная виртуальная
машина в пределах которых выделяются
отдельная адресное пространство для
ядра системы – модулей kernel GDI и User к
каждому запущенному 32 разрядному
приложению Windows95 выделяется отдельное
пространство адресов в пределах системной
виртуальной машины для всех 16 разрядных
приложений
Windows95
использует общее адресное пространство
в пределах системной виртуальной машины,
каждое приложение
DOS
выполняется собственной виртуальными
машинами

Процессы
и сообщения.

от мыши

от
клав.

Асинхронная
обработка сообщения

Управление
программами в Windows95 основано на модели
передачи сообщений, каждое событие
такое как перемещение мыши, нажатие
клавиши или поступление данных по сети
приводит к генерации сообщения когда
Windows программам нужно получить сервис
от ОС или передать данные, они так же
генерируют сообщения, каждое из которых
попадает в соответствующую очередь,
Windows95 использует асинхронную обработку
сообщений, поскольку для каждого
приложения в Win32 используется отдельная
адресная область в пределах системной
виртуальной машины, а сами приложения
Win32 работают в режиме вытесняющей
многозадачности, для каждого
Win32
приложения и для каждого создаваемого
ими потока используются отдельные
очереди сообщений – всё это делает
ошибку в win32 приложении практически
безопасной для остальных приложений
выполняемых вход в windows 95, если приложение
win32 пытается выполнить запрещенное
действие система принудительно завершит
его выдав сообщений о недопустимой
операции, если приложение win32 зависло,
оно перестает реагировать на действия
пользователя, указатель мыши в форме
песочных часов на фоне окна этого
приложения показывает что приложение
занято, но не стабильность системы на
это не влияет, пользователь может удалить
такое приложение при помощи окна
«завершение работы программы» нажав
ctr+alt+del такой метод прерывания программ
называется локальной перезагрузкой

Зависание
программ Win16 потенциально более опасно
так как остальные программы Win16 перестанут
получать сообщения и тоже зависнут
поскольку приложение Win16 выполняются
под Windows95 в режиме кооперативной
многозадачности в общем пространстве
адресов в пределах системной виртуальной
машины, то имеют общую очередь сообщений,
когда приложение Win16 выполняет запрещенное
действие, система автоматически выдает
такое же сообщение, «завершение работы»
программы и в дополнении к нему сообщение
в котором предлагается сохранить данные
или закрыть приложение, заблокированное
приложение Win16 способно повлиять и на
приложение Win32 не смотря на то, что они
используют независимые очереди сообщений,
эта ситуация может привести к краху
всей системы поскольку для каждого
приложения DOS, Windows95 создает отдельную
виртуальную машину, которые работают
в режиме вытисняющей многозадачности
деля процессорное время с системной
виртуальной машиной, то виртуальная
машины DOS, не участвуют в передачи
сообщений и не создают очередей, при
выходе из программы DOS, завершается
работа этой виртуальной машины и
освобождается используемые ею системные
ресурсы.

Планирование
приоритетов

В каждый
конкретный момент времени каждый поток
имеет определенный приоритет измеряемый
целым числом от 0 до 31, управление
процессом приходит к тому потоку который
на данный момент обладает самым высоким
приоритетом, приоритеты потоков
динамически изменяются планировщиками
с тем чтобы могли отработать все потоки,
в назначение приоритетов принимают
участие два планировщика первичный
(основной), вычисляет приоритеты потоков,
а вторичный (диспетчер квантования)
определяет количество процессорного
времени выделяемое каждому потоку,
каждые 20 мс первичный планировщик
сравнивает текущие приоритеты потоков
и переводит в состояние ожидания все
потоки кроме потока с наивысшим
приоритетом, вторичный планировщик
выделяет потоку с наивысшим приоритетом
определенное количество времени, после
чего поток работает, если несколько
потоков имеют одинаково высокие
приоритеты им устраивают «карусель».

Длинные
имена файлов

Главной
особенностью файловой системы
Windows95
для пользователя является то что
максимальная длина имени файла в
Windows95 может
достигать 256 символов при создании
файла ему присваивается сразу два имени
– длинное и короткое.

Короткое
имя
– образуется из
длинного путем удаления из него пробелов
и символов: \ : ? » * < > Для восьмибуквенного
имени файла используются первые 6
оставшихся символов длинного имени,
тильда ~, и порядковый номер для
трехбуквенного расширения, используется
первые 3 символа после последней точки
в длинном имени файла, в сеансе MS-DOS под
Windows 95 можно использовать не только
короткие имена файлов в приглашении к
вводу команды для этого имя файла нужно
брать в кавычки.

Устанавливаемые
файловые системы

Для приложений
выполняемых под
Windows
95 унифицирован доступ к файлам находящиеся
на обычных локальных на компакт дисках
и сетевых дисках, посредником между
различными файловыми системами и
приложениями Windows служит диспетчер
устанавливаемых файловых систем,
устанавливаемыми файловыми системами
в Windows 95 являются VFAT, CDFS – файловая
система компакт дисков и сетевая система
переадресации, основной файловой
системой в windows 95 является FAT16, которая
не эффективно использует дисковое
пространство и не позволяла работать
с дисками более 500 МБ. По этому в Windows 95
была включена альтернативная файловая
система, которая может использоваться
наряду с обычной FAT, главное преимущество
FAT32 – она может поддерживать дисковые
тома объемом более 2 (до 64 ГБ) и жесткие
диски до 2 ТБ, FAT32 поддерживает меньшие
разделы кластеров что позволяет более
эффективно использовать дисковое
пространство, эта файловая система
используется в ОС на основе DOS – Windows 98
и
Me.

FAT
хранит информацию о файлах на жестком
диске в виде последовательности чисел
определяющих местонахождение каждой
части, каждого файла

Значение
размеров кластеров в зависимости от
размеров логических томов:

Размер тома

Размер кластера

Менее 260 Мбайт

512 байт

260 Мбайт – 8 Гбайт

4 Кбайт

8 Гбайт – 16 Гбайт

8 Кбайт

16 Гбайт – 32 Гбайт

16 Кбайт

Более 32 Гбайт

32 Кбайт

Поддержка
нового оборудования и экономное
использование дискового пространства
не все черты FAT32, корневой каталог
разделов FAT32 потерял свое особое
положение, теперь он может располагаться
где угодно на диске и иметь любой размер
это снимает ограничение на число записей
в корневом каталоге, здесь заложена
возможность подмены одной таблицы FAT
другой и предусмотрена резервирование
структур данных загрузочных записей.
Все прикладные программы в том числе и
программы для MS-DOS будут функционировать
и в среде Windows 95 OSR 2, в том числе и в режиме
MSDOS’.

Загрузка
MS-DOS

По окончанию
процедуры POST программное обеспечение
BIOS загружает из первого сектора
загрузочного диска код, который находит
в корневом каталоге загрузочного диска
файл IO.SYS загружает его и передает ему
управление в этот момент на экране ПК
появляется сообщение: «
Starting
Windows 95…» в
течении 2х секунд с момента появления
сообщения пользователь может попросить
систему передать ему управление загрузкой
если нажать:

  1. Shift
    или
    F5 (safe
    mode) –
    Windows95
    загрузится в режиме защиты от сбоев,
    то есть без некоторых драйверов и без
    поддержки сети

  2. Shift
    +
    F5 – Не
    будут выполнены команды файлов,
    AUTOEXEC.BAT и CONFIG.SYS не будет загружена
    графическая оболочка

  3. Ctrl
    +
    F5 – то же
    что и в предыдущем + без драйвера сжатия
    диска

  4. Shift
    +
    F8 или Ctrl
    +
    F8 –
    Windows95 будет
    запрашивать подтверждение на выполнение
    каждого шага загрузки

  5. F4
    – Загрузка предыдущей версии MS-DOS

  6. F6 – Режим
    защиты от сбоев с поддержкой сети

  7. F8
    – на экране появляется меню загрузки:

    1. Normal –
      обычное продолжение загрузки

    2. Logged
      (\
      BOOTLOG.TXT)
      – загрузка с сохранением журнала
      загрузки

    3. Safe mode

    4. Safe mode with
      network support

    5. Step-By-Step
      confirmation

    6. Command prompt
      only

    7. Safe mode
      command prompt only

    8. Previous
      version on MS-DOS

Время на прочтение5 мин

Количество просмотров15K

В августе 2022 года Windows 95 исполнилось 27 лет. Казалось бы, совсем недавно операционная система праздновала 25-летие, но время бежит быстро. В любом случае ОС была действительно новым словом среди операционных систем того времени. Об истории создания Windows 95 неоднократно писали на Хабре, так что подробно останавливаться не будем, стоит лишь вспомнить модифицированный интерфейс, длинные имена файлов и 32-битные приложения.

К слову, вполне может быть, что некоторые читатели Хабра никогда не видели и тем более не работали в среде этой ОС. Сегодня мы предоставим эту возможность — никаких проблем в том, чтобы оценить Windows 95, запустив её на самом современном ПК или ноутбуке, нет. Об этом и поговорим, а ещё вспомним несколько пасхалок, которые были обнаружены относительно недавно. Поехали!

Пасхалки в Windows 95 

Несмотря на возраст системы, в ней до сих пор встречаются пасхалки. Одна из самых известных обнаружилась в прошлом году, она оказалась глубоко запрятана в приложении Internet Mail для Windows 95.

Для того чтобы запустить пасхалку, нужно выполнить ряд достаточно простых операций, но они не особо связаны друг с другом. Так, в первую очередь требуется открыть приложение Internet Mail, затем войти в меню Help, перейти в раздел About Microsoft Internet Mail and News, кликнуть мышкой на файл comctl32.dll и ввести на клавиатуре MORTIMER. Появится окно, в котором указаны имена тех, кто работал над проектом Internet Mail и Microsoft Athena (Thor).

Ещё одна пасхалка — это Windows 95 Team. Для её активации требуется создать папку с именем and now, the moment you’ve all been waiting for (и сейчас, момент, которого вы все ждали), переименовать её в папку с названием we proudly present for your viewing pleasure (мы с гордостью представляем для вашего просмотра), и третье переименование в The Microsoft Windows 95 Product Team!

Да что там говорить про 95 ОС, ведь пасхалку нашли даже в самой первой версии операционной системы Windows, которой исполнилось уже 37 лет. Эта пасхалка была скрыта в вышедшей в 1985 году Windows 1.0.

В ней перечислены имена разработчиков, которые связаны с выпуском графического интерфейса первой ОС Windows. И да, в их числе есть Гейб Ньюэлл, текущий глава Valve. Не все знают, что он участвовал в разработке первых трёх версий Windows.

Устанавливаем эту ОС на новых и не очень устройствах

Несмотря на то, что Microsoft эту ОС уже не поддерживают, у операционной системы есть относительно масштабная армия поклонников, которые периодически пробуют запустить Windows 95 на самых разных устройствах. Ну это как поклонники Doom, которые запустили свою игру даже на умном тесте на беременность, только в нашем случае активность проявляют гики, которые «‎подружились»‎ с Windows 95.

 Устанавливаем Windows 95 на Nintendo 3DS

Впервые об этом проекте стало известно в 2016 году. Тогда один из гиков смог установить Windows 95 на современной на тот момент игровой портативной консоли. Результаты он выложил на форуме Game Boy. Ветка жива до сих пор, в ней есть сообщения за этот год, что удивительно.

Для запуска системы использовался эмулятор x86. Загружается система достаточно долго, но всё же в итоге всё работает. Код, который представил пользователь, доступен до сих пор на GitHub. Насколько можно понять, проект не развивается, но, в целом, всё ясно. Ведь сама консоль не меняется, да и сейчас она сама стала ретроустройством, так что совершенствовать что-либо нет смысла.

Устанавливаем Windows 95 внутри Minecraft

Ну вы помните этот мем, правда? Так вот, в 2020 году поклонники Mineсraft разработали внутриигровой компьютер, который запускает Windows 95, а потом, конечно же, Doom.

В моде применяется VirtualBox, open-source-«‎виртуалка»‎, которая и позволяет запускать операционные системы. Для того чтобы установить рабочий компьютер внутри игры, требуется разместить соответствующий блок ПК, затем создать виртуальные жёсткие диски для установки ОС с ISO-файлов.

Весьма интересный проект, притом до сих пор живой. Вот ссылочка на reddit, если вам вдруг захочется всё проверить самостоятельно.

Windows 95 на Xbox One

Ещё один необычный проект, цель которого — запуск Windows 95 на игровой консоли, которая несколько лет назад была одним из флагманов игрового мира. Здесь, как и во многих других случаях, используется эмулятор, который позволяет запустить целевую ОС на игровой приставке.

Реализовал проект пользователь YouTube с ником vcfan. Выше размещено видео, которое показывает весь процесс запуска — особых проблем в ходе работы замечено не было. И кстати, здесь же можно запустить Duke Nukem 3D, так что удовольствие двойное. Можно и ОС вспомнить, и в ретроигру поиграть.

Windows 95 на Apple Watch

Характеристики большинства умных часов гораздо выше тех, что были у ПК 25-летней давности. Соответственно, ресурсов у современных устройств более чем достаточно для работы с ОС из прошлого. На Apple Watch операционную систему Windows 95 установили ещё в 2016 году. Характеристики часов тогда — 520 МГц процессор, 512 МБ ОЗУ, 8 ГБ основной памяти. Это предел мечтаний владельцев десктопов и тем более ноутбуков четверть века назад.

Система получилась интерактивной, то есть с ней можно взаимодействовать. Не всё, правда, работает, но большинство функций доступно для пользователя. К сожалению, система грузится достаточно долго — примерно час. Но оно того стоит, ведь это Windows 95 на умных часах! Почти что троллейбус из буханки хлеба, но только лучше.

Исходный код проекта разработчик выложил на GitHub.

Windows 95 на Samsung Gear Live

Ещё раньше операционную систему смогли установить на умных часах Samsung Gear Live под управлением Android Wear. Правда, проект базировался на приложении-эмуляторе DosBox для Android. Так что, как и в некоторых предыдущих случаях, полноценной установкой это назвать нельзя. Но в любом случае ретро-ОС на умных часах выглядит очень необычно.

Автор проекта, кстати, тогда заявил: «По-моему, Windows 95 не хватило памяти для открытия каких-либо программ. Я не смог добавить больше оперативки, так как у этой версии DOSbox нет доступного для редактирования конфигурационного файла».

Установка Windows 95 на современном ПК

Самый быстрый способ для того, чтобы оценить Windows 95 на своём ПК или ноутбуке, — это браузерный эмулятор или же специальный софт, который позволяет загрузить пакет объёмом в 300 МБ и начать работу со старой операционной системой. Таким образом запустить Windows 95 можно на любом современном ПК с ОС Ubuntu, MacOS или Windows 10.

В проекте используется специализированный эмулятор для кросс-платформенных приложений. Разработчик расположил Windows 95 в приложении Electron, которое работает во многих ОС. Ну а сама операционная система получила сразу несколько приложений, игр (конечно же, Doom тоже есть). Плюс Microsoft Paint, текстовый редактор WordPad и старый добрый «Сапёр» с «Косынкой».

Единственный недостаток такого способа — отсутствие подключения к интернету. Приложение занимает около 300 МБ и позволяет загружать ОС без установки — при запуске скачанного файла запускается и Windows 95. Вот ссылочка на сам файл для разных систем.

Кроме того, можно использовать браузерные эмуляторы, которые позволяют загружать не только Windows 95, но и многие другие операционные системы. Всё это — за считанные секунды. Среди тех эмуляторов, что мы опробовали, можно порекомендовать pcjs.org и copy.sh/v86.

Ну и третий способ, самый сложный, — это «чистая» и полноценная установка Windows 95 на современный ПК. Этот процесс сопряжён с рядом сложностей и проблем. Пару лет назад на Хабре публиковалась статья о такой установке для Windows 98. Опыт из статьи можно использовать и для Windows 95, но сложностей, возможно, возникнет ещё больше, всё же этой ОС чуть больше лет, чем 98-й Windows.

Ну и в любом случае поздравляем с днём рождения, Windows 95! Мы тебя помним и любим, хорошая была операционка.

The Windows 9x series of operating systems refers to a series of Microsoft Windows operating systems produced from 1995 to 2000. They are based on the Windows 95 kernel which is a monolithic kernel. The basic code is similar in function to MS-DOS. They are 16-/32-bit hybrids and require support from MS-DOS to operate.

The Windows 95 architecture[clarification needed]

To start up or boot, Windows 95 and other Windows 9x operating systems require the following set of files:[1]

32-bit shell and command line interpreter:

  • SHELL.DLL and SHELL32.DLL – Shell API
  • EXPLORER.EXE – Windows shell and file manager
  • COMMAND.COM – Command line shell executable

Windows 95 core:

  • KERNEL32.DLL and KRNL386.EXE – Windows API for Windows resources
  • ADVAPI32.DLL – Functionality additional to the kernel with included functions for the Windows registry and shutdown and restart functions
  • GDI32.DLL and GDI.EXE – Graphic device interface
  • USER32.DLL and USER.EXE – GUI implementation
  • COMMCTRL.DLL and COMCTL32.DLL – Common controls (user interface)
  • DDEML.DLL Dynamic Data Exchange Management Library (DDEML) – Provides an interface that simplifies the task of adding DDE capability to an application
  • MSGSRV32.EXE – Acts as a 32-bit message server and will never appear in the Windows task list
  • WIN.COM – Responsible for loading the GUI and the Windows portion of the system

Registry and other configuration files:

  • SYSTEM.DAT, USER.DAT – Contains the Windows Registry
  • MSDOS.SYS – Contains some low-level boot settings and resources such as disabling double-buffering and the GUI logo
  • WIN.INI and SYSTEM.INI – Configuration files from Windows 3.1 which are processed in Windows 9x also

Virtual Machine Manager and configuration manager:

  • VMM32.VXD – Virtual machine manager and default drivers. It takes over from io.sys as kernel

Installable file System Manager:

  • IFSHLP.SYS – Enables Windows to make direct file system calls; bypassing MS-DOS methods
  • IFSMGR.VXD – 32-bit driver for the installable file system
  • IOS.VXD – I/O supervisor that controls and manages all protected-mode file system and block device drivers
  • MPREXE.EXE, MPRSERV.DLL and MPR.DLL – Multiple Provider Router for network authentication and user profiles
  • MSPWL32.DLL – Password list management library

Device drivers:

  • IO.SYS – Executable handling all of the basic functions, such as I/O routines and also serves as kernel until vmm32.vxd takes over
  • HIMEM.SYS – DOS device driver which allows DOS programs to store data in extended memory via the Extended Memory Specification
  • SYSTEM.DRV, MMSOUND.DRV, COMM.DRV, VGA.DRV, MOUSE.DRV, BIGMEM.DRV, KEYBOARD.DRV – 16-bit drivers
  • CP 1252.NLS, CP 437.NLS, UNICODE.NLS, LOCALE.NLS – Keyboard layouts
  • RMM.PDR – Real Mode Mapper Virtual Device

The system may also use CONFIG.SYS, which contains settings and commands executed before loading the command interpreter and AUTOEXEC.BAT, which is a batch file automatically executed after loading COMMAND.COM. However, these two files are not critical to the boot process, as IO.SYS contains a default setting for both, in case of absence from the system. In Windows Me, CONFIG.SYS and AUTOEXEC.BAT are not processed and LOGO.SYS may be used as a splash screen.

The Windows 9x startup process consists of 6 phases. The first two of these steps are common to any operating system booting using the traditional combination of BIOS and Master Boot Record.

Phase 1 – The ROM BIOS bootstrap process


edit

The ROM BIOS starts the execution at the physical memory address 000FFFF0h. During this phase, BIOS first executes the Power-on self-test, then checks for the existence of a boot disk on drive A. If it is not found in drive A, the ROM BIOS checks for a hard disk. If the computer has a Plug and Play BIOS, in addition, BIOS checks the RAM for I/O port addresses, interrupt lines and DMA channels for Plug and Play devices, disables found devices, creates maps of used and unused resources and re-enables devices.

Phase 2 – The master boot record and boot sector


edit

The Master boot record is loaded at address 7C00h and loads the boot sector of the Windows Disk partition. The boot sector contains the disk boot program and BIOS Parameter Block table which searches for the location of the root directory and IO.SYS file, which then loads the IO.SYS file into memory.

IO.SYS initialises the minimal File Allocation Table driver and loads MSDOS.SYS into memory. It then displays «Starting Windows» depending on the Boot-Delay line in the MSDOS.SYS file. It then loads the LOGO.SYS file and displays a startup image on the screen. If the DRVSPACE.INI or DBLSPACE.INI file exists, it also loads drivers for compressed disks. Windows then attempts to open the registry file SYSTEM.DAT. If that fails, it attempts to open SYSTEM.DA0. If configured in MSDOS.SYS or in the registry, double buffering is also enabled.

Phase 4 – CONFIG.SYS and real mode configuration


edit

Windows 95 and Windows 98 now analyse CONFIG.SYS and load MS-DOS real mode drivers. Windows Me ignores this.
If the CONFIG.SYS file does not exist, the IO.SYS file loads the drivers IFSHLP.SYS, HIMEM.SYS and SETVER.EXE. Windows reserves all upper memory blocks for Windows 95 operating system use or for expanded memory.
Windows 95 and 98 execute COMMAND.COM to process AUTOEXEC.BAT. It loads terminate and stay resident programs into memory. Windows Me ignores this step, as Real Mode DOS support is disabled and TSRs being loaded can compromise system stability.

Phase 5 – Initialise drivers


edit

IO.SYS now runs WIN.COM. WIN.COM loads the VMM32.VXD file into memory or accesses it from the hard disk. This file contains the most important drivers and the 9x kernel.
The real-mode virtual device driver loader checks for duplicate virtual device drivers that exist both in the Windows\System\Vmm32 folder and the VMM32.VXD file. In a case of duplicates, the driver in the Windows\System\Vmm32 directory will be loaded.

Windows 95 to 98 now query real mode drivers calling INT 2Fh and search for drivers in registry entry HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD marked to be loaded as an external file. Vmm32 then analyzes the [386 Enh] section of the Windows\System.ini file and loads drivers listed there. Some important drivers are loaded even if they are not listed in the Windows Registry, SYSTEM.INI or in the Windows\System\Vmm32 directory.

Once the real-mode virtual device drivers are loaded, driver initialisation on Windows 95 and 98 occurs. Vmm32 then switches the CPU from real mode to protected mode. The next step is the initialisation of protected mode drivers, executed in three phases for each device: a critical part of initialisation (while interrupts are disabled), device initialisation (when file I/O is allowed) and InitComplete phase. After initialisation of the display driver, Windows switches to graphical mode.

Phase 6 – Win32 initialisation


edit

Once all of the drivers are loaded, the kernel32.dll, krnl386.exe, gdi32.dll, gdi.exe, user32.dll, user.exe, shell32.dll and explorer.exe files are loaded. The next step in the startup process is to load the network environment. The user is prompted to log on to the network that is configured. When a user logs on, their desktop settings are loaded from the registry, or the desktop configuration uses a default desktop. Windows then starts programs defined in the StartUp folder, WIN.INI and programs defined in registry keys Run, RunOnce, RunServices and RunServicesOnce inside the branches HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion and HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\. After each program in the RunOnce registry key is started, the program is removed from the key.

The Windows 9x kernel is a 32-bit kernel with virtual memory. Drivers are provided by .VXD files or, since Windows 98, the newer WDM drivers can be used.[2] However, the MS-DOS kernel stays resident in memory. Windows will use the old MS-DOS 16-bit drivers if they are installed, except on Windows Me. In Windows Me, DOS is still running, but Windows will ignore any attempt to load its device drivers when parsing the AUTOEXEC.BAT, and will move the environment variables that it still recognizes from the CONFIG.SYS into the Windows Registry.

  • Architecture of Windows NT
  • Microsoft Windows
  • Caldera v. Microsoft
  • WinGlue
  • FreeWin95
  1. ^ «Windows 95 OSR 2». WinWorld. Retrieved 2022-07-31.
  2. ^ Microsoft (2002-04-15). «Windows Driver Model (WDM)». Microsoft. Archived from the original on 2013-01-18. Retrieved 2016-05-27.
  • Schulman, Andrew (November 1994). Unauthorized Windows 95 – Developer’s Resource Kit (1st ed.). Foster City, California, USA: John Wiley & Sons, Inc. ISBN 1-56884-305-4. ISBN 978-1-56884-305-6.
  • Schulman, Andrew; Brown, Ralf D.; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [November 1993]. Undocumented DOS: A programmer’s guide to reserved MS-DOS functions and data structures — expanded to include MS-DOS 6, Novell DOS and Windows 3.1 (2 ed.). Reading, Massachusetts: Addison Wesley. ISBN 0-201-63287-X. ISBN 978-0-201-63287-3. (xviii+856+vi pages, 3.5″-floppy) Errata: [1][2]
  • Paul, Matthias R. (2002-04-10). «[fd-dev] HMA access from TSR». freedos-dev. Archived from the original on 2017-09-09. Retrieved 2017-09-09. […] MS-DOS 7.0+ […] introduced a […] for the most part undocumented RMD data structure usually located in the HMA. The kernel collects and records configuration and Real Mode Driver data during boot (type of driver, interrupts hooked by driver, CONFIG.SYS line of invocation, etc.) and stores this information in a […] complicated […] growing data structure. Presumably […] meant to be used by the Windows core to get a better picture of the loaded Real Mode drivers […] or even attempt to unhook or unload some of them, […] it is only used to a very limited extent ([…] some of the info reflected in the log files created on […] startup, and some parts of the […] configuration manager also make use of it), […] leaving room […] beyond the technical side […] because nothing of the interesting stuff is documented […]
  • Paul, Matthias R. (2002-08-13). «Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird» (in German). Newsgroup: de.comp.lang.assembler.x86. Archived from the original on 2017-09-04. Retrieved 2017-09-03. (NB. Also on MS-DOS 7+ HMA usage and \WINDOWS\IOS.LOG.)
  • Sweger, Kristofer (2007) [2002-07-15]. «ANSIPLUS and Windows». Archived from the original on 2021-11-28. Retrieved 2021-11-28. […] ANSIPLUS’s code cannot be loaded to the HMA under MS-DOS 7 (Windows 9x only) because there apparently is not enough unused HMA memory available. […]
  • Paul, Matthias R. (2004-06-17). «Re: Random Lockups with DR-DOS 7.03». opendos@delorie.com; FidoNet conference: ALT_DOS. Archived from the original on 2019-04-28. Retrieved 2019-04-28. […] all MS-DOS versions prior to Windows 95 […] used a COM style COMMAND.COM file which has a special signature at the start of the file […] queried by the MS-DOS BIOS before it loads the shell, but not by the DR-DOS BIOS […] COMMAND.COM would […] check that it is running on the «correct» DOS version, so if you would load their COMMAND.COM under DR-DOS, you would receive a «Bad version» error message and their COMMAND.COM would exit, so DR-DOS would […] display an error message «Bad or missing command interpreter» (if DR-DOS was trying to load the SHELL= command processor after having finished CONFIG.SYS processing). In this case, you could enter the path to a valid DR-DOS COMMAND.COM (C:\DRDOS\COMMAND.COM) and everything was fine. Now, things have changed since MS-DOS 7.0 […] COMMAND.COM has internally become an EXE style file, so there is no magic […] signature […] to check […] thus no way for DR-DOS to rule out an incompatible COMMAND.COM. Further, their COMMAND.COM no longer does any version checks, but […] does not work under DR-DOS […] just crashes […] the PC DOS COMMAND.COM works fine under DR-DOS […] [3][4]
  • King, Adrian (1994). Inside Microsoft Windows 95 (2nd ed.). Redmond, Washington, USA: Microsoft Press. ISBN 1-55615-626-X. ISBN 978-1-55615-626-7.
  • Programmer’s Guide to Microsoft Windows 95: Key Topics on Programming for Windows from the Microsoft Windows Development Team (1st ed.). Redmond, Washington, USA: Microsoft Press. 1995-07-01. ISBN 1-55615-834-3. ISBN 978-1-55615-834-6. Retrieved 2016-05-26.
  • Oney, Walter (1995). Systems Programming for Windows 95 (1st ed.). Redmond, Washington, USA: Microsoft Press. ISBN 1-55615-949-8. ISBN 978-1-55615-949-7.
  • Pietrek, Matt (November 1995). Windows 95 System Programming Secrets (1st ed.). John Wiley & Sons, Inc. ISBN 1-56884-318-6. ISBN 978-156884-318-6. Retrieved 2016-05-26.
  • Hazzah, Karen (1997). Writing Windows VxDs and Device Drivers – Programming Secrets for Virtual Device Drivers (2nd printing, 2nd ed.). Lawrence, Kansas, USA: Miller Freeman, Inc. ISBN 0-87930-438-3. ISBN 978-0-87930-438-6.
  • Mitchell, Stan (1997-05-11). Schulman, Andrew (ed.). Inside the Windows 95 File System (1st ed.). Sebastopol, California, USA: O’Reilly & Associates, Inc. ISBN 1-56592-200-X. ISBN 978-1-56592-200-6. Retrieved 2016-05-26.
  • Microsoft (2014-02-20). «Windows 95 Architecture Components». Microsoft. Archived from the original on 2014-10-17. Retrieved 2016-05-27.
  • Microsoft (2006-11-15). «Description of the Windows 95 Startup Process». 1.1. Microsoft. Q174018. Archived from the original on 2014-02-14. Retrieved 2016-05-27.
  • Microsoft (2013-10-26). «Understanding Win16Mutex». 5.0. Microsoft. KB125867. Q125867. Archived from the original on 2014-01-16. Retrieved 2016-05-27.

Предаваться воспоминаниям под звуки Windows 95 — это круто, а иметь возможность прикоснуться к ней своими руками — еще круче. Теперь такая возможность есть у каждого: система возрастом 20 лет запускается и полностью работает в браузере, на чистом JavaScript.

Проект использует эмулятор emscripten, компилирующий код на С++ в JavaScript по мере выполнения. Таким образом, устанавливать дополнительно ничего не нужно, всё начинает работать сразу. Вы только представьте: ОС компилируется на JavaScript, загружается через Интернет и интерпретируется браузером! Разумеется, эмулятор работает не идеально, а в IE не работает совсем, но это лишь демо того, какого развития достигли современные технологии.

Только предупреждаем: загрузка длится долго, не спешите перезагружать страницу, особенно если у вас не очень быстрый интернет.

Почему так медленно?

Есть несколько факторов, например:

  • Windows 95 не выполняется напрямую браузером, она крутится на эмулируемом CPU.
  • DOSBox не очень оптимизирован для Windows 95, изначально он создавался для DOS-игрушек.
  • Для DOSBox нет нативных драйверов для доступа к дискам под Windows 95, она работает в режиме доступа через DOS (real-mode disk access).
  • DOSBox запускается не нативно, а в скомпилированном в JS виде с использованием Emscripten.

Почему у меня вылетела ошибка «Emulation aborted due to nested emulation timeout»?

В некоторых случаях Em-DOSBox будет вылетать, если на эмуляцию нужно слишком много времени, чтобы избежать зависания браузера. К сожалению, с этим ничего особо не сделаешь, однако автор работает над решением вопроса.

Как это сделано?

Автор установил Windows 95 на DOSBox по этому гайду, затем запаковал образ диска с AUTOEXEC.BAT и своей конфигурацией dosbox.conf с использованием Em-DOSBox. На самом деле всю работу уже проделали создатели Emscripten, DOSBox и Em-DOSBox, а автор просто собрал всё вместе. Но, тем не менее, получилось довольно занятно.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Почему не работает кнопка win в windows 10
  • Windows 10 wifi host
  • Центр обновления windows по английски
  • Windows send message to windows
  • Hp support solutions windows 7