Привет, Хабр! Это Антон Комаров из МТС Диджитал. Сегодня снова немного ностальгии — поговорим о Desktop2.
Представьте, что на дворе середина 90-х. Вы щелкаете переключателем питания на своем ПК с процессором Intel 486DX2. Раздается жужжание шпинделя жесткого диска, дисковод весело подхрюкивает шаговым двигателем, а на дисплее появляется его величество MS-DOS. Просто черный экран и строка, куда можно вводить команды. Понятное дело, что на этом далеко не уедешь, поэтому у многих пользователей стоял какой-нибудь Norton Commander. А чтобы насладиться настоящим графическим интерфейсом, можно было приобрести одну из первых версий Windows — например, 3.11.
То время давно прошло, и вот только сейчас, изучая различные материалы в сети, я наткнулся на интересную графическую оболочку тех времен. Называлась она Desktop2 и была создана немецким программистом Феликсом Риттером (Felix Ritter) в 1998 году. Детали — традиционно под катом.
Кто был первым
Сейчас достаточно сложно разобраться в том, какая компания впервые взяла на вооружение графический интерфейс пользователя. Кто-то может сказать, что это Xerox, внедривший GUI в компьютере Xerox Alto. Другие скажут, что тренд был задан Apple Lisa. Третьи вспомнят про AmigaOS, созданную для ПК Amiga. Большинство разработчиков операционных систем того времени не просто заимствовало саму концепцию графического интерфейса, но и делало собственные реализации отдельных элементов, которые подсмотрели у конкурентов.
Первые версии Windows не были операционными системами в привычном понимании. Их можно назвать оболочками, значительно расширяющими возможности MS-DOS. Они добавляли графический интерфейс и многозадачность, брали на себя функции управления памятью и доступными интерфейсами ввода-вывода. Помимо этого, можно было удобно работать с файлами, а еще — запускать приложения, созданные как под DOS, так и уже под Windows.
Но Microsoft были вовсе не единственной компанией, которая создала графический интерфейс для MS-DOS. Другие разработчики, видя вполне конкретный успех Windows 3.XX, пробовали создавать альтернативные оболочки. Об одной из них сегодня пойдет речь.
Установка
Это сейчас мы пользуемся широкополосными соединениями, позволяющими скачивать гигабайты данных за пару минут. Ну или вместительными дисковыми накопителями, которые измеряются десятками терабайт. Раньше же софт часто распространялся на дискетах. Например, дистрибутив MS-DOS 6.22 занимал 3 стандартных дискеты 1.44”, а Windows 3.11 — целых 8 дискет. Инсталлятор Desktop2 помещался всего на одном гибком диске, занимая менее 800 Кб. Неплохо для полноценной графической оболочки с кучей программ, о которых расскажу дальше.
Прежде чем запускать установщик, нужно позаботиться о наличии на компьютере MS-DOS версии 3.3 и выше. Плюс стоит заранее подгрузить драйвер мыши. Все дело в том, что весь потенциал оболочки раскрывается именно при использовании мыши, хотя теоретически можно обойтись и одной клавиатурой.
Могу посоветовать драйвер из коллекции ресурса old-dos.ru, который отлично определяет стандартные мыши от Microsoft, а также эмулированные в том же PCem. Когда все приготовления завершены, переходим на дискету с инсталлятором и запускаем его с помощью INSTALL.BAT:
Здесь предлагается указать место на диске, куда будут скопированы файлы оболочки. Можно поставить галочку и прописать вызов команды DBD для старта из DOS, чтобы не приходилось вручную вызывать исполняемый файл по его полному пути. После нажатия кнопки Start начнется копирование. Каждая стадия установки визуализируется отдельными статус-барами:
Первый запуск
Сразу после завершения установки инсталлятор автоматически запустит Desktop2, и мы увидим главное окно оболочки. Особенно забавно выглядит серый сильно пьющий колобок с красным носом:
В Desktop2 есть два основных режима: Program Manager и File Manager. То, что мы видим на экране по умолчанию, — это Program Manager с рабочим столом, пока что пустым. Второй режим — File Manager. Он позволяет выполнять множество действий над файлами и директориями:
Чувствуется, что создатель оболочки по достоинству оценил преимущества двухпанельных файловых менеджеров, вроде Norton Commander, и не стал изобретать велосипед. Вместе с этим четко обозначено, что левая панель — это источник, а правая — приемник. Это позволяет избежать путаницы, вместо банальных Left и Right.
Верхняя панель с кнопками отвечает за отображение и выделение элементов, смену активного диска. Нижняя предоставляет контроль над файлами и директориями. Более того, при помощи нижней панели можно вызвать дополнительные меню — например, действий над диском:
Может показаться, что первая кнопка View DOS переключит нас в режим консоли, но это не так. Эта кнопка только демонстрирует, что в текущий момент отображается в консоли DOS, позволяя как бы взглянуть на нее, но нажатием любой клавиши вернуться в графическую оболочку. Это хороший вариант, когда возникла какая-либо ошибка и нужно посмотреть на вывод, но при этом не закрывать оболочку.
Утилиты и программы
Любопытно и то, что в Desktop2 есть возможность увидеть, сколько места занято на том или ином дисковом накопителе. А еще — произвести необходимые действия, например, отформатировать или проверить на ошибки:
Еще один необычный пункт — Freshen. Дело в том, что все дискеты со временем теряют магнитный заряд и возникает риск потери данных. Так что вы могли скопировать содержимое на жесткий диск, а затем дать команду Freshen, которая несколько раз перезапишет каждый сектор и тем самым ее «освежит», восстановив намагниченность. Утилита считывает каждый перезаписанный сектор и показывает детальную статистику по каждому из них. Потом можно будет отформатировать дискету и вновь записать данные.
Помимо этого, в комплекте с Desktop2 поставлялся удобный текстовый редактор:
Выглядит весьма недурно. Он еще и предоставляет расширенные функции редактирования, такие как X-Edit и Prg-Mode. Первая позволяет копировать и вставлять текст, используя левую и правую клавишу мыши, а вторая автоматически делает отступы строк. Там же есть возможность поиска текста и перехода к нужному участку файла по номеру строки.
Закрыв редактор, я на несколько минут отошел от компьютера, а когда вернулся, то увидел следующую забавную картину:
Это сейчас хранители экрана не столь популярны. Раньше, во время господства ЭЛТ-мониторов, такими программами снабжалась фактически любая операционная система с GUI. Чтобы кинескоп не выгорал. В Desktop2 экран разбивался на множество фрагментов, которые постоянно перемещались и не давали выгорать люминофору экрана. Помимо основного хранителя Puzzle, есть еще один, представляющий собой разноцветные полосы, рандомно скачущие по экрану:
Кажется, я где-то такое уже видел. Этот скринсейвер очень похож на Bezier из Windows 95, правда гораздо более шустрый и не настолько впечатляющий:
Потом я решил залезть в пункт настроек:
Тут нужно обратить внимание на цвет кнопки OK. Если бы автор имел отношение к китайской культуре, это было бы еще логично. Но тут прям вот иллюстрация для любого начинающего UI-дизайнера в стиле «как делать не надо».
Сами настройки достаточно скудные. Можно изменить скорость перемещения указателя мыши, цвет рабочего стола, выбрать тот самый хранитель экрана или задать текущую дату/время. Помимо этого, есть возможность установить, какое приложение (File Manager или Program Manager) станет открываться по дефолту.
Еще раз взглянув на кнопку Exit, я ощутил дежавю. Где-то я это точно видел. Такое впечатление, что автор посмотрел на карточные рубашки пасьянса в Windows 3.11 и решил сотворить нечто подобное:
Действительно, зачем сидеть в скучном сером мире, когда за дверью яркий и красивый мир. Но ожидания пользователя не оправдаются: нажав на эту чудесную кнопку, мы попадаем обратно в консоль MS-DOS. Вот в инсталляторе нас на картинке честно предупреждали, что при выходе мы попадем в DOS. Тут же — сплошной когнитивный диссонанс. Любопытно, что при выходе система нас переспросит, стоит ли сохранить текущее состояние рабочего стола.
Подводим итоги
Хорошенько изучив Desktop2, я понял, что у этой оболочки есть много плюсов, но немало и минусов. Во-первых, это именно оболочка, а не полноценная операционная система. Она не привносит в работу ничего сверх того, что умеет MS-DOS. Да, она позволяет удобно управлять файлами, находить нужную информацию и легко править какой-нибудь конфиг. В ней есть куча полезных утилит, помогающих быстро отформатировать дискету, послушать музыкальный компакт-диск или запустить нужную программу, просто щелкнув мышкой. Это очень круто, но с другой стороны, Windows 3.11 такое тоже умела.
Во-вторых, это изначально коммерческий продукт, который планировалось продавать. Увы, но этой планки Desktop2 так и не достиг. С выходом Windows 95 стало ясно, что время DOS стремительно истекает. А на фоне его, отточенного по меркам тех лет графического интерфейса, такие продукты, как Desktop2, сразу выглядят архаичными. Это привело к тому, что автор открыл исходный код и сделал его доступным для всех желающих.
В-третьих, дизайн явно не для ежедневного использования. Мне понравился и текстовый редактор, и даже файловый менеджер, но что уж греха таить — Norton Commander для старых компьютеров как-то привычнее. Это, кстати, привело к тому, что я до сих пор пользуюсь Far Manager, который для меня по-прежнему остается эталоном.
Вместе с этим надо признать, что автору Desktop2 удалось сделать свой продукт компактным и функциональным. Это было ценно в те годы. Ну а сейчас это любопытный цифровой артефакт в нашем постоянно меняющемся мире.
А вы когда-нибудь работали с такой оболочкой для DOS? Жду вас в комментариях.
Комментарии (83)
saboteur_kiev
16.09.2024 14:35+9Первые версии Windows не были операционными системами в привычном понимании. Их можно назвать оболочками, значительно расширяющими возможности MS-DOS.
Нет, это все-таки была именно операционной системой.
Да, основанной поверх ДОС, обратно совместимая с ним архитектурно. Но это была именно платформа, под которую можно было писать софт, используя функции ОС, обращаться к устройствам через вызовы функций ОС и так далее.
Время было такое, что переписать весь софт под новую системы как бы нельзя за короткое время, а без софта, ОС никому не нужна. Поэтому первые версии Win и вся линейка 9x были почти полностью обратно совместимы с DOS, но предлагали уже и свой win32 подход.Если ты писал что-то уже под Windows, то это уже не было софтом, который написан под дос с расширениями, нативные приложения написанные под win32 в будущем уже спокойно могли запускаться под WinNT без DOS вообще.
Вот например Андроид - это же не оболочка для Линукс, это отдельная ОС которая базируется на ядре Линукс, но не является Линуксом.
axe_chita
16.09.2024 14:35+7Windows до 9х были именно графическими оболочками DOS с описанным API, которым для работы нужна была настроенная среда DOS, с загруженными драйверами DOS Himem и EMM386. Так же Window до 9х могли работать под управление OS/2 где они работали устойчивее чем под DOS, а её падение не приводило к перезагрузке всей машины.
CrashLogger
16.09.2024 14:35+15Ничего себе оболочка, которая дает доступ ко всему объему памяти, защищенный режим, многозадачность, имеет свои драйвера, свое API для приложений, не имеющее ничего общего с DOS. По сути, DOS там используется только как загрузчик и как слой совместимости для запуска старых приложений.
axe_chita
16.09.2024 14:35+2Только этот доступ к памяти обеспечивают драйвер DOS. Как в прочем доступ к файлам на диске обеспечивает сама DOS.
UranusExplorer
16.09.2024 14:35+2Как в прочем доступ к файлам на диске обеспечивает сама DOS.
Только в специальном костыльном режиме совместимости, который использовался только в совсем безнадёжных случаях. В остальных случаях пока умолчанию для доступа к файловой системе использовались нормальные 32-битные драйвера без доса.
Upd. Невнимательно прочитал, я говорил про Win9x, а не про "до".
Впрочем, в 3.11 уже точно был 32 Bit Disk Access и 32-bit file access для доступа к диску и ФС в обход DOS.
Nikeware
16.09.2024 14:35+2Эндрю Шульман: "Недокументированная Windows 95". Книга, вышедшая примерно в то же время, что и сама Windows 95. Зачитывал её до дыр. До сих пор стоит на полке. Там очень технически подробно всё это описано. И да, именно с 32-битового доступа к диску всё начиналось. Чёткой грани между оболочкой и полноценной операционкой нет. Windows 95 шла к этому постепенно, начиная с 3.x. Многие подсистемы постепенно переносились в защищённый режим, заменяя куски MSDOS своими собственными драйверами. Собственно уже в тот момент, когда "оболочка" переводила DOS в защищённый режим, всё становилось с ног на голову и DOS находился c этого момента в slave-режиме. Все аппаратные прерывания шли сначала через драйвер защищённого режима и только сам драйвер решал, обрабатывать прерывание самому или передать его в старый код MSDOS.
unreal_undead2
16.09.2024 14:35Чёткой грани между оболочкой и полноценной операционкой нет.
На мой взгляд необходимый критерий для чего то, чтобы называться операционкой - возможность запуска на голом железе не используя другого программного обеспечения, кроме зашитого в ПЗУ (скажем, BIOS/UEFI). Так что Windows 95 операционкой считать можно - необходимый для работы код MS DOS включён в её состав - а вот Windows 3.x нет, её на компьютер без DOS не поставишь.
Nikeware
16.09.2024 14:35+1Ну если считать, что Windows 95 стала завершающей стадией "поглощения" MSDOS путём переписывания/переноса большей части кода в защищённый режем, то да. Просто в Windows 95 пользователя избавили от необходимости каждый раз руками набирать win.com :-) Он кстати сохранился там. После прочтения вышеупомянутой книги я много экпериментировал с Win 95. Благо в книге было достаточно практических примеров. Там можно было легко получить систему без графической оболочки. Это был DOS в защищённом режиме с полным комплектом возможностей 95-ки. Например была возможность работы с длинными именами файлов. Всё это я "запихивал" на дискету 1.44 Мб, чем очень удивлял преподавателя на практических занятиях, который уверял, что в DOS невозможно получить поддержку длинных имён файлов, потому что это прерогатива именно Win 95 :-)
tongohiti
16.09.2024 14:35Там именно что была MS-DOS 7.0 в комплекте. Насколько помню, последняя версия "независимой" MS-DOS (которую можно поставить и использовать отдельно от Windows) была 6.22, и для установки, скажем, Windows 3.11 на голое железо нужно было сначала отдельно поставить MS-DOS 6.22, настроить запуск himem.sys и emm.sys, и только потом можно было запускать установку Windows 3.11, которая "под капотом" всё же использовала вызовы MS-DOS в определённых ситуациях.
А начиная с Windows 95 уже с ней в комплекте поставлялась MS-DOS 7.0 (которую отдельно от Windows 95 поставить было нельзя, во всяком случае штатными средствами), и можно было прям на голом железе запускать установщик Windows, который ставил одновременно и DOS и Windows. Режим "голой" MS-DOS при этом никуда не девался, достаточно было в AUTOEXEC.BAT закомментировать последнюю строчку, где установщик прописывал win.com, и всё - после загрузки получаем голый дос, в котором можно уже руками выполнить win.com и "дозагрузиться" до Win95.UranusExplorer
16.09.2024 14:35+2Режим "голой" MS-DOS при этом никуда не девался, достаточно было в AUTOEXEC.BAT закомментировать последнюю строчку, где установщик прописывал win.com
В Windows 95 не было строки win.com в autoexec.bat
Можете установить на виртуалку и проверить.
axe_chita
16.09.2024 14:35Впрочем, в 3.11 уже точно был 32 Bit Disk Access и 32-bit file access для доступа к диску и ФС в обход DOS.
Который появился только в последней версии Win3.x - Windows for Workgroup 3.11. ЕМНИП для его работы требовался контроллер дисков на VLBus или PCI.
saboteur_kiev
16.09.2024 14:35+1Нет. dos это всего три файла - msdos.sys и io.sys и интерпретатор.
Почему вы считаете, что msdod.sys и io.sys нельзя считать частью MS Windows, если их автором и владельцем является MS, и ей проще было именно так начать сложную миграцию из консоли в графическую систему, оставляя пользователям максимально возможный выбор?
Вы же знаете, что в то время множество софта, даже если загрузить himem.sys, не умело к нему обращаться и юзало первые 640 кб, в результате из-под графической оболочки особо "тяжелому" софту нельзя было запуститься?
Множество софта напрямую лезло к устройствам (без драйверов)
И вообще из драйверов под дос, в основном известны драйвера мышки и сетевушки. Звук/видео обычно тянули разработчики продуктов, а не ОС.
И только под Windows прямой доступ ко всем устройствам(включая мышь, клавиатуру) уже полностью заменялся на OS APIunreal_undead2
16.09.2024 14:35+1Почему вы считаете, что msdod.sys и io.sys нельзя считать частью MS Windows
Вот когда начали продавать вместе с Windows (95), тогда и можно считать частью, до этого они входили в отдельный продукт за отдельные деньги.
saboteur_kiev
16.09.2024 14:35Который назывался "операционная система Windows"
То, что продвинутые юзеры могли расколупать внутренности и найти там остатки дос, это проблема продвинутых юзеров
Я мог купить Windows 95 и не был обязан покупать DOS, оно все шло в комплекте.
unreal_undead2
16.09.2024 14:35+1Так я и не спорю, что Windows 95 - операционная система. Речь о Windows 3.x
axe_chita
16.09.2024 14:35Нет. dos это всего три файла - msdos.sys и io.sys и интерпретатор.
Не только три файла, в отсутствии himem.sys widows Win3.x откажется запускатя ссылаясь на отсутствие менеджера XMS памяти.
Почему вы считаете, что msdod.sys и io.sys нельзя считать частью MS Windows
DOS это отдельный продукт продававшийся и продвигавшийся на рынке Microsoft независимо.
оставляя пользователям максимально возможный выбор?
Из системных требований Windows 3.x "Требуется MS DOS версии 3.3 или старше."
Вы же знаете, что в то время множество софта, даже если загрузить himem.sys, не умело к нему обращаться и юзало первые 640 кб,
Так это проблема тяп-ляп написанных программ, а не DOS который предоставил все API для доступа к памяти. Но даже для этих косоруких, наличие himem.sys и менеджера UMB позволяло получить выгоду вставив в config.sys DOS=HIGH,UMB
в результате из-под графической оболочки особо "тяжелому" софту нельзя было запуститься?
А нахрена запускать "тяжелый" софт из под графической оболочки которая не дает ему ни каких преимуществ? Изобразить картину маслом "сам себе злобный Буратино стреляет себе в ногу?" "Тяжелый" софт вполне сам умел работать со всей памятью? что XMS/EMS в случае чего умел, какая неожиданность, переходить в режим VM86 избавляться от самого страшного проклятия x86 первого поколения, размера сегмента в 64кб. Более того этот "тяжелый" сам умел использовать файл подкачки при недостаке памяти.
Множество софта напрямую лезло к устройствам (без драйверов)
Это было неправильно, но в случае однозадачной системы приемлемо.
И вообще из драйверов под дос, в основном известны драйвера мышки и сетевушки.
А ещё драйверы scsi устройств (диски/ленточные накопители/сканеры). Так же были драйверы виртуальных устройств таких как к примеру Stacker
Звук/видео обычно тянули разработчики продуктов, а не ОС.
Пардон муа, а кто должен писать конкретный драйвер под свою железяку как не сам её производитель? Иван Фёдорович Крузенштерн?
И только под Windows прямой доступ ко всем устройствам(включая мышь, клавиатуру) уже полностью заменялся на OS API
OS/2 тоже запрещался прямой доступ к оборудованию, и вводила более уровень абстракций.
VESA кстати вполне успешно стандартизировало API доступа к видеокартам под DOS, разработало API для унифицированного доступа к звуковым устройствам, к API для аппаратного ускорения 2d графики.
unreal_undead2
16.09.2024 14:35разработало API для унифицированного доступа к звуковым устройствам
А можно поподробнее про API для звуковух от VESA? В досовских игрушках тип карты надо было выбирать явно и только в позднее время появились умные инсталляторы, автоматически определяющие порты/IRQ на карточках, совместимых с SB.
PS Нашёл ключевое слово VBE/AI, но не знаю, где оно реально использовалось. Насколько понял, оно даже гуся не поддерживало.
axe_chita
16.09.2024 14:35А можно поподробнее про API для звуковух от VESA?
Можно
В досовских игрушках тип карты надо было выбирать явно и только в позднее время появились умные инсталляторы, автоматически определяющие порты/IRQ на карточках, совместимых с SB.
Тут был такой же принцип как Vesa BIOS extension для видеокарт, программа опрашивала BIOS о возможностях устройства, и выбирала максимально подходящий режим.
PS Нашёл ключевое слово VBE/AI, но не знаю, где оно реально использовалось.
SDK VBE/AI лежит тут
Видел небольшое количество игр с его поддержкой
Насколько понял, оно даже гуся не поддерживало.
"This document describes the VESA VBE/AI Software Developers
Kit as found on the VBE/AI SDK release diskette. Included
are sample WAVE drivers for the Pro Audio Spectrum, Disney
Sound Source, and Sound Blaster cards. Also included are
sample MIDI drivers for the OPL2, OPL3 FM chip, and Roland
MPU-401 MIDI transmitter/receiver."unreal_undead2
16.09.2024 14:35+2Живьём его не видел, всё таки поддержка железа слабовата, что и видно по цитате. Вот обычный VBE использовался вовсю, ручного выбора видеокарты в DOS играх времён SVGA не помню - даже если BIOS от производителя не хватало, UNIVBE обеспечивал поддержку для всех распространённых карточек.
axe_chita
16.09.2024 14:35VESA VBE/AI появился слишком поздно (1994), и в той части рынка мультимедиа где бушевали настоящие "железные" войны, где стандарты звуковых карт появлялись и исчезали. Причем технологическое совершенство (как у Mediavision) или инновации (как у Gravis) не давали существенного преимущества на рынке. Плюс ко всему этому цикл разработки игр, обычно было очень тяжело добавить поддержку нового стандарта звука в уже почти готовую игру. А выход Win95 забил окончательный гвоздь в крышку гроба VESA VBE/AI, DOS игры стали терять актуальность.
unreal_undead2
16.09.2024 14:35+1обычно было очень тяжело добавить поддержку нового стандарта звука в уже почти готовую игру
Всё таки в основном пользовались сторонними библиотеками типа DIGPAK или Miles Sound System (хотя, скажем, у Sierra были свои драйвера - но в любом случае поддержка аудиокарты сильно отвязана от основного кода игры). И пару лет после появления Win95 топовые игры ещё выходили или только под дос (скажем, Daggerfall), или с вариантами дос/Win32 (первый Fallout). Но, видимо, сложившееся положение вещей, когда зоопарк карточек разруливался идущей с игрой библиотекой, всех более менее устраивало - для крупных производителей карточек была явная поддержка, мелкие обеспечивали совместимость с SB. Была ещё спецификация WSS (причём поддерживалась и в досовских игрушках), но тоже осталась скорее нишевой.
UranusExplorer
16.09.2024 14:35Пардон муа, а кто должен писать конкретный драйвер под свою железяку как не сам её производитель? Иван Фёдорович Крузенштерн?
Комментатор выше под словом "продукт" имел в виду не железку, а приложение/игру. Драйвера звуковух обычно у каждой из них были свои (в лучшем случае они могли подхватить set blaster=..., а чаще всего выбираешь из списка и настраиваешь ручками для каждой из них отдельно), какого-то общего распространенного API и интерфейса драйверов в то время не было. VBE/AI это что-то прям редкое было, почти не встречавшиеся в дикой природе.
Merrynose
16.09.2024 14:35А можете дать ссылку на какое-то общеупотребимое определение ОС и оболочки ОС, на которое вы опираетесь?
OlegZH
16.09.2024 14:35+1Тут надо понимать, что в оперативную память загружалась именно MS-DOS, у которой были свои ограничения на физическую память. Что-то вроде 64K (из первого мегабайта оперативной памяти, которой могло быть больше, чем 64K). А затем запускался файл WIN.COM, который надстраивал над этим всем делом защищённый режим, с его виртуализацией памяти.
S_gray
16.09.2024 14:35+1Вообще-то, в оперативную память загружается любой код, если его нужно выполнить (ну, если забыть о современных видеокартах со своими процессорами, или какой-нибудь экзотике). И не 64 килобайта, а 640 (хотя были и машины с 512 кБ), а для того, чтобы пользоваться памятью до 1 мБ (там была какая-то специфика с HMA, позволявшая адресоваться к чуть большему объему, но для простоты можно принять 1) ДОСу нужен был специальный драйвер.
saboteur_kiev
16.09.2024 14:35в случае с com файлами, в память грузилась одна страница, то есть 64 кбайта. Таков формат.
OlegZH
16.09.2024 14:35Надо будет освежить базу. Так сказать, основы полагающие. Эххх Надо искать книжки. Где, тут, у меня Джордейн, Касаткин, Дейтел и Гук (который Михаил: жив ли ещё?).
axe_chita
16.09.2024 14:35Александр Фролов, Григорий Фролов "Библиотека системного программиста". Можно сказать "база" ;)
Список книг
1-A. Операционная система MS-DOS. Том 1, книги 1 - 2
1-B. Операционная система MS-DOS. Том 1, книга 3
2. Аппаратное обеспечение IBM PC.
3. Программирование видеоадаптеров CGA, EGA и VGA.
5. Тонкая настройка и оптимизация MS-DOS.
6. Защищенный режим процессоров Intel 80286/80386/80486.
7. Локальные сети персональных компьютеров. Монтаж сети, установка программного обеспечения.
8. Локальные сети персональных компьютеров. Использование протоколов IPX, SPX, NETBIOS.
9. Локальные сети персональных компьютеров. Работа с сервером Novell NetWare.
10. Компьютер IBM PC/AT, MS-DOS и Windows. Вопросы и ответы.
11. Операционная система MS Windows 3.1 для программиста.
12. Операционная система MS Windows 3.1 для программиста.
13. Операционная система MS Windows 3.1 для программиста.
14. Графический интерфейс GDI в Microsoft Windows.
16. Модемы и факс-модемы. Программирование для MS-DOS и Windows.
17. Операционная система MS Windows 3.1 для программиста. Дополнительные главы.
20. Операционная система OS/2 Warp.
21. Программирование видеоадаптеров.
22. Операционная система Windows 95 для программиста.
24. MS Visual C++ и MFC. Программирование для Windows 95/NT.
25. Программирование для IBM OS/2.
26. Программирование для Windows NT. Часть 1
27. Программирование для Windows NT. Часть 2
28. MS Visual C++ и MFC. Программирование для Windows 95/NT Часть 2.
30. MS Visual J++. Создание приложений и аплетов. Часть 1.
31. Разработка приложений для Internet.
S_gray
16.09.2024 14:35Спорить можно долго, только вот это была графическая оболочка, никто ее тогда не считал операционной системой. По сути, это была программа, запускаемая из ДОСа и при выходе из неё вы опять оказывались в ДОС. Без ДОС ее нельзя было запустить (под полуосью там, скорее всего, был режим эмуляции ДОС, в котором она и запускалась, как любая другая ДОС программа). Не, если, конечно, очень хочется, кто-то может её считать осью. Но Майкрософт это не подтвердит - а им виднее, полагаю. А то так можно любой браузер в операционные системы записать...
Merrynose
16.09.2024 14:35+1Я думаю, что если вы продемонстрируете работу Word for Windows запущенного из чистого DOS, то все с вами согласятся что Win3 -- это просто "графическая оболочка".
S_gray
16.09.2024 14:35Вот если вы продемонстрируете запуск тех версий Винды на чистом компе без каких-либо других установленных ОС, тогда я соглашусь, что Win3 - это операционная система. Я вообще не понимаю, чего здесь горит сыр-бор. Ну не считались "трёшки" операционками тогда. Майкрософту надо было тогда срочно вывести на рынок хоть что-то конкурентное по отношению к Apple. При этом полуось, которую они с IBM разрабатывали, требовала более мощных компов (минимум 6мег памяти и SVGA 512K видео) - это выбивало значительную часть рынка ПК из-под этой разработки. Поэтому они сделали очень, с моей точки зрения, грамотный шаг - бросили бесперспективный проект, выйдя из него с частью наработок, и запустили половинчатое решение в виде надстроек над ДОС Windows 1, 2, 3, которое позволяло, с одной стороны, продолжать работу на перспективу над полноценной Осью, а с другой - удержать рынок в условиях конкуренции с довольно дорогими решениями Эппл и IBM. Word for Windows тех версий (вообще, Office тогдашний) - это просто один из мощных инструментов, наработанных в рамках этой деятельности.
Merrynose
16.09.2024 14:35Сыр-бор в том, что разницу между классами программ более логично определять через выполняемые ими функциями, а не через нюасны архитектурной реализации.
axe_chita
16.09.2024 14:35Поступим проще, продемонстрируйте запуск Win 3.1х без загруженного драйвера XMS, под DOS версий 3.3-6.22 и на чистом железе.
unreal_undead2
16.09.2024 14:35+1По крайней мере без XMS Win 3.0 должна взлететь (с win /r).
OlegZH
16.09.2024 14:35У меня было как-то так:
DEVICE=C:\DOS\HIMEM.SYS DEVICE=C:\DOS\EMM386.EXE device=c:\t9000i\tvgacrtc.SYS dos=high,umb numlock=off BUFFERS=15,0 FILES=50 LASTDRIVE=E FCBS=4,0 STACKS=9,256
axe_chita
16.09.2024 14:35Без загруженного драйвера XMS (Himem.sys или его альтернативной реализации)
UranusExplorer
16.09.2024 14:35+3EMM386
Вообще не нужно было. Более того, насколько я помню если был EMM386, то для винды это было только во вред (доступная память жёстко ограничивалась 64 мегабайтами , а то и меньше)
Upd. Невнимательно прочитал, я говорил про Win9x, а не про "до". Впрочем, даже в Win 3.1x EMM386 использовался для совместимости с досовским софтом, а в 386 Enhanced режиме был не нужен и наоборот приостанавливался.
Qetzlcoatl
16.09.2024 14:35Очевидно, вы не понимаете разницу между Upper Memory, Expanded Memory и Extended Memory в DOS. То, что Windows 3.X не использовали "механизм доступа" Expanded Memory не означает, что они не использовали "механизм доступа" Extended Memory для доступа к памяти за пределами 640КБ. И если первый обеспечивался "DOS-драйвером" EMM386.EXE, то второй "DOS-драйвером" HIMEM.SYS.
И если в DOS не был загружен HIMEM.SYS, то Windows вообще не могла загрузиться, даже в Standard mode, так как даже в этом режиме ей требовалось минимум 256КБ Extended memory.
Зачем вы спорите с теми, кто реально работал с Win 3.x, и на самом деле ЗНАЕТ, как и что там было устроено, хотя сами только ЧИТАЛИ об этом, да и то, похоже у тех, кто сам знает только понаслышке?UranusExplorer
16.09.2024 14:35Я отвечал именно про EMM386, про HIMEM в моем комментарии речи не было. Вы бы лучше внимательно смотрели на то что именно было процитировано, а не сразу начинали кричать начинали и обвинять оппонента в незнании.
P.S. я сам начинал именно с Windows 3.x. Приложенная мною ссылка ведет на официальную KB от Microsoft (они, видимо, по-вашему тоже "знакомы только по-наслышке" с тем, что разработали). Именно потому что я помню, что EMM386 был не обязателен, и перед написанием комментария дополнительно проверил это из первоисточника, чтобы не ошибиться.
saboteur_kiev
16.09.2024 14:35Windows до 9х были именно графическими оболочками DOS с описанным API, которым для работы нужна была настроенная среда DOS, с загруженными драйверами DOS Himem и EMM386. Так же Window до 9х могли работать под управление OS/2 где они работали устойчивее чем под DOS, а её падение не приводило к перезагрузке всей машины.
Так а ОС это и есть оболочка для компьютера, с API.
что же касается himem и emm, то для Windows emm был не нужен, он мог использоваться для софта, который грузился до того как грузился win.com или win.exe.
Я и про himem не уверен, может разве что в win 3.x использовался.
Чтоже касается драйверов, то они как раз были уже внутри windows, а досовские драйвера были не нужны.
То, что os/2 поддерживало досовские бинарники, так не нужно путать многозадачное ядро, собственно с которого потом списался Windows NT, где все было так как вы описали.
MS изначально вроде и были контрактерами, которые писали OS/2 для IBM, но тут Билл понял что они копают себе могилу, поэтому спрыгнули с контракта и начали писать WinNT с этими наработками. Без гугла не подскажу полную исотрию OS/2, но то что на этих идеях выросла WinNT - это факт.Если вас волнует только факт установки, что дескать нельзя виндовс ставить без дос, то нужно вам напомнить, что дос и виндовс - обе системы которыми владеет MS.
Сделать отдельный инсталлятор для виндовс и переименовать msdos.sys в mswin.sys было несложно. Просто никому не нужно, поэтому оставили как есть, четко понимая что это временный период миграции. ОС называется таковой не по принципу установки.UranusExplorer
16.09.2024 14:35и начали писать WinNT с этими наработками. Без гугла не подскажу полную исотрию OS/2, но то что на этих идеях выросла WinNT - это факт.
Не совсем так. Для разработки NT переманили команду из DEC. Поэтому ядро NT мало похоже на ядро OS/2, но похоже (а местами даже очень похоже!) на ядро VMS. У них там потом ещё судебный процесс был на эту тему...
axe_chita
16.09.2024 14:35Так а ОС это и есть оболочка для компьютера, с API.
Между ОС и железом не должно существовать ещё одного слоя другой ОС.
Я и про himem не уверен, может разве что в win 3.x использовался.
Вы точно всё правильно прочитали? Речь изначальна шла ИМЕННО о Windows версий ниже 95.
То, что os/2 поддерживало досовские бинарники, так не нужно путать многозадачное ядро, собственно с которого потом списался Windows NT, где все было так как вы описали.
Нет? Windows 3.1 под OS/2 работала минуя эмуляцию DOS. Метод был сильно похож на принцип работы Wine
MS изначально вроде и были контрактерами, которые писали OS/2 для IBM, но тут Билл понял что они копают себе могилу, поэтому спрыгнули с контракта и начали писать WinNT с этими наработками. Без гугла не подскажу полную исотрию OS/2, но то что на этих идеях выросла WinNT - это факт.
WinNT в девичестве именовалась OS/2 New Technology. Более того наследие OS/2 в виде субсистемы OS/2 тянулось до времени Windows XP
Если вас волнует только факт установки, что дескать нельзя виндовс ставить без дос, то нужно вам напомнить, что дос и виндовс - обе системы которыми владеет MS.
А ещё MS выпускала OS/2 и Xenix. Что это доказывает?
Сделать отдельный инсталлятор для виндовс и переименовать msdos.sys в mswin.sys было несложно.
Не могла, потому что сразу бы появился IBM Windows TM? юристы IBM аплодировали вы стоя такому самострелу мелкомягких.
Просто никому не нужно, поэтому оставили как есть, четко понимая что это временный период миграции. ОС называется таковой не по принципу установки.
Нет, не по этому, а потому что только с выходом Windows 3.1 и Visual Basic начался бум выпуска программ под Win16 и Microsoft увидела перспективу. Ведь только с появлением Visual Basic появился инструмент создания программ с GUI с низким порогом вхождения для программистов низкого уровня.
А насчем миграции... В ФРГ на железной дороге до сих пор используется Win3.1. По крайней мере там искали человека с опытом работы на Windows3.1
unreal_undead2
16.09.2024 14:35Но это была именно платформа, под которую можно было писать софт, используя функции ОС, обращаться к устройствам через вызовы функций ОС и так далее.
Можно писать софт на Qt, используя исключительно функции Qt для доступа к файловой системе и прочему железу. Делает ли это Qt операционной системой?
unC0Rr
16.09.2024 14:35Boot2Qt вполне можно считать операционной системой на ядре Линукс.
unreal_undead2
16.09.2024 14:35+1Qt + ядро - да, вполне может быть ОС. Но само по себе наличие API для доступа к железу не делает сущность операционной системой - это необходимое, но недостаточное условие.
Bagatur
16.09.2024 14:35+1Занятный обзор, спасибо.
К нам на кафедру в середине 90-х приволокли некое поделие под названием то ли Dos Commander, то ли что-то похожее, разработка была, насколько помню, СНГ-овская, концепция была отдалённо похожа на описываенную, но интерфейс был на псевдографике. Не выстрелило.
Norton (и Volkov) Commander-ы, конечно, использовались весьма широко, но после появления Dos Navigator наш персонал быстро переехал на него.
И да, Windows for Workgroup (3.11) для компов, не завязанных в сеть (а таких у нас было большинство) всё же у нас не использовалась, предпочитали Windows 3.1
А также, помнится, попала к нам коробка OS/2 Warp (один из преподавателей кафедры на каком-то семинаре отхватил), но сильно поэкспериментировать с ней не удалось- подходящие по параметрам компы (на 386 процах) были постоянно заняты, а свободные Mazovia на 8086 "полуось" не тащили при всём желании.
unreal_undead2
16.09.2024 14:35+1У меня и дома стояла WfW 3.11 из за (возможно мнимого) улучшения работы с диском за счёт родного 32битного драйвера - примерно как под той же OS/2 Warp считалось кошерным поставить HPFS386.
UncleJonathan
16.09.2024 14:35У нас почему-то не прижился Dos Navigator. Смутно припоминаю, что он был каким-то глючным и, кажется, потреблял больше памяти, чем nc/vc, а тогда это было очень критично, счёт мог идти на килобайты, иначе какое-нибудь большое приложение или игра могли не запуститься, или работать нестабильно.
Да и выглядел он как-то совершенно по попугайски. Какая-то претензия на красоту, но сделанная человеком с нестандартными представлениями об эстетике.
В общем, мне тогда нравились nc или vc. Сложно было отдать предпочтение одному, поэтому время от времени переключался туда или обратно. То же самое было вокруг.
Dos Navigator'ом все повосхищались, поцокали языком, но уже через 1-2 недели его нельзя было увидеть ни на одном экране.
OlegZH
16.09.2024 14:35+1Да и выглядел он как-то совершенно по попугайски. Какая-то претензия на красоту, но сделанная человеком с нестандартными представлениями об эстетике.
На самом деле, выглядел он так, как это было прописано в библиотеке Turbo Vision, на которой он был написан. Интерфейс такой же, как и у Turbo Pascal 6.0 (Turbo C++ 3.1).
Да, он требовал больше памяти, но был в ходу у одного знакомого программиста, поскольку имел некоторые важные встроенные функции. Dos Navigator ближе к Total Commander.
UranusExplorer
16.09.2024 14:35+1Более того, там была даже псевдо-многозадачность (для функционала самого навигатора). Например, можно было поставить копирование файлов и в это время гулять по другим директориям и редактировать там файлы.
axe_chita
16.09.2024 14:35У нас VC и DN спокойно сосуществовали, волков на слабых машинках, дос навигатор на мощных. Иногда они жили бок о бок.
OlegZH
16.09.2024 14:35+1VC был просто крайне удобен своим чудовищно малым размером. Поэтому его всегда записывали на спасительную загрузочную дискету. NC был немного "тяжеловат", зато под рукой была оболочка, которой хватало на очень многое.
vvbob
16.09.2024 14:35+1В те времена (до широкого распространения Вин95) не особо была понятна необходимость подобных оболочек. С файлами было куда как удобнее работать с помощью Нортона или его клонов, а программы что из чистого доса, что из оболочки работали примерно одинаково.
95-я Винда, конечно все поменяла, когда начали массово появляться годные приложения под нее.
blackstrip
16.09.2024 14:35+8А вы когда-нибудь работали с такой оболочкой для DOS? Жду вас в комментариях.
с такой не работал, но свою писал, с файловым менеджером, просмотрщиком файлов в тексте или hex, побайтовым редактором файлов, менюхой быстрого запуска программ с поиском по ним. 640х480, 16 цветов visual basic 1.0 for dos:
tongohiti
16.09.2024 14:35Очень интересно, а откуда во времена DOS и первого visual basic'а взялись мониторы 16:9 и для чего тогда была нужна их поддержка?
S_gray
16.09.2024 14:35+2А где там 16:9? 640x480x16 цветов - это 4:3, честный VGA, квадратный пиксель, стандарт...
UranusExplorer
16.09.2024 14:35А где там 16:9
Справа сверху на скриншоте. "Соотношение сторон" и выбор между 4:3 и 16:9
blackstrip
16.09.2024 14:35+2в окне о программе (слева вверху) дата выпуска: 2020 год. Недавно писал эту оболочку, в досбоксе на андроид-телефоне. VBDOS 1.0 это обычный кубейсик, только с расширенными возможностями по командам и возможностью делать текстовые окошки с кнопками, галками, радиокнопками и т.д., с программируемой реакцией на события компонентов окна как в обычном VB (в оболочке текстовые окошки не использовались). Координаты пересчитываются так, что растр 640х480, растянутый видеокартой на дисплей 16:9, имеет нормальные пропорции (но с потерей качества по горизонтали, конечно, т.к. пикселей то все равно 640). Если этот же 16:9 в настройках включить на мониторе 4:3, то будет все сжатое:
Count_Raven
16.09.2024 14:35+1Увы, но Visual Basic 1.0 for DOS это псевдографика в текстовом режиме. У меня есть лицензионные дискеты. Вы или перепутали или обманываете людей.
dv0ich
16.09.2024 14:35По мне так круто выглядит, лучше винды до 9х. Но красная галочка на кнопке "Ок" это действительно провал :) Хотя может это отражение мышления автора: любые изменения есть шаги к тепловой смерти вселенной, так что подумай ещё раз, пользователь, нужно ли тебе это...
CheshirCa
16.09.2024 14:35+2А вы когда-нибудь работали с такой оболочкой для DOS?
С такой - нет, у меня фидошный софт и BBS крутились под DESQview
vros
16.09.2024 14:35+2Непонятно, зачем такое нужно было в 1998 году (кстати, это уже не середина 90х, как написано в начале статьи, а конец). Красивости обеспечивала win9x, многозадачность - os/2, если памяти было от 4 мегов, или desqview, если меньше, и winnt4 уже была… В общем, автор опоздал лет на 10.
Egres
16.09.2024 14:35+1Я на всякий случай напомню, что 95-я, как легко догадаться, вышла в 95-м году, так что вступление про "середину 90-х" и "Windows 3.11" (автор, кстати, в курсе существования и других систем в то время?) тут явно лишнее :)
Данная оболочка в 98-м была изначально экспериментальной и написана для фанатов.
P.S. А то ещё можно Арахну вспомнить, например - досовский графический броузер с tcp/ip стеком.AcidWave
16.09.2024 14:3595 винда вышла в 94 году. Дома до сих пор есть диск с самой первой 95 которая для Америки была без поддержки русского языка
Egres
16.09.2024 14:35Беты были в 94-м году и альфы всякие. Проект Chicago. Он и на дисках ходил и продвинутый народ его ставил себе. Релиз вышел в 95-м, в начале осени, вроде. А на «Американскую» и «паневропейскую» винда делились достаточно долго. Уж и не знаю когда это кончилось. В семерке?
unreal_undead2
16.09.2024 14:35В начале 95го на физтехе периодически скачивали беты - один товарищ по общаге уже тогда купил на соровскую стипендию 80386ой, ходили к нему комнату смотреть, как оно инсталлируется и вообще выглядит. Но при этом на своём домашнем компе (покупал осенью 95го) первое время были только дос и Windows 3.x, 95 поставил заметно позже только чтобы посмотреть на демо версию Diablo (и как то не особо зашло, полную версию не проходил). Вордовые документы ещё несколько лет ходили в основном в формате 6.0, LaTeX и сишные компиляторы компилятор и в досе были; игрушки ещё пару лет выходили в основном под дос.
Egres
16.09.2024 14:35Угу. В Питере в ЛЭТИ беты качали. При тех скоростях это целое приключение было :)
axe_chita
16.09.2024 14:35Если вспомнили про эту оболочку, то тогда стоит вспомнить и NewDeal Office
на 286/16мГц/1mb/40mb с EGA шевелилась куда бодрее Win3.1
И не в пример ему была более функциональна. Но был и глобальный недостаток - отсутствие поддержки кириллицы. По этому поводу я списывался с разработчиками, они обещали подумать что бы добавить кириллицу, но это так и не появилось в новых релизах.
OlegZH
16.09.2024 14:35Я бы ещё вспомнил о том, что у самого Питера Нортона был такой продукт как Norton Desktop.
Вообще, с некоторой приятностью вспоминаю и Norton Utilities. Любил, почему-то, заниматься дефрагментацией дисков. Там ещё была такая особенность, что при запуске перегружалась страница кодогенератора, и символы на экране становились немного другими, скажем, так, более приятными на глаз.
Ещё был такой продукт как Stacker. Или, как там его? Вообщем, сжатие дисков и распаковка по требованию.
Потом, ещё, был такой антивирус Лозинского.
degistration
видя уже существующее все боятся написать что-нибудь подобное из статьи - единственное: на свой vc с длинными имена решаются