Windows 95/98 - запуск по команде WIN и полный выход в DOS.

25 September 2018

Можно ли сделать так, чтобы Windows 95 или 98 не запускалась даже после выхода из Нортона, пока не будет набрана команда WIN, а после работы выйти в DOS? Можно, так же, как и в Windows 3.xx! Здесь описывается разработанный автором способ полного выхода из Windows 95/98 (не люблю термин Windows 9x, потому что на самом деле это Windows 4.x) в MS-DOS 7.0/7.1 (входящих в состав программных продуктов Windows 95/98). Кроме того, описывается известная не всем конфигурация системы, при которой Windows 95/98 запускаются так же, как и Windows 3.xx только по команде WIN, что является необходимым также и для возможности выхода в DOS. Сначала я опишу данный способ кратко, затем подробно. Это проверялось на DOS 7.0/Windows 95, DOS 7.1/Windows 95 OSR2, и DOS 7.1/Windows 98 SE.
    Для отключения автоматического запуска Windows необходимо в файле MSDOS.SYS заменить строчку BootGUI=1 на BootGUI=0. А если после установки BootGUI=0 стереть, переименовать или переместить файл "LOGOS.SYS" в директории Windows, в котором хранится надпись "Теперь питание компьютера можно отключить", вместо появления этой надписи и "завешивания" системы при выборе пункта "Выключить компьютер" произойдет полный выход в DOS.
    На компьютерах ATX для запрета автоматического выключения компьютера при завершении работы Windows надо забить пробелами надпись WIN.COM в файле WIN.COM с помощью шестнадцатиричного редактора (например, в vc). Некоторые современные платы AT/ATX при работе в режиме AT зависают при выходе из Windows 95/98. В этом случае тоже надо таким же образом отредактировать файл win.com. Но на некоторых ATX платах такой запрет на отключение компьютера не проходит. Единственный мне известный способ - после выбора пункта "перезагрузить компьютер в режиме MS-DOS" переименовать директорию windows, дать команду exit, а потом переименовать ее обратно. Все это можно автоматизировать с помощью bat - файлов, которые приведены ниже.
    Вы спросите, а зачем это нужно? Среди пользователей компь- ютеров IBM в настоящее есть две основных категории - те, у кого Windows 95/98 запускаются автоматически после включения компьютера и те, у кого данные программы запускаются после выхода из Norton Commander или аналогичных программ (Volkov Commander, DOS - Navigator и др. ), в последнее время таких пользователей все меньше. Тем не менее, практически никто не прописывает (или не прописывал) запуск Windows 3.xx в AUTOEXEC.BAT (команду WIN после NC/ VC/DN), что приведет к запуску Windows после выхода из NC, и мало кто запускает (или запускал) Windows 3.11 автоматически по команде в AUTOEXEC.BAT. Даже те, кто знает, что автозапуск Windows 95/98 можно отключить, обычно продолжают работать по-разному с Windows 3.xx и Windows 95/98. Кто-то поступает в соответствии с распространенными заблуждениями, а кто-то всерьез думает, что Windows 95/98 - это во всем совершенные программные продукты и не желает изменять конфигурацию программ, входящих в их состав.
    Хотя на самом деле никакой разницы между запуском Windows 95/98 и Windows 3.xx нет. В файле MSDOS.SYS при работе с Windows 95/98 так же легко написать BootGUI=0, как и в файле AUTOEXEC.BAT при работе с Windows 3.xx команду WIN. Способ запуска Windows зависит не от версии Windows, а от конфигурации DOS (и об этом еще будет сказано подробно). Нет никаких причин при переходе на Windows 95/98 выбирать автоматический запуск Windows или запуск после выхода из Нортона, если вы запускали Windows 3.xx по команде WIN.
    Конечно, каждый имеет право работать так, как ему удобно, но для многих удобнее часть времени работы проводить в DOS. При работе с компьютером постоянно возникают задачи выхода из NC, а загружать чистый DOS по клавише F8, мягко говоря, крайне неудобно. В то время, как запустить Windows из командной строки не составляет никакого труда, даже если время работы в Windows значительно больше, чем в DOS. Конечно, вы скажете, что можно запустить сеанс DOS из Windows. Можно, но всегда ли нужно?
    Обычно говорят - Windows 95(98) - это операционная система в отличие от оболочки Windows 3.xx. При этом руководствуются рядом соображений, совершенно далеких от реальности, хотя вопрос - что такое Windows 95(98) - операционная система или оболочка действительно следовало бы рассмотреть, но совершенно по другим причинам. В любом случае, Windows 95(98) - это ИСПОЛНЯЕМАЯ ПРОГРАММА ДЛЯ DOS, такая же точно по способу запуска, и выхода из нее, как и Windows 3.xx и любая другая программа, и не имеющая ничего общего в этом отношении с операционной системой Windows NT, к которой относятся также Windows 2000 и XP. Запустите файл WIN.COM любым из способов и завершите его работу по предлагаемому автором способу и вы в этом убедитесь. Но откуда он запускается?
    Ежедневно миллионы пользователей компьютеров видят на своем компьютере надпись "Starting Windows 95..." и не задумываются, какая программа выдает эту надпись. А выдает ее операционная система, которая обладает всеми свойствами DOS и ни одним из свойств Windows, и которую сама фирма Microsoft в зависимости от версии называет MS-DOS 7.0 или MS-DOS 7.1. Практически единственное их отличие от предыдущих версий DOS заключается в том, что, кроме всех прочих программ для DOS, они могут исполнить и такую программу, как Windows 95. (DOS 7.0 может исполнить "обычную" версию Windows 95, а DOS 7.1 - OSR2 и Windows 98, причем в DOS 7.1, в отличие от DOS 7.0, заблокировано исполнение Windows 3.11 и Windows 95 "не OSR"). Причем, после исполнения файла AUTOEXEC.BAT при определенной конфигурации системы (той, которая образуется после инсталляции) они пытаются исполнить команду WIN, файлом, соответствующим этой команде, как правило оказывается файл WIN.COM из Windows 95/98. Если этого файла нет в директории, которая устанавливается файлом MSDOS.SYS как windir и winbootdir или если эти директории не совпадают, будет исполнен любой файл WIN.COM, WIN.EXE или WIN.BAT, находящийся в одной из директорий, прописанных в Path. Эти версии DOS поставляются в комплекте с Windows 95/98. Одним из немногих корректных сообщений о DOS в программных продуктах Windows 95/98 является надпись, выдаваемая файлом WIN.COM при попытке его запуска из версии DOS, более ранней, чем подходящая для Windows 95/98. В зависимости от версии Windows она выглядит следующим образом: "Эта версия Windows не может быть запущена из MS-DOS версии 6.x (7.0) или более ранней."
    Ни одно из перечисленных свойств этих версий DOS еще не де- лает Windows 95(98) операционной системой, понятие которой у многих пользователей ассоциируется с программой, которая стартует при включении компьютера. Давайте посмотрим на файл MSDOS.SYS, входящий в состав DOS 7. Ядро DOS целиком размещается в файле IO.SYS, а файл MSDOS.SYS превращен в небольшой текстовый конфигурационный файл наподобие CONFIG.SYS. После инсталляции Windows 95/98, а на самом деле и DOS 7, в данном файле, в частности, образуется строчка BootGUI=1. Параметры файла MSDOS.SYS и отличия MS-DOS 7.0/7.1 от предыдущих версий MS-DOS описаны в книге "Полное руководство по Windows 95 Питера Нортона".
    Как уже было сказано, если написать в этом файле BootGUI=0, Windows 95(98) не запустится, пока вы не наберете команду WIN (если в директории Winbootdir, устанавливаемой файлом MSDOS.SYS, нет файла COMMAND.COM DOS 7, Windows 95(98) запустится после исполнения файла AUTOEXEC.BAT независимо от BootGUI). Так что же видит пользователь на экране своего компьютера? Сначала стартует DOS 7, имитирует работу Windows, выдавая надпись, Logo (второй раз оно выдается при запуске Windows 95/98), которое хранится в файле IO.SYS, (в программном продукте Windows 95 OSR2 есть файл LOGO.SYS (не путать с файлом LOGOS.SYS)), (если в файле MSDOS.SYS нет надписи Logo=0 ) и прочие сообщения, загружает ядро DOS, обрабатывает файлы MSDOS.SYS и CONFIG.SYS, исполняет файл AUTOEXEC.BAT, используя COMMAND.COM, и, если в файле MSDOS.SYS нет надписи BootGUI=0, дает команду WIN. В результате у пользователя создается впечатление, что Windows 95/98 загружаются при включении компьютера. Если в AUTOEXEC.BAT есть NC, то процесс исполнения этого файла приостанавливается на этой команде, и команда WIN будет дана, если выйти из NC. Миф "Starting Windows 95...", похоже, опровергнут.
    Кроме того, очевидно, что DOS 7 это не 32 разрядная, не мно- гозадачная операционная система, не поддерживающая исполнение программ для любой версии Windows, длинные имена файлов (речь идет не о сеансе DOS из Windows 95/98, а о поведении системы до запуска файла WIN.COM). По команде WIN загружается не только так называемый GUI - Grafical Users Interface, а операционная среда, обладающая перечисленными свойствами, которыми не обладает DOS. Зато под DOS 7 идут все программы для DOS, кроме некоторых утилит, привязывающихся к определенной версии DOS, а также обращающиеся к жесткому диску по прерываниям INT25 и INT26, чтобы открыть для них доступ к диску, надо выполнить команду Lock C: (или другое имя диска), а чтобы закрыть - Unlock C: (эти команды не всегда работают в сеансе DOS из под Windows), то есть все получается наоборот. Команда Lock/Unlock без параметров закрывает/открывает все жесткие диски. DOS 7 не расходует больших ресурсов компьютера. Ядро DOS 7.0 при DOS=LOW и тех же параметрах CONFIG.SYS, что и в DOS 6.22, часть из которых в DOS 7 устанавливается по умолчанию, занимает в оперативной памяти примерно на 10 Kбайт больше места, чем DOS 6.22, а DOS 7.1 примерно на 3 Kбайт больше, чем DOS 7.0, хотя COMMAND.COM DOS 7.0 и 7.1 - в два с лишним раза больше места в памяти по сравнению с DOS 6.22. Ядро DOS 7 вместе с COMMAND.COM занимает по сравнению с DOS 6 памяти больше на величину до 30 %, в то время как Windows во много раз больше. Из драйверов Windows DOS 7 грузит ( после драйверов, прописанных в CONFIG.SYS ) только очень маленький драйвер IFSHLP.SYS, а также DOS-овские драйвера SETVER.EXE, и HIMEM.SYS. Все драйвера Windows грузятся при исполнении файла WIN.COM. Таким образом, DOS 7 и Windows 95(98) - это две совершенно самостоятельные программы, вторая из которых требует первую для своего исполнения (причем именно эту версию DOS, с которой поставляется в одном комплекте, в который входят также различные утилиты для DOS и Windows), а DOS 7 не требует ничего, кроме ресурсов компьютера. DOS 7 состоит из файлов IO.SYS, COMMAND.COM, конфигурационных файлов MSDOS.SYS и CONFIG.SYS, файла AUTOEXEC.BAT и превосходно работает на компьютере без Windows 95/98 (и вообще без Windows), куда ее можно, например, поставить с дискеты на жесткий диск с помощью утилиты SYS.COM. В файле IO.SYS DOS 7 можно найти немало участков кода, повторяющихся с системными файлами предыдущих версий MS-DOS. С одной стороны, нельзя отрицать загрузку DOS, а, с другой стороны, нельзя приписывать DOS свойства Windows. Таким образом, не только Windows 95(98), но и даже ее часть не загружается при включении компьютера. Windows 95/98 не имеют своего загрузчика и своих разделов на жестком диске, а является, повторяю, приложениями DOS. Отсюда совершенно абсурдным становится миф об "эмуляции MS-DOS".
    Но может быть компания Microsoft имела право назвать данные версии DOS именем Windows 95(98)? Не знаю, как с правовой, но я не могу считать это оправданным с моральной точки зрения. Компания выпускает в течение многих лет два программных продукта - DOS и Windows, но очередная версия DOS вдруг выдает сообщения, что это Windows. Кроме того, покажите мне в DOS 7 хотя бы одно окно. Слова DOS и Windows стали уже не только фирменными названиями Microsoft, но и общепризнанными техническими терминами, как, например, слово компьютер. Если бы это удалось доказать, то фирму Microsoft можно было бы обвинить в мошенничестве, а Билла Гейтса назвать самым крупным жуликом всех времен и народов. Вызов Windows, зашифрованный и непонятный для большинства пользователей, прописывается без запроса о разрешении на это при инсталляции ( в отличие, например, от X Window в Linux), это не описано в файлах документации и help'е к программному продукту, который (и даже версию DOS, входящую в его состав), называется "Windows 95(98)", без упоминания в его названии первичной операционной системы DOS. При этом происходит путаница в понятиях, и не понятно, что имеется в виду под словами Windows 95 - Windows 95 или MS-DOS 7. Например, термин "FAT 32 "операционных систем" Windows 95 OSR2 и Windows 98" - к чему он относится - к файловой системе MS-DOS 7.1 без поддержки длинных имен файлов или к Windows 95/98 с их поддержкой? По отношению к версии Windows 95, которая является приложением MS-DOS 7.0 (работающей с FAT) или если система FAT32 не установлена хотя бы применяется термин VFAT. Вот один шедевр от завравшейся фирмы Microsoft, скопированный из файла WIN.COM: "Windows все еще выполняет одну или несколько программ MSDOS. Перед загрузкой Windows необходимо завершить выполнение этих программ. " В первом случае под словом Windows имеется в виду DOS - во втором - действительно Windows. Кроме того, не предусматривается возможность выхода из Windows 95 и 98 в DOS, что вызывает необходимость перезагружать компьютер и приводит к потере времени и износу оборудования. Хотя легко можно обеспечить такую возможность. Подробнее об этом будет сказано позднее. И делается это все с целью формирования выгодного рынка своих продуктов. Фирма Microsoft явно была недовольна тем, что для запуска программ для DOS пользователи предпочитали программы типа Norton Commander (по крайней мере, в нашей стране) что значительная часть программ, особенно игр, утилит (в последнее время утилиты часто выпускаются для Windows 95/98, в частности, из-за длинных имен файлов) и программ, написанных для малого количества пользователей, в то время выпускалась для DOS. А программы для DOS поддерживают различные операционные системы, что не позволяло фирме Microsoft занять монопольное положение. Но самое большое недоумение вызывают авторы многочисленных отечественных и зарубежных книг о Windows 95/98, создающие у пользователя совершенно неадекватные представления о данных программах и не описывающие элементарных вещей из-за безграмотности или по каким-то другим непонятным причинам. А в результате некоторые пользователи не знают даже действия клавиши F8 и жалуются: "Вот, у меня Windows 95, и не идут некоторые программы для DOS". Хотя все книги о Windows 95/98 следовало бы начинать с описания параметров файла MSDOS.SYS. Это касается пользователей различной квалификации, потому что любой человек имеет право на элементарную информацию о способе работы в DOS.
    Конфигурационный файл MSDOS.SYS в DOS 7 можно редактировать точно так же, как и файлы AUTOEXEC.BAT и CONFIG.SYS. Легче всего это сделать в редакторе из Volkov Commander, где можно изменить файл с любыми атрибутами. Перед использованием текстового редактора, который не сохраняет измененный файл с атрибутами hidden, read-only и system, следует убрать эти атрибуты, например, командой attrib msdos.sys -h -r -s, а затем восстановить их, например, attrib msdos.sys +h +r +s. Никаких отрицательных последствий для работы Windows параметр BootGUI (так же, как и возможность выхода в DOS) вызвать не может. Файл MSDOS.SYS относится к конфигурации DOS, хотя Safe mode (пункты меню загрузки или BootSafe=1 в файле MSDOS.SYS (во всех книгах, где описаны параметры файла MSDOS.SYS, присутствует одна и та же ошибка - он называется там BootFailSafe, вторая распространенная ошибка - это утверждение, что в DOS 7, якобы по умолчанию для программ из AUTOEXEC.BAT и CONFIG.SYS устанавливаются такие параметры, как DEVICEHIGH и LH; неужели это так трудно проверить на своем компьютере ? ) ) означает не только отмену обработки файлов AUTOEXEC.BAT и CONFIG.SYS, но и отмену загрузки некоторых драйверов Windows, независимо от того, запускается ли файл WIN.COM автоматически или из командной строки DOS. Если параметр Network=0, в меню загрузки отсутствует режим "Safe mode with network support", при котором Windows 95/98 всегда запускаются автоматически даже при BootGUI=0, а поскольку AUTOEXEC.BAT не обрабатывается, и при наличии в нем NC.
    В файле CONFIG.SYS DOS 7 можно также установить параметр DOS=SINGLE, запрещающий запуск Windows 95/98. Файл WIN.COM из Windows 95/98, независимо от способа запуска, тогда выдаст сообщение об "эмуляции MS-DOS". При нажатии клавиши ESC произойдет возвращение в DOS, а при нажатии клавиши ENTER - перезагрузка компьютера. Это может быть полезным для создания Multi-Config'а, при необходимости использования драйверов, конфликтующих с Windows 95/98 с целью предотвращения их случайного запуска с этими драйверами.
    Теперь приступаю к описанию выхода в DOS. Когда выбирается пункт меню "Завершение работы", появляются 3-4 пункта меню в зависимости от инсталляции некоторых компонентов Windows. Независимо от выбора пункта меню вначале происходят одинаковые действия - запрос о выходе из работающих программ, сохранение параметров конфигурации, сброс данных из оперативной памяти на жесткий диск (при работе с файлами на всех машинах, которые я видел, это происходит примерно через секунду после операции с файлом, а потерянные кластеры возникали только при зависании таких приложений как Word, причем не только под Windows 95/98, но и под Windows 3.11 или если компьютер завис или был выключен менее, чем через секунду после операции с файлом) и т. д. После перезагрузки компьютера загружается DOS 7, а затем каким-либо из способов возможна загрузка Windows 95/98. Многие пользователи применяют этот пункт вместо выхода из Windows. Кроме того, есть пункт "Перезагрузить компьютер в режиме эмуляции MS-DOS". Его название дважды не соответствует действительности. Во-первых, ни о какой эмуляции MS-DOS при работе с Windows 95/98, речи идти не может. Во-вторых, при этом не происходит никакой перезагрузки компьютера, поскольку не перезагружаются ни DOS, ни программа в ПЗУ. В английской версии этот пункт называется несколько более корректно - Restart the computer in MS-DOS mode. А в Windows 98 хоть убрали слово "эмуляции". А на самом деле происходит неполный выход в DOS, причем из компонентов Windows 95/98 в оперативной памяти остается только файл WIN.COM. Поверх файла WIN.COM при этом в память загружается файл COMMAND.COM. Единственное, чем отличается такая работа DOS от работы до запуска WIN.COM, это перезагрузка Windows после команды exit. Файл WIN.COM выдает сообщение "Идет перезагрузка Windows..." и снова загружает все компоненты Windows 95/98. На компьютерах с OSR2, которые я видел, это иногда работало некорректно - после команды exit и выдачи надписи происходила перезагрузка компьютера. Если дать команду WIN, также будет запущен новый сеанс Windows 95/98, а в памяти будет находиться еще один WIN.COM.
    Это связано с тем, что при BootGUI=1 Windows 95/98 не загружают в память файла COMMAND.COM. После исполнения файла AUTOEXEC.BAT исполняется команда, эквивалентная команде SHELL=C:\WINDOWS\win.com в файле CONFIG.SYS, с той только разницей, что файл CONFIG.SYS обрабатывается раньше, чем AUTOEXEC.BAT. Вместо C: указывается любое имя диска, а вместо WINDOWS - любая директория winbootdir. Однако перед этим, если есть возможность, файл WIN.COM исполняется с помощью COMMAND.COM. В связи с тем, что файл WIN.COM устанавливается как SHELL вместо COMMAND.COM, завершение работы WIN.COM в таких условиях завесит компьютер. Это и происходит при выборе пункта меню "Завершение работы" - "Выключить компьютер" при BootGUI=1. В директории Windows есть файл "LOGOS.SYS", который имеет формат BMP и содержит графическую надпись: "Теперь питание компьютера можно отключить". Если его убрать из директории Windows, при выборе этого пункта меню вместо графической надписи появится надпись в текстовом режиме: "Теперь можно отключить питание компьютера. Для перезагрузки системы нажмите клавиши Ctrl + Alt + Del." Если параметр файла MSDOS.SYS BootGUI=0, при этом произойдет выход в DOS и эта надпись будет видна в DOS. При BootGUI=1 система "завешивается", даже если дать команду WIN, не выходя из NC/VC, но при выборе по клавише F8 пункта: "Command prompt only" происходит выход в DOS. Таким образом, для выхода в DOS необходимо наличие в памяти файла COMMAND.COM, загруженного до WIN.COM. Если есть файл LOGOS.SYS, после выдачи графической надписи можно нажать клавишу Enter, в результате чего произойдет выход в DOS, но при этом портится вид командной строки (если Windows 95/98 запустить из VC, этого не происходит, а если запустить VC и выйти из него, он восстанавливается, cls не помогает). "Невозможность" полного выхода в DOS из Windows 95/98 связана не со сложностью этих программ (я так тоже раньше думал, как и многие) а с нежеланием фирмы Microsoft предусмотреть эту возможность, которая отказалась от загрузки в память файла COMMAND.COM при BootGUI=1 и предлагает загружать его поверх WIN.COM.
    Как известно, компьютеры ATX при завершении работы Windows 95/98, при выборе пункта меню "выключить компьютер" автоматически отключаются. Поэтому описанный способ сам по себе не срабатывает. Просто отвратительно, что какое-то приложение DOS само вырубает компьютер, когда его об этом не просят. Причем, нет способов отменить это выключение ни в BIOS компьютера, ни средствами Windows. Если оставить в директории Windows только файл WIN.COM, можно догадаться, что выключение компьютера зашито в нем. Опять фирма Microsoft ни о чем не спрашивает пользователя и не дает ему возможности изменить настройки системы. Если открыть для просмотра файл WIN.COM, можно найти в нем надпись WININIT.EXE WININIT.INI COMMAND.COM DOSSTART.BAT WIN.COM. Поскольку запуск файлов DOSSTART.BAT и COMMAND.COM происходит в момент завершения работы Windows, можно предположить, что файл WIN.COM запускается еще раз, чтобы вырубить компьютер. Если забить пробелами надпись WIN.COM и выбрать пункт "Выключить компьютер", компьютер автоматически не отключается, а появляется текстовая надпись об отключении компьютера. При BootGUI=0 происходит выход в DOS. LOGOS.SYS в таком варианте удалять необязательно. Как уже было сказано, некоторые современные платы AT/ATX при работе в режиме AT зависают при выходе из Windows 95/98 через пункт "Выключить компьютер". В этом случае тоже надо таким же образом отредактировать файл win.com. Как это работает, я точно не знаю, если кто-то знает, какая команда assembler'а соответствует отключению ATX-компьютера, пусть скажет более грамотный путь.
    Но на некоторых компьютерах это не срабатывает. Если оставить только файл WIN.COM, то он не выключает компьютер после его редактирования, но где-то это зашито еще. Однако и здесь я нашел способ (правда, не очень удачный) полного выхода из Windows 95/98 с помощью пункта меню "Перезагрузить компьютер в режиме MS-DOS", с возможностью выгрузить из памяти файл WIN.COM, в отличие от стандартного варианта.
    В свое время, еще на компьютере AT я заметил, что, если запустить файл WIN.COM Windows 95 из DOS 7.0 на машине без Windows 95, он потребует файла vmm32.vxd, не загрузится в оперативную память и, если автозагрузка Windows отключена, произведет возврат в DOS, а иначе завесит систему. Тогда я на машине с Windows 95 после выхода по пункту 3 сверху ("Перезагрузить компьютер в режиме эмуляции MS-DOS" переименовал файл vmm32.vxd и дал команду exit. В результате появилась надпись в текстовом режиме об отсутствии файла vmm32.vxd, а затем стандартная графическая надпись Windows 95 "Теперь питание компьютера можно отключить" и система, была, как обычно, завешена.
    Сначала я не стал разбираться с каждым конкретным файлом и решил избавиться от всех компонентов Windows 95, переименовав директорию Windows. После этого я дал команду exit и произошел полный выход в DOS. Теперь я выяснил, что это срабатывает и на компьютере ATX - автоматического выключения питания при этом не происходит.
    Как известно, после выбора 3 сверху пункта меню завершения работы с Windows 95/98 запускается файл DOSSTART.BAT. Я записал в этот файл следующие строчки:

     cd \
     ren windows win

(можно переименовать директорию WINDOWS как угодно ). Команда exit была уже не нужна, и к тому же при переименовании директории, в которой находится bat - файл, он прекращает свою работу.
     Если в файле DOSSTART.BAT есть вызов резидентной программы, вместо выхода из Windows происходит перезагрузка компьютера. Поэтому, оттуда их следует убрать. Первоначально в этот файл при инсталляции Windows 95/98 "перемещаются" строчки, закомментированные программой установки в файле AUTOEXEC.BAT, например драйвер CD-ROM mscdex.exe. Если они не конфликтуют с Windows, лучше всего восстановить их в файле AUTOEXEC.BAT. Драйвер mscdex.exe не вызывает у меня никаких проблем при работе Windows.
     Теперь возникла задача автоматического обратного переименования директории WINDOWS. Его было невозможно осуществить с помощью файла DOSSTART.BAT, в том числе из-за переименования его директории и с помощью вызова других файлов из этого файла, поскольку в любом случае прекращал свое действие файл COMMAND.COM, загруженный после WIN.COM. Тогда я создал файл, который назвал W98.BAT, поместил его в корень на диске С: и записал туда следующие строчки:

     cd \
     win
     ren win windows

     После завершения своей работы, Windows 98, как и любая исполняемая программа для DOS, передала управление тому BAT-файлу, из которого была вызвана.
     Для корректной работы окончательные версии файлов выглядят следующим образом:

     W98.BAT (в корне на диске C:)

     @echo off
     C:
     cd \
     ren 0 1
     win %1 %2 %3
     ren win windows
     ren 1 0

     DOSSTART.BAT (в директории C:\WINDOWS)

     @echo off
     cd \
     if exist 1 ren windows win

     На диске C: в корне есть файл 0 (можно сделать его размером 1 байт), который переименовывается в 1

     В файле AUTOEXEC.BAT есть строчка:

     if exist 1 ren 1 0

     Если Windows находится на другом диске (приводится пример для диска D:) в директории WINDOWS (а DOS 7 - на диске C:)

     В начало W98.BAT (в корне на диске C:)

     @echo off
     D:

     DOSSTART.BAT (в директории D:\WINDOWS) - то же самое, как и на C:

     На диске D: в корне есть файл 0, который переименовывается в 1

     В файле AUTOEXEC.BAT есть строчки:

     D:
     if exist 1 ren 1 0
     C:

     Вначале файл W98.BAT дает команду C: или с именем другого диска, на котором находятся файлы Windows, затем cd \ для того, чтобы корневая директория диска с директорией Windows и файлом 1 стала текущей. Затем файл 0 переименовывается в файл 1, чтобы сообщить файлу DOSSTART.BAT, что Windows 95/98 запущена из BAT-файла, который позволяет обратно переименовать директорию WINDOWS и можно переименовывать ее в другое имя. %1 %2 %3 позволяет запускать Windows с параметрами. После этого управление передается файлу WIN.COM, а при выходе - файлу DOSSTART.BAT, который делает текущей корневую директорию, проверяет наличие файла 1, и, если он есть, переименовывает директорию Windows, завершая при этом свою работу и работу файла WIN.COM. После этого управление передается в файл W98.BAT, который производит обратное автоматическое переименование директории Windows и файла 1. Если компьютер был перезагружен, обратное переименование файла 1 производит AUTOEXEC.BAT.
     Дальше происходит возвращение в DOS. При переименовании директории Windows в ней сохраняются длинные имена файлов. Правда, при выборе в свойствах файла пункта "Режим MS-DOS", если Windows запущена по команде W98 после выхода из программы вместо перезагрузки Windows происходит возвращение в DOS, поскольку при этом используется файл DOSSTART.BAT, но я считаю, что такие программы следует запускать из DOS.
     При соответствующих настройках происходит возвращение в командную строку DOS, в Norton или Volkov Commander, в которых по команде history (ALT+F8) видна команда WIN, доступны все резидентные программы, загруженные до Windows, сохраняются настройки. После этого Windows можно запускать и выходить оттуда сколько угодно раз, не перезагружая компьютер. Кстати, Windows 95/98, так же, как и предыдущие версии, позволяют запуск по команде WIN с параметрами, если необходимо запустить программу для Windows, например win pbrush C:\windows\file1.bmp. Я постоянно работаю таким способом и не обнаружил никаких отрицательных последствий, так, как работа Windows 95/98 всегда завершается одинаково, независимо от последующего поведения WIN.COM и COMMAND.COM. В обычном порядке работают все остальные пункты меню завершения работы с Windows. Корректно работает перезагрузка Windows по пункту меню "Перезагрузить компьютер" при нажатой клавише Shift, после этого сохраняется возможность выхода в DOS.
     Интересно, что DOS 7.0 может исполнить файл WIN.COM при BootGUI=1 и отсутствии файла AUTOEXEC.BAT, требующего для своего исполнения COMMAND.COM, как для Windows 95, так для Windows 3.11 на машине без COMMAND.COM. Если в файле MSDOS.SYS не отключено Logo, видно, как Logo Windows 95 при загрузке сменяется на Logo Windows 3.11. При этом обе версии Windows будут работать и исполнять программы для DOS и Windows (но не из NC, а сеанс DOS, т. е. копию COMMAND.COM, естественно запустить нельзя), кроме bat-файлов и встроенных команд DOS, требующих COMMAND.COM, и сохранять файлы. Windows 95/98 не загружают в память файл COMMAND.COM при BootGUI=1 (если не выбран пункт "Command prompt only"), а Windows 3.11 при запуске из DOS 7.0, BootGUI=1 и отсутствии файла AUTOEXEC.BAT. При попытке выхода из Windows 3.11, запущенной из DOS 7.0 без загрузки в память файла COMMAND.COM, компьютер зависает.
     Теперь еще об одной неприятной вещи, которую я видел на машинах с DOS 7.1 и Windows 95 OSR2. При подгрузке предыдущей версии DOS операционной системой DOS 7.1 (DOS 7.0 с разных дистрибутивов это делает корректно) первый раз машина работает нормально. Но после перезагрузки можно загрузиться только с дискеты, а с жесткого диска DOS не грузится. Загрузчик DOS 7.1 не производит обратного переименования файлов IO.SYS обеих версий DOS. Это очень хорошо характеризует отношение фирмы Microsoft к пользователям, выпустившей свой продукт в таком виде. Пользователь не очень высокой квалификации вряд ли догадается, в чем здесь дело. Я видел программу, которая это исправляет, но не проверял ее работу. Для корректной подгрузки предыдущей версии DOS можно также в файл AUTOEXEC.DOS записать следующие строчки (приводится пример конца файла, при этом предполагается, что утилита attrib предыдущей версии DOS есть на диске и доступна через Path, указанный в файле AUTOEXEC.DOS):

     attrib io.sys -h -r -s
     ren io.sys *.dos
     attrib io.dos +h +r +s
     attrib winboot.sys -h -r -s
     ren winboot.sys io.sys
     attrib io.sys +h +r +s
     C:\vc\vc

     Остальные файлы тогда переименуются автоматически после перезагрузки компьютера. Или, если вы не желаете подгружать предыдущую версию DOS, можно написать в файле MSDOS.SYS BootMulti=0. Тогда пункт меню загрузки предыдущей версии DOS не появится.
     Загрузка предыдущей версии DOS загрузчиком MS-DOS 7.1 из дистрибутива Windows 98 работает корректно (диск должен быть FAT16).
     Постараюсь объяснить, почему я не думаю, что нужно отказываться от использования DOS. По моему опыту, интерфейс Windows требует больше времени на выполнение тех же операций, чем интерфейс Norton Commander, на что указывает фирма Symantec в рекламе своих аналогов NC для Windows 95. Это несмотря на ресурсоемкость Windows и претензии на превосходство по интерфейсу, где предусмотрено много операций, но отсутствуют самые необходимые. А наилучшей известной мне интерфейсной программой для DOS является Volkov Commander. Вот и приходится переключатся между интерфейсом Windows и NC / VC или выходить из Windows. Тот, кто работает только в Windows, имеет, я думаю, меньше шансов стать квалифицированным пользователем и программистом, из-за того, что интерфейс Windows не дает достаточного представления о файловой структуре и прочих ресурсах компьютера. Например, в диспетчере файлов или проводнике невозможно стандартными способами просмотреть или отредактировать EXE или COM - файл и даже в русской версии - текстовый файл в DOS - кодировке. Я прочитал совет создать в директории WINDOWS\SENDTO ярлык для wpview.exe и воспользовался им и еще создал ярлыки для ncedit.exe и hiew.exe. Тогда в проводнике можно просматривать и редактировать любой файл с помощью пунктов меню "Отправить". Windows не предусматривает удобного сочетания собственных элементов интерфейса с командной строкой DOS, как это сделано в программах типа Нортона. Одним из главных недостатков Windows является то, что там затруднена возможность самостоятельно выбрать интерфейс, в отличие, например, от DOS. Можно, конечно, в файле SYSTEM.INI после shell=... вместо explorer.exe или progman.exe прописать альтернативную интерфейсную программу или поместить в группу программ "автозагрузка" (в Windows 3.xx - "группа запуска") один из аналогов NС для Windows, но и это полностью не решает проблемы интерфейса и может привести к затруднению использования функций Windows, которые в недостаточной мере поддерживаются альтернативными интерфейсными оболочками для Windows. Недостатками интерфейса Windows (такими, как отсутствие удобных способов работы с клавиатурой без мыши, окна, закрывающие рабочее пространство в самом неподходящем месте) обладают и практически все программы для Windows, имеющие общий весьма небогатый набор компонентов и похожие чисто внешне, но имеющие во многом различные для пользователя принципы работы. В большинстве случаев программы для DOS, с которыми я работал, имели более удобный интерфейс, чем программы для Windows, сколько бы меня ни уверяли в обратном. Популярность Windows из-за этого была недостаточной для фирмы Microsoft, решившей использовать такие методы по ее повышению, которые не поощряют свободу выбора.
     Следует отметить, что во всех остальных отношениях, кроме автоматической загрузки Windows, выдаче неполной, а в ряде случаев даже ложной информации и невозможности выхода в DOS стандартным способом, первая версия Windows 95 и DOS 7.0 были в основном качественным продуктом. Претензии здесь не к программистам, а к руководству фирмы Microsoft. Я считаю, что данный продукт нуждается в конфигурировании с точки зрения интересов пользователя, которые оказались в противоречии с интересами изготовителя, установившего неудобные параметры по умолчанию. Но, несмотря на все недостатки интерфейса (интерфейс DOS по крайней мере не мешает работе программ типа Нортона), неустойчивости конфигурации, связанной с тенденцией к автоматическому сохранению параметров (в том числе размеров окон и прочих настроек интерфейса), ресурсоемкости, ненадежности даже по сравнению с DOS, Windows 95, по большинству из этих параметров и многозадачности, которой нет в DOS, превосходит Windows 3.xx ( с интерфейсом диспетчера программ, который можно установить и в Windows 95 (при этом выход из Windows при BootGUI=0 и отсутствии файла LOGOS.SYS происходит точно так же, как из Windows 3.xx, а иначе возможно только выключить компьютер)). Главный недостаток Windows 95 по сравнению с 3.xx c точки зрения ресурсоемкости - большое место на жестком диске, а также большое время загрузки на маломощных компьютерах. В то же время, на 386 DX 40 компьютере с 8 MB оперативной памяти Windows 95 и многие программы для нее, например Microsoft Office 95, идут не хуже чем Windows 3.11 и программы для нее и не хуже, чем на 486*8, 40 МГц. Причем программы для Windows 3.11 на 386*8, в отличие от программ для DOS, которые замедляются под Windows 95, 98, 3.xx, и особенно под NT, идут с абсолютно одинаковой скоростью как под Windows 95, так и под Windows 3.11. Windows 95/98 сначала загружает 16 - разрядные компоненты, аналогичные Windows 3.xx, а лишь затем 32 - разрядные компоненты, причем программы для Windows 3.xx и 95/98 обращаются каждая к своему слою, а программы для DOS - к DOS 7, то есть архитектура Windows 95/98 восходит к предыдущим версиям Windows.
     Только Windows 98 (приходится пользоваться) качественным продуктом никак не назовешь. Прожорливость к ресурсам возросла, частота зависаний раз в 10 больше, чем в первой версии Windows 95. И особенно низкое качество у Windows ME - абсолютно ничего нового, только ядро DOS зачем-то сразу передает управление vmm32.vxd - DOS не запустишь, а увеличения надежности никакого. Глючит в сети ужасно. В NT / 2000 хоть есть встроенный мультизагрузчик (так же как и в Linux), что позволяет загрузить DOS.
     Реальность такова, что практически все современные мощные (хотя как правило более низкие по удельной мощности по сравнению с программами для DOS) программы для IBM выпускаются для Windows, используя при этом набор шрифтов, возможности объединения текста и графики (которые в черно-белом варианте были, впрочем, реализованы еще в версиях Windows 1-2, занимающих всего одну дискету) и т. д. Вызывает сожаление не то, что выпускается много программного обеспечения под Windows, а что сейчас трудно достать программное обеспечение под DOS, и что его выпускается все меньше. Единственной реальной альтернативой Windows для большинства пользователей может быть использование как DOS, так и Windows и программного обеспечения под них. При этом не следует запускать программы для DOS из под Windows без нужды, так как интерфейс и ресурсоемкость Windows будут в этом случае только отнимать время. Особенно это относится к трате времени на загрузку Windows и значительному торможению работы программ для DOS (причем не только игр), практически всегда происходящему при запуске программ для DOS из под Windows (в 3-4 раза на 386 и в 1,5-2 раза на Pentium III), которая в этом случае выполняет только вредную функцию (если не нужны многозадачность и прочие функции Windows), паразитируя на DOS и ресурсах компьютера. А некоторые программы (в том числе, важные утилиты) вообще не идут под Windows или идут некорректно (проще говоря, глючат), что ограничивает возможности работы с компьютером при автоматическом запуске Windows. Кроме того, DOS 7 - хорошо сделанная вполне полноценная версия DOS. Поэтому DOS 7 + Windows 95, c конфигурацией, которую предлагает автор, это, пожалуй оптимальный выбор в связи с отсутствием альтернативы в настоящий момент и скорей всего еще очень долго ( к сожалению, ожидается господство Windows NT, не использующей DOS, которую можно выбрать только при включении компьютера). Может быть, когда-нибудь придет время операционной среды, лишенной недостатков DOS и Windows, но пока что наблюдается тенденции к монополии Windows и использованию оконного интерфейса в различных операционных средах и в их программном обеспечении.
     К сожалению, попытка найти мощную ОС с удобным интерфейсом не привела меня к успеху. С точки зрения своих возможностей, многозадачности, использования преимуществ современных процессоров и увеличения ОЗУ, надежности, быстродействию и низкой требовательности к ресурсам (последние 3 параметра не относятся к X-Window) Linux значительно превосходит как Windows 95/98, так и NT. Но программы для Linux это или черно-белые текстовые программы, управляемые с помощью командной строки и горячих клавиш без меню или оконные графические программы, для работы с которыми желательно 128 мегабайт памяти. В BeOS и OS/2 тоже мышино-оконно-иконный интерфейс. Так что, до тех пор, пока различные ОС будут копировать Windows, успеха как рабочие станции они иметь не будут.
     Конечно, DOS это маломощная система, непригодная для решения многих задач. Но ее преимущества - это надежность, нетребовательность к ресурсам компьютера, простота настройки и главное, наличие большого количества приложений с удобным интерфейсом, которые правда уже трудно сейчас достать. Кроме того, в тот момент, когда создавалась DOS, она умела работать со всеми устройствами или существовали универсальные драйвера. Что с этим творится сейчас - это просто идиотизм. Причем в ОС, отличных от операционной среды Windows, по этим параметрам положение еще более неблагополучное. Это следствие монополии Microsoft и отсутствия единого стандарта на оборудование. Зайдите на любой сайт Linux, BeOS, OS/2. Одни и те же проблемы - железо, русификация, отсутствие софта. Дальше в DOS, достаточно просто скопировать программу. В Windows и Linux как правило ее надо инсталлировать. Большинство приложений DOS, кроме навороченных игрушек, работает на 486 процессоре примерно в 2 раза быстрее, чем на 386, при дальнейшем повышении мощности процессора примерно линейная зависимость от частоты. Приложения Windows вообще не замечают замены процессора с 386 на 486. При повышении только частоты процессора в несколько раз и таком же увеличении оперативной памяти Windows умудряется работать только чуть-чуть побыстрее. Так что утверждение о том, что Windows лучше, чем DOS, использует преимущества современной аппаратуры, очень сомнительно.
     На мой взгляд самый удобный интерфейс - это система меню, управляемых с клавиатуры, содержащих текстовую информацию ( в текстовом или графическом режиме ). Они могут быть дополнены командной строкой и горячими клавишами, на использование которых вместо меню можно переходить по мере освоения программного продукта. Мышь должна применяться только для рисования и в компьютерных игрушках (планшет стоит гораздо дороже). В той или иной мере это и реализовано в большинстве приложений DOS. Переход к оконным приложениям привел, по моему мнению, к деградации интерфейса и к прекращению его развития. Сколько времени теряется на то, чтобы перекладывать руки с клавиатуры на мышь и обратно. Постараюсь изложить, каким как пользователь я хотел бы видеть интерфейс операционной системы. По умолчанию, представляется список всех файлов, как в Нортоне, а не их части, как в интерфейсе Windows. По нажатию определенной клавиши можно вызвать список часто используемых файлов. В определенном месте экрана постоянно находится командная строка и список задач, причем результат команды всегда можно просмотреть, как например в VC по нажатию клавиши Esc или в NC по Ctrl+o. Но в отличие от DOS в многозадачной системе это должно быть возможно и когда работают другие программы, кроме оболочки. Все остальное место экрана выделено программам, в том числе и интерфейсной оболочке операционной системы (одной из задач). Программы могут выполняться или в полноэкранном режиме (за исключением места для командной строки и списка задач) или экран можно делить на две ( по горизонтали или вертикали ) или четыре равные части. Windows, mouses, and icons must die !!!
     Теперь о том, что же такое Windows 95 - операционная система или, по выражению неизвестного автора, "оболочка дешевая", хотя после всего, что было сказано о политике руководства фирмы Microsoft, так и хочется назвать ее вторым выражением, не заботясь о корректности. Потому что сейчас очень легко сбить пользователя с толку, называя Windows 95/98 операционными системами, и не объясняя, что имеется в виду. Хотя дело здесь не только в том, как данная программа загружается и завершает свою работу, но и в том, как работает. Считается, что Windows 95/98 используют DOS только для своего запуска, запуска и работы программ для DOS, включая драйверы и резидентные программы, прописанные в AUTOEXEC.BAT и CONFIG.SYS, и в случаях, когда устройствам, поддерживаемым DOS, не может быть назначен подходящий драйвер Windows, не используя DOS для запуска и работы 16 и 32 разрядных программ для Windows (но и в них может быть предусмотрено обращение к DOS, например, исполнение ее команд). В этом заключается отличие от Windows 3.xx, которая использует DOS при работе с файлами программ как для DOS, так и для Windows. Хотя есть сообщения, что Windows 95 обращается к DOS при установке даты и времени файла и при смене диска. Но файл антивируса Adinf Extension, программы для DOS, которая загружается из файла CONFIG.SYS, работающий с файлами, не используя DOS, и поддерживающий длинные имена файлов при работе из DOS (также как и EXE-файл Adinf), имеет расширение SHL, то есть оболочка. Кроме того, Windows 95/98 используют DOS (хотя и перехватывают большое количество функций DOS) для программ для DOS, которые не запустятся из под Windows 95/98 без ядра DOS в памяти. (Да и сама Windows 95 или 98 скорей всего без него зависнет). И еще, Windows 95/98 при своей загрузке считывают информацию из DOS, которую затем используют при работе. Сохраняются такие параметры DOS, как Path, диски, определяемые утилитой Subst и др. Вряд ли можно дать строгое определение операционной системы и оболочки. Windows 3.xx тоже часто называют операционной системой.
     Надеюсь, что независимо от отношения к интерфейсу Windows предлагаемый автором способ запуска Windows 95/98 и выхода из этих программ может сэкономить время пользователя.