День Нептуна. Вспоминаем загадочную Windows Neptune
Представление о том, что в Microsoft создают операционные системы последовательно, одну за одной, как эпизоды в телесериале (да и те далеко не всегда снимают по порядку) — не совсем верно. Работа над следующей версией Windows порой стартует едва ли не одновременно с началом разработки текущей, просто занимаются этими проектами разные команды. Так произошло и в самом конце 90-х: ещё не вышла легендарная Windows 2000, а в Microsoft уже вовсю проектировали ОС, которая должна была прийти ей на смену. Так появился проект Neptune — самая загадочная версия Windows, которую всё ещё можно отыскать на торрентах, установить и протестировать на своём компьютере.
Когда я отремонтировал подаренный друзьями старенький ноутбук Toshiba Satellite родом из 90-х, я задался вопросом, какую операционку на него водрузить. На самом ноуте красовалась наклейка с надписью «Designed for Windows NT and Windows 98», но возиться с настройкой NT4, для запуска установщика которой к тому же требовалась исправная чистая дискета, мне не хотелось, а ставить Windows 98 или 2000 было попросту скучно — обе ОС мне очень хорошо знакомы. И тут я вспомнил, что давным-давно нарезал на CD-болванку, скачанную откуда-то тестовую сборку Microsoft Neptune — удивительной системы из «тупиковой» ветки семейства NT. Почему бы не протестировать эту ОС на аутентичном железе? Сказано — сделано!
В конце 90-х разработчикам стало очевидно, что семейство 9x доживает свои последние дни. Существовавшее на тот момент разделение Windows на два семейства: «домашнее», предназначенное для простых пользователей, и «бизнес-версию» для рабочих станций и предпринимателей должно было сохраниться и в дальнейшем. При этом Windows 2000 Professional рассматривалась именно как «бизнес-версия» ОС, в ней не предполагалось наличие большого количества развлекательных утилит и программ, таких как медиацентр, мессенджеры и игры. На смену этой ОС должна была прийти новая операционная система, получившая кодовое наименование Odyssey — её релиз был запланирован на четвёртый квартал 2001 года.
Напротив, «домашней» версией Windows считалась обновлённая модификация Windows 98 под названием Millennium Edition, которая должна была стать последним выпуском винды на платформе 9х. Следующую «домашнюю» редакцию Windows, собранную уже на основе технологии NT, назвали другим мифологическим «морским» именем — Neptune. Предполагалось, что она поступит в продажу в марте 2001 года и окончательно вытеснит Windows ME на рынке ПК и ноутбуков.
Изначально Neptune упоминался в документации Microsoft, как Windows NT 5.5, однако в единственной утёкшей в паблик версии операционной системы — 5111.1 (Microsoft Neptune Developer Release) ядро имеет обозначение 5.00.5111.1, вероятно, чтобы соответствовать версии подсистемы в PE-заголовках программ. Каковы же принципиальные отличия Neptune от хорошо знакомой пользователям Win2K?
Первое, что бросается в глаза при запуске ОС — модифицированный экран входа в систему, очень похожий на тот, что позже появился в Windows ХР. Тем не менее это совершенно другое приложение, основные функции которого реализованы в библиотеках logonhta.dll и shgina.dll. Практически точно в таком же виде с небольшими изменениями logon screen перекочевал в ранние сборки Windows Whistler, после чего был заменён новым приложением на базе DirectUI. Чтобы войти в систему, пользователь Neptune должен нажать на значок своей учётной записи и ввести пароль, если он был задан ранее. Кнопка Turn off the computer на самом деле не выключает машину, а переводит её в режим гибернизации. Чтобы полностью выключить ПК, нужно щёлкнуть на этой кнопке мышью, удерживая клавишу Shift.
Интерфейс Neptune практически полностью идентичен оформлению Windows 2000, здесь отсутствуют какие-либо ощутимые различия. То же Главное меню, те же значки на Рабочем столе, такая же в точности Панель задач. Никаких «красивостей» в духе ХР в оформлении Neptune нет, время для них ещё не пришло.
Зато после входа в систему на экране демонстрировалось окно Starting Places, в котором пользователю предлагалось начать работу с различных активностей: проверки электронной почты, сёрфинга в интернете, перехода в папку «Мои документы», прослушивания музыки, просмотра фото и т.д.
По большому счёту этот экран представлял собой веб-страницу в стиле ActiveDesktop, оформление и элементы которой можно было настроить щелчком мыши на ссылке Customize this page.
Поскольку Neptune предназначался прежде всего для «домашних» пользователей, разработчики предусмотрели в составе ОС три развлекательных «центра активности» (Activity Center) — Photo Center, Music Center и Game Center. Их основные функции были реализованы в библиотеке accore.dll, которую следовало скопировать вручную с дистрибутивного диска в папку C:\%SYSTEMROOT%\System32 и зарегистрировать командой regsvr32 accore.dll, после чего все необходимые для работы «центра активностей» файлы появлялись в папке C:\%SYSTEMROOT%\Activity. Тем не менее расположенные на странице Starting Places ссылки по умолчанию представляют собой заглушки и ведут в «открытый космос».
Опять же, для удобства простых «домашних» юзеров стандартный апплет управления пользовательскими учётными записями в Neptune был заменён красивым HTML-приложением, которое получило название Windows Identities и открывалось вместе с оснасткой NUSRMGR.CPL.
Здесь пользователь мог изменить изображение, имя и тип своей учётной записи, поменять, добавить или отключить пароль, а также администрировать учётки других пользователей при наличии привилегий администратора. Кроме того, в Neptune помимо гостевой (Guest) появилось ещё три стандартных учётных записи:
- Owner — владелец компьютера, обладающий фактически полными административными правами и имеющий возможность вносить изменения в системные настройки, а также управлять другими учётными записями;
- Adult — учётная запись взрослого пользователя, имеющего возможность устанавливать и удалять приложения и менять базовые настройки системы, такие как, оформление Рабочего стола, экранное разрешение и т.д.;
- Child — учётная запись для ребёнка, действия которого необходимо контролировать. Пользователь с этой учёткой не имел возможности менять настройки ОС, модифицировать или удалять системные файлы, а также для него можно было настроить ограничения по времени работы в системе (по истечении которого текущий сеанс автоматически завершался) и доступа к определённым ресурсам интернета путём ведения чёрного и белого списков URL. Пользователь Child мог поменять только имя и пиктограмму своей учётной записи, но не её тип.
Впоследствии Microsoft по неизвестной причине отказалась от этих стандартных учёток, оставив в системе только аккаунты Администратора (Owner) и Гостя.
Стандартная справка Windows в Neptune была заменена подсистемой PCHealth, прописавшейся в папке C:\%SYSTEMROOT%\PCHealth\, и почти целиком позаимствованной (судя по числу сохранившихся ссылок и упоминаний), из Windows Millennium Edition. Однако доступ к старой справке из Windows 2000 в этой версии ОС всё ещё сохранился. Вся справочная информация приложения PCHealth хранилась в базе Microsoft Access, физически расположенной в файле C:\%SYSTEMROOT%\PCHealth\HelpCtr\Database\HCDATA.MDB, при этом база могла обновляться с сайта Microsoft, за что отвечало специальное приложение HCUPDATE.EXE. Помимо чисто справочной функции, служба PCHealth отслеживала состояние системы и создавала мини-дампы в случае критических сбоев. При наступлении такого события приложение автоматически предлагало пользователю отправить отчёт об ошибке в Microsoft для последующего анализа.
Ещё одним HTML-приложением, перекочевавшим в Neptune из Windows Millennium Edition, стала утилита автоматического обновления Microsoft AutoUpdate, физически реализованная в виде приложения WUAUCLT.EXE, которое использовало динамическую библиотеку WUAUHTML.DLL. Несмотря на то что утилита нормально запускалась, сама функция автоматической загрузки и установки обновлений в Neptune реализована не была.
Также в ОС был предусмотрен ещё один независимый механизм обновления под названием Neptune Upgrade Service, запускаемый вручную и предназначенный для автоматической проверки апдейтов на серверах Microsoft, их загрузки и установки. Но и его полноценная работа в этой версии ОС реализована не была.
Для ускорения загрузки операционной системы в Neptune была применена специальная служба Fastboot, основной функционал которой реализован в библиотеке FASTBIKE.DLL. Fastboot можно включить в настройках электропитания компьютера, но работала функция только в том случае, если Neptune был установлен в разделе с файловой системой FAT32. Реализована она была следующим образом: операционная система создавала файл образа C:\ %SYSTEMROOT%\boot\BOOTIMG.IMG размером порядка 2,5 Мбайт, в котором содержался дамп памяти с загруженным ядром WINNT и основными драйверами. При следующем запуске системы в режиме Fastboot этот дамп напрямую грузился в память, после чего Neptune догружал все остальные недостающие драйверы и запускал службы. При этом разница была заметна не только по сократившемуся времени запуска ОС, но и визуально: в режиме Fastboot индикатор процесса загрузки на сплешскрине Neptune становился зелёным, в то время, как обычно, он был синего цвета.
В Windows XP разработчики отказались от этого режима, но значительно позже что-то похожее было реализовано в Windows 8 под названием Fast Startup, и благополучно перекочевало оттуда в Windows 10/11. В целях оптимизации быстродействия в Neptune использовалась принципиально новая технология Profile Assisted Boot Accelerator (PABA), реализованная в виде драйвера DISKPERF.SYS, который был призван повысить производительность системы при работе с диском. Кроме того, Neptune стал первой версией Windows, где появился реализованный в Windows ХР Prefetcher — механизм кеширования необходимых для запуска системы данных в файлы c расширением .pf. В Neptune Prefetcher был включён по умолчанию. В общем, разработчики сделали всё возможное, чтобы система грузилась максимально быстро.
Из Windows ME в эту систему перекочевал сетевой сканер, автоматически искавший в локальной сети доступные общие ресурсы и добавлявший их в системную папку My Network Places, а также удалявший их оттуда, если они со временем становились недоступны. В окне сетевых настроек Neptune присутствует опция включения брандмауэра, однако сам встроенный фаервол, появившийся только в Windows XP, в системе отсутствует. Ещё в Neptune имеется утилита просмотра фотографий в виде слайд-шоу и медиапроигрыватель из Millennium Edition. Браузер Microsoft Internet Explorer имеет версию 5.0, однако исполняемый файл IEXPLORE.EXE использует библиотеки от более поздней версии 5.5. К слову, попытка установить в Neptune браузер Internet Explorer 6 приводит к необратимой поломке всех HTML-приложений, активного рабочего стола, утилит Activity Center, Windows Identities и Starting Places.
В базовой поставке Neptune появились драйверы множества новых устройств, включая сканеры и камеры, поддерживающие модель WIA. Забавно, но здесь разработчики допустили досадный баг: при попытке открыть в Neptune служебное окно «Сканеры и камеры» из «Панели управления» происходит зависание и краш Проводника. Дело в том, что данный апплет «Панели управления» использует автоматически запускаемую системную службу imgsvc, которая в Neptune при старте обращается к одному из процессов svchost.exe и сразу же вылетает с ошибкой. Побороть указанный глюк помогает отключение службы imgsvc (для этого в окне «Службы» нужно установить для неё режим запуска «Вручную» или «Отключено»), но тогда сканеры с поддержкой WIA работать в Windows не будут. Умельцы нашли и альтернативный способ пропатчить глючную службу: чтобы она заработала нормально, нужно выполнить REG-файл следующего содержания и перезапустить сервис:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\AppID\svchost.exe]
"AppId"="{A1E75357-881A-419E-83E2-BB16DB197C68}"
Исследователи, изучавшие наследие Microsoft, выявили ещё один примечательный факт, касающийся этой весьма любопытной версии Windows. Обнаруженная в недрах Neptune библиотека FUSEWIN.DLL содержит ссылку на несуществующий файл MSCOREE.DLL, который, в свою очередь, является частью .NET Framework 1.0 Beta 1, появившейся только в июле 2000 года. Другой обнаруженный в этой ОС элемент будущей .NET Framework — библиотека SYSXML.DLL, компонент, используемый в ранних приложениях .NET для взаимодействия с файлами XML. Всё это свидетельствует о том, что разработка .NET Framework началась в Microsoft намного раньше, чем эта технология, выпущенная в 2002 году, была официально представлена публике.
Несмотря на то что в публичный доступ утекла только одна сборка Neptune, считается, что всего таких сборок было 14. Последняя из них имеет номер 5.50.5179.1. В начале 2000 года все работы над этой ОС были свёрнуты, а команды Neptune и Odyssey объединили для реализации нового проекта, получившего наименование Microsoft codename Whistler. Финалом, как известно, стало появление Windows XP, вобравшей в себя все лучшие наработки из Windows 2000 и Neptune. Однако, если бы эволюция операционной системы нового поколения от Microsoft пошла по первоначальному пути, в 2001 году мы, наверное, увидели бы совершенно другую версию Windows.