Разработчики установщика Windows 95 забыли, что в MS-DOS есть графика?

в 6:26, , рубрики: windows 3.1, Windows 95, защищенный режим, инсталляторы, установка по
Разработчики установщика Windows 95 забыли, что в MS-DOS есть графика? - 1

Когда я написал статью о том, почему установщик Windows 95 использовал три операционные системы [перевод на Хабре], в которой сказал, что установщик на основе MS-DOS был бы текстовым, то мне возразили: «Но ведь MS-DOS могла отображать графику! Вы что там, все глупые?»

Да, MS-DOS могла работать с графикой, в том смысле, что она не очень мешала программисту работать с графикой. Но абсолютно всё ему приходилось делать самому. Не существовало графических примитивов, кроме вызова BIOS для отрисовки отдельного пикселя. Всё остальное было на разработчике, который и не собирался пользоваться вызовом BIOS для отрисовки пикселей, потому что он был медленным. Чтобы добиться хоть какой-то производительности, приходилось непосредственно работать с буфером кадров.

Итак, теперь нам нужно написать графическую библиотеку для отрисовки чего-то сложнее, чем отдельный пиксель. К счастью, для Windows 95 требовалась минимум VGA-видеокарта, поэтому ей не приходилось беспокоиться о CGA или EGA. Напомню, что VGA-адаптер требовал работы с планарными режимами, что было очень утомительно. К счастью, у нас есть способная помочь команда спецов по планарным режимам VGA, работающая в соседних кабинетах над видеодрайверами Windows.

Но программе-установщику нужны не только пиксели. Ей нужны диалоговые окна, поэтому нам нужно написать оконный менеджер поверх графической библиотеки, чтобы можно было отображать диалоговые окна при помощи стандартного диалогового GUI-интерфейса, который включает в себя клавиатурную поддержку переключения клавишей Tab между элементами и присвоением полям горячих клавиш.

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

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

Программе-установщику также нужна возможность отображения простых анимаций, так что нам нужен планировщик, запускающий события по аппаратному системному таймеру.

То есть мы будем писать весь этот код для нашего установщика, но ничто из него никак не задействуется в установке Windows 95 — это просто инфраструктура, необходимая для запуска программы-установщика! Тут много всего, и мы вряд ли сможем уместить это в 640 КБ памяти. Так что теперь нам нужно написать менеджер защищённого режима (также известного как расширитель MS-DOS), чтобы можно было воспользоваться увеличенным адресным пространством, которое обеспечит нам защищённый режим.

А теперь отойдём назад и посмотрим, что же мы делаем. Мы пишем операционную систему. (Или, если уж быть совершенно откровенным, то пишем оболочку MS-DOS.)

Операционную систему лишь с одним приложением: Windows 95 Setup.

Что, если я скажу вам, что у Microsoft уже есть операционная система, делающая всё то, чего мы пытаемся достичь, она полностью отлажена, имеет видеодрайверы, графическую библиотеку, менеджер диалоговых окон, планировщик, менеджер защищённого режима и способы ввода? И её поддерживает укомплектованный отдел техподдержки. И эта операционная система выдержала годы активного реального применения. И Microsoft обладает всеми правами на неё, поэтому нам не придётся беспокоиться от отчислениях и лицензировании. И это хорошо известная система, о программировании для которой написаны книги, поэтому будет проще нанимать новых людей в нашу команду, ведь их не придётся месяц учить писать код для нашей новой специализированной миниатюрной операционной системы Setup UI.

Достаточно взять Windows 3.1.

Примечание: если вы решите идти по пути разработки собственной операционной системы, то вам нужно будет обеспечить работу вашей миниатюрной операционной системы в сессии MS-DOS Windows 3.1 на случай, если кто-то захочет установить Windows 95 как апгрейд с Windows 3.1, и в сессии MS-DOS Windows 95 на случай, если кто-то захочет выполнить установку, чтобы починить Windows 95. И тогда у вас получится странная конфигурация установки: инсталляция Windows 95, запущенная внутри сессии MS-DOS.

Ещё одно примечание: при установке Windows и сегодня используется этот паттерн установки миниатюрной операционной системы для начальной загрузки программы-установщика. Но сегодня в качестве такой миниатюрной операционной системы служит Windows PE (Windows Preinstallation Environment).

Автор: PatientZero

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js