Что такое crazyv1dos club
MS-DOS, который мы никогда не видели
Порой встречаются такие артефакты природы, что начинаешь невольно задумывать о разных конспирологических теориях и альтернативной истории. Сегодня я хотел бы поговорить о разных малоизвестных и не очень аспектах операционной системы MS-DOS. Историй про дос на хабре было огромное множество: краткие очерки, подробная хронология, мемуары ностальгирующих, но никто ни разу не отмечал про MS-DOS 4.0 от 1985 года. Я считаю это очень важным звеном развития операционных систем для IBM PC, но удивительно мало информации о таком важном переходном этапе. Это буквально утерянная ветка доса и найти про нее информацию большая проблема. Что бы вы подумали если бы услышали о поддержке в DOS вытесняющей многозадачности, виртуальной памяти, свопа, семафоров и IPC. Фантастика?
Собственно, история началась одним праздным днем, когда я в порыве прокрастинации решил немного почитать интернета вместо работы. Когда-то у меня был ноутбук Sharp PC 6200, основанный на новомодном 80286 процессоре и оснащенный двумя дисками, один HDD на 10 мегабайт, а второй ROM на 4 мегабайта. На ROM драйве были утилиты от производителя и инсталятор DOS. По замыслу разработчиков, если человек приобрел новый винчестер, то он мог его разбить, отформатировать и установить дос прямо встроенными в ноутбук средствами. Вероятно, такое решение было продиктовано отсутствием в ноутбуке дисковода, но для меня оно было весьма оригинальным и свежим. Я уверенно помнил что там был DOS 4.0 и мне захотелось узнать больше о нем, тем более что о нем ходила слава как о неудачной системе, но конкретики я не знал.
Буквально с первого запроса я получил очень много противоречий в выдаче. Расходилось буквально все, начиная от перечня проблем и заканчивая датой выхода. Отдельно следует заметить, что в те дикие времена говорить о релизе доса не приходится. MS DOS до пятой версии не продавался в свободной продаже, Microsoft работала исключительно на производителей оборудования и корпоративный сегмент, поэтому версии тех времен известны либо по купленным образцам техники с предустановленной системой, либо по утекшим версиями из предприятий. Кроме того дос тех времен был практически голым, только несколько совсем важных системных утилит, а из совсем уж прикладного софта можно отметить только ассемблер/дизассемблер/отладчик DEBUG, линейный текстовый редактор EDLIN да BASIC в некоторых версиях. Получив голую систему в ней было практически нечего делать, но это больше веяние тех дней. Но и компьютер обычно покупался с вполне определенной целью и скорее ОС выбиралась под софт, а не наоборот. Особо интересно на этом фоне выглядит CP/M 86, в составе которой в то время был визуальный текстовый редактор, компилятор ассемблера и бейсика. Впрочем, вернемся к нашему DOS. На некоторых сайтах я находил свидетельства о том что DOS 4.0 была принципиально новой операционной системой и в ее ядре были проведены огромные изменения, по самому минимуму: новая файловая система FAT16 которая позволяла использовать винчестер более 32 мегабайт, для этого в ядре появилась VFS позволявшая успешно работать одновременно с двумя разными файловыми системами, вплоть до многозадачности, семафоров и разделяемой памяти. По свидетельствам очевидцев в версии 4.01 систему причесали, многозадачность заблокировали и выпустили работоспособную систему.
Тут я, мягко говоря, очень удивился. Я отчетливо помню что никакой многозадачности и разделяемой памяти не было на ноутбуке а версия была строго равна 4.00. Но почувствовал, что тема явно интересна и мало изучена. Тогда постепенно начала вырисовываться правда. Оказывается существует две версии 4.00, одна из них, всем известная, вышла в 1988 и основана на 3.30, другая вышла в конце 1985, основана на 2.1 с частями от 3.1 и обладает всеми этими магическими свойствами. Для их отличия версию 1985 в народе называют 4.00M.
На этом моменте меня уже совсем перестали интересовать баги обычной четвертой версии и я начал охоту за образами многозадачной версии. Я собрал порядка десяти разных версий MS DOS 4.0 для разных вендоров, среди которых была даже Nokia (вот откуда растут ноги их сотрудничества), попутно обнаружив исходники MS DOS 3.3, но того самого 4.00M не было. И вот образы были обнаружены, да не просто, а прям в on-line x86 эмуляторе.
Система состояла из двух дискет, где имелось, собственно, ядро операционной системы и совсем минимальный набор утилит. Никаких документов не содержалось. Никакой помощи. Более того, даже ключ /? не присутствует у всех команд! Но основной функционал видно и так. По правому альту выпадал список задач, в котором можно было создать новый процесс или переключиться между имеющимися. Что, в общем, не особо меня впечатлило. Я даже не был уверен что это аутентичная версия от Microsoft, а не мистификация на слухах в сети. Собственно это мы и будем доказывать. Тем более тот факт, что многозадачность реализуется некой нашлепкой сверху SM.EXE, говорит в пользу этой версии. Вот содержание CONFIG.SYS:
Это уже начинает быть по-настоящему интересным. Во-первых видна дата: 9 октября 1985, во-вторых виден размах деятельности. Отдельно стоит отметить, что это только октябрь 1985, а первая версия Windows была выпущена только в ноябре. То есть технология PIF еще не вышла за стены Microsoft. Утилита для управления памятью MEMSET, настоящие фоновые процессы, а не обрезанные TSR, работающие на перехвате векторов прерываний. Виртуальная память и возможность выгрузки сегментов на диск. Я тут же попробовал запустить что-то командой detach и получил ответ в виде PID запущенного процесса. Интересно что если попробовать запустить интерактивную команду в бекграунде, то ее вывод перекрывается с текущей консолью, а она тут же получает символ конца файла ^Z и закрывается. Если запустить FDISK, то портятся настройки терминала. Они не восстанавливаются даже если завершить сеанс этого терминала и открыть заново. То есть терминалы выделяются статически. Интересно что CLS не работает как полагалось, а просто выводит ESC последовательность. То есть терминалы сильно ушли от прямого доступа к памяти и должны управляться через ANSI. ANSI драйвер был, но я его не загружал. Тут я уже сильно засомневался о мистификации с таким размахом. Так что оставим эмулятор и перейдем непосредственно к вскрытию.
Скачав образы, я извлек все содержимое в отдельный каталог. Образы проверил на удаленные файлы но все оказалось чисто. Призрачная надежда найти что-то еще исчезла. Так что приступим. Для начала отметим что структура файлов серьезна изменилась. Например popup.exe: MS-DOS executable, NE (unknown OS) (driver) или queuer.exe: MS-DOS executable, NE for MS-DOS, и даже attrib.exe: MS-DOS executable, NE for MS Windows 3.x. Хотя файл отлично запускается. Так что это скорее всего глюк утилиты file, или просто формат файла еще не полностью стандартизирован.
Файлы содержат заголовок более похожий на PE, чем на то, с чем привыкли работать в дос. Видно оригинальное имя файла и список импортируемых экспортируемых символов называемых тут DOSCALLS, то есть видимо была попытка реализовать что-то подобное разделяемым библиотекам или IPC.
Версия определена таким образом
dos/append.exe:@(#)append.c 1.1 85/10/09
dos/assign.exe:@(#)assign.c 6.1 85/10/23
dos/attrib.exe:@(#)attrib.c 6.1 85/10/24
dos/fdisk.exe:@(#)fdisk.c 1.1 85/10/09
dos/fdisk.exe:@(#)fddata.c 1.1 85/10/09
dos/fdisk.exe:@(#)fdlow.c 1.1 85/10/09
dos/fdisk.exe:@(#)fdsub.c 1.1 85/10/09
dos/join.exe:@(#)joinsbst.c 6.3 85/11/08
dos/join.exe:@(#)sysvar.c 6.2 85/11/08
dos/join.exe:@(#)cds.c 6.2 85/11/08
dos/join.exe:@(#)dpb.c 6.1 85/11/08
dos/label.exe:@(#)label.c 6.1 85/10/24
dos/link4.exe:@(#)newdef.y 6.2 85/10/14
dos/link4.exe:@(#)ms4bnr.c 1.1 85/10/15
dos/mode.exe:@(#)mode.c 6.2 85/10/24
dos/pifedit.exe:@(#)getkey.c 6.1 85/10/25
dos/pifedit.exe:@(#)pifmes.c 6.1 85/10/25
dos/pifedit.exe:@(#)advpscrn.c 6.1 85/10/25
dos/pifedit.exe:@(#)advescrn.c 6.1 85/10/25
dos/pifedit.exe:@(#)usrscrn.c 6.1 85/10/25
dos/pifedit.exe:@(#)rangers.c 6.1 85/10/25
dos/subst.exe:@(#)joinsbst.c 6.3 85/11/08
dos/subst.exe:@(#)sysvar.c 6.2 85/11/08
dos/subst.exe:@(#)cds.c 6.2 85/11/08
dos/subst.exe:@(#)dpb.c 6.1 85/11/08
dos/swapper.doc:@(#)swapper.doc 6.1 85/10/09
ega.sys:@(#)BIOSMSYN6.1
ega.sys:@(#)scrinit.asm 6.3 85/11/14
ibmbio.com:@(#)BIOSMSYN6.1
ibmbio.com:@(#)ibmbio.asm 6.4 85/11/25
ibmbio.com:@(#)scrinit.asm 6.3 85/11/14
ibmbio.com:@(#)ibmprint.asm 6.3 85/11/14
ibmbio.com:@(#)ibmatdsk.asm 6.3 85/11/14
ibmbio.com:@(#)ibmdsk.asm 6.3 85/11/14
ibmbio.com:@(#)sysini.asm 6.4 85/11/14
ibmdos.com:@(#)msinit.asm 6.7 85/11/26
Теперь проверим это чудо на совместимость с программами из MS DOS. Для этого у нас есть vc.com, rkega.com, sdrv.com, zork и captain comic. Тут мы и получаем первое разочарование. Ни волков, ни драйвер русского, ни синтезатор речи не могут быть инсталированы. Zork играет отлично, задачи переключаются. поиграть в CC можно, но после переключения графика ломается. qbasic запускается, но если переключится из него, а потом в него, то система виснет. Вобщем, совместимость есть только с программи которые ведут себя очень тихо, пользуются стандартным API и никогда, никогда не лезут в структуры DOSа напрямую. ТSR отсуствует как класс. Видимо прямой доступ к видеопамяти тоже не привествуется. Собственно возможно именно из-за этого пункта проект не получил будущего.
Конечно, можно еще достать дизассемблер и продолжить более глубокий анализ, но я думаю что пока с технической стороной можно закончить. Зато интересна еще политическая и историческая сторона. В итоге находим собрание разной информации о дос от PC DOS Lead-developer из IBM, среди которой находится страница о 4.0M:
Multitasking MS-DOS 4.0 was a little known and separate development of DOS done in parallel with the development of DOS 3.x in 1985. It should not be confused with the later retail DOS 4.0 that was released in 1988. DOS 4.0 supported preemptive multitasking, shared memory, semaphores, advanced memory management, a session manager, imports, exports and a new executable format. Many of the ideas and features introduced here found their way into OS/2. Unfortunately DOS 4.0 was limited by the real-mode 8086 environment and the 640KB address space. Also programs which were not well-behaved or relied upon undocumented DOS functions would not run properly under DOS 4.0, particularly TSR programs.
И ссылка на блог разработчика этой версии Larry Osterman, где мы можем узнать совершенно удивительные вещи:
MS-DOS 4.0 was unique because it was developed “on spec” – IBM didn’t see a need for a multitasking version MS-DOS and didn’t have a new hardware offering on which to attach the product. But IBM did have the PC/AT which was an 80286 based processor and it didn’t have an OS that took advantage of that hardware. So IBM and Microsoft started negotiations to take the MS-DOS 4.0 code base and turn it into what eventually turned into OS/2. I ended up not working on the OS/2 effort, instead I worked on finishing up MS-DOS 4.0 for the OEM partners who had licensed MS-DOS 4.0.
Выходит все же эта версия не пропала зря, это не только предок OS/2 а буквально ее личинка, многие технологии которые были использованы тут разделены с Windows того времени и перешли прямиком в OS/2. Однако на всех исторических сайтах история OS/2 начинается в 1987 и выпуска OS/2 SDK, а это — переходное звено которое всеми забыто и даже не упоминается.
1. История операционных систем. DOS
Вместе с распространением в широкие массы персональных компьютеров, появилась потребность в своего рода загрузчиках и примитивных операционных системах. Именно как простой загрузчик начинала свою историю популярная в свое время операционная система DOS
DOS конечно не является первой в мире операционной системой, но она первая которая достигла такой популярности среди обычных пользователей компьютеров.
К середине 70-х годов СР/М-80, права на которую принадлежали фирме Digital Research, стала наиболее популярной системой для компьютеров на базе Intel 8080 и Zilog Z-80. Эта система обеспечивала доступ к разнообразным средствам прикладного программнoго обеспечения (текстовые процессоры, администраторы баз данных и т.д)
В связи с задержкой выпуска новой версии этой системы (СР/М-86) в апреле 1980 года компания Sеаttlе Соmputer Рroducts, занимавшаяся изготовлением компьютеров на базе 8086-процессоров, решает использовать в них свою собственную операционную систему, которую в итоге (к августу этого же года) и написал Тим Петерсон.
После этого многие производители компьютеров стали выпускать собственные варианты операционной системы DOS. Программы того времени легко запускались на разных версиях операционных систем. Большего всего в этом достиг конечно же Microsoft. Ведь многие именно их операционную систему MS-DOS подразумевают под названием DOS
я застал в 90х только ms-dos на 286х, в комплекте с нортон командером, без него обычному пользователю было бы совсем грустно.)
Фактически адаптированная версия CP/M-80 под названием MicroDOS использовалась мною на Вектор-06ц с подключенным ram-диском. Да, аж олдскулы свело.
Распространение в массы персональных компьютеров в 1973 году? А ничего, что даже гугл говорит, что первый писюк появился в начале 80х?
Загрузочный флоппик с ms dos
2. История операционных систем. MS-DOS
Для большинства людей именно продукт от компании Microsoft ассоциируется с операционной системой DOS
Первой разработкой MS DOS можно считать операционную систему для персональных ЭВМ, созданную фирмой Seattle Computer Products в 1980 г. В конце 1980 г. система, первоначально названная QDOS, была модифицирована и переименована в 86-DOS
В 1981 году корпорация IBM разместила запрос на создание операционной системы, которая должна была использоваться в новом семействе компьютеров IBM PC. Microsoft выкупила права на операционную систему 86-DOS у Seattle Computer Products и начала работу по её модификации под требования IBM. Впоследствии IBM лицензировала MS-DOS и выпустила её в августе 1981 года под наименованием PC DOS 1.0
Операционная система поддерживала только односторонние 5,25-дюймовые 8-секторные 160-Кбайт НГМД. COMMAND.COM реализует следующие внутренние команды: COPY, DIR, ERASE, PAUSE, REM, RENAME, TYPE. Внешние команды: CHKDSK, DATE, DEBUG, DISKCOMP, DISKCOPY, EDLIN, FORMAT, LINK, MODE, SYS, TIME, BASIC. В атрибуты файлов записывается только дата последнего изменения
В 1982 году вышла версия MS-DOS 1.24. Добавлена поддержка двухсторонних дисководов 5,25 дюйма 320 Кбайт. FAT12. В атрибуты файлов помимо даты последней записи добавлено её время. Команда COPY теперь поддерживает объединение файлов. Новые внутренние команды: DATE, DEL, REN, TIME. Новая внешняя команда EXE2BIN
В 1984 году вышла версия MS-DOS 3.0. Она оявилась в связи с выходом IBM PC/AT, которая оснащалась жестким диском в 20 МиБ. Появилась возможность выполнять программы, находящиеся не в текущем каталоге, за счёт указания маршрута. Добавлена поддержка 15-секторных 5,25″ дисководов на 1,2 Мбайт. Добавлены новые команды: ATTRIB, LABEL, SELECT, KEYB, SHARE, GRAFTABL, COUNTRY. Поддержка виртуального диска в ОЗУ.
В дальнейшем в версии 3.10 добавлена поддержка работы в сетях Microsoft. Добавлены команды JOIN и SUBST
Версия 3.20 вышла в связи с выходом IBM PC Convertible. Добавлена поддержка дисководов 3,5 дюйма 720 Кбайт. Добавлены новые команды REPLACE и XCOPY. Команда FORMAT теперь препятствует непреднамеренному форматированию жёсткого диска. Добавлен DRIVER.SYS для создания фиктивных дисководов. Добавлен драйвер RAMDRIVE.SYS для создания виртуального диска в ОЗУ
Версия 3.30 появилась в связи с выходом IBM PS/2. Поддерживает концепцию разбиения жёстких дисков любого объёма на логические диски размером до 32 Мбайт. На одном жёстком диске может быть только два раздела — MS-DOS и EXT DOS, самих жёстких дисков — не более двух. Внутри EXT DOS может быть до 23 подразделов (от D до Z).[12] Без внешних программ объём жесткого диска не может быть больше 32 МиБ. С прерыванием INT 13H[13], которое было добавлено в BIOS только в 1994 году, максимальный объём HDD составлял 24х32=768 МиБ. Добавлена поддержка дисководов 3,5 дюйма HD (High Density) 1,44 Мбайт. Введена поддержка кодовых страниц (национальные наборы символов и таблицы сортировки). Имеет несколько выявленных ошибок (например, FORMAT может забраковать хороший диск). Добавлена поддержка команд: APPEND, CALL, CHCP, FASTOPEN, NLSFUNC
Следующая версия 4.0 вышла в 1988 году и стала поддерживать логические диски на жёстком диске размером более 32 Мбайт. Максимальный объём жёсткого диска не может быть больше 528 МиБ без сторонних программ. Прерывание INT 13H позволило увеличить объём жёсткого диска до 7,844 ГиБ. Добавлена новая команда MEM. Полная поддержка EGA и VGA.
Версия 4.01 стала первой официально локализованной версией для России
Версия 5.0 вышла в 1991 году. Введена поддержка до восьми физических жестких дисков, возможно создавать до 4-х основных разделов, а следовательно можно установить до 4-х ОС на один HDD. Добавлена поддержка дисководов 3,5 дюйма EHD 2,88 Мбайт. Новый менеджер памяти. Добавлены новые команды: DELOLDOS, DOSKEY, EXPAND, LOADHIGH, MIRROR, SETVER, UNDELETE, UNFORMAT. Добавлены полноэкранный текстовый редактор Edit, полноэкранная среда программирования QBASIC, интерактивная справка Help.
В версию MS-DOS 6.0 Добавлены новые команды: DELTREE и MOVE. Исключены команды: RECOVER, ASSIGN, GRAFTABL, JOIN, MIRROR, COMP, BACKUP, EXE2BIN, драйвер PRINTER.SYS. Усовершенствованы команды: DIR, MEM, UNDELETE, FORMAT, SYS. Новая команда CHOICE обеспечивает разветвление в командных файлах. Появилась возможность отмены выполнения отдельных команд в CONFIG.SYS и AUTOEXEC.BAT целиком. Добавлена поддержка CD-ROM. Добавлены дополнительные программные средства: Microsoft MemMaker (оптимизация использования верхней памяти), Microsoft DoubleSpace (сжатие данных на дисках), Microsoft Defragmenter (дефрагментация дисков, лицензирована у Symantec), Microsoft Backup (в версиях для MS-DOS и Windows), Microsoft Anti-Virus (в версиях для MS-DOS и Windows, лицензировано у Central Point Software), информационная утилита Microsoft Diagnostics, система связи Interlink, утилита Microsoft Undelete for Windows.
Версию 6.22 была последней версией MS-DOS которая являлась отдельной операционной системой, а не входящей в состав другой операционной системы от Microsoft
Версия 7.0 являлась частью операционной системы Windows 95. Добавлена поддержка LFN — длинных имён файлов (доступна только под Windows). Весь код из MSDOS.SYS перенесён в IO.SYS. MSDOS.SYS теперь представляет собой текстовый файл настроек.
Версия 7.1 была частью Windows 95 OSR2 и Windows 98 и SE.
Последняя версия операционной системы MS-DOS 8.0 является частью Windows ME. Ухудшена функциональность ядра, жёстко интегрирован неотключаемый драйвер верхней памяти. Заблокирована возможность загрузки в реальном режиме с жёсткого диска, удалено большинство утилит. Также находится на аварийной загрузочной дискете, создаваемой Windows XP и старше
Подводя итог можно сказать что MS-DOS занимает место одной из самых значимых и важных мест в истории компьютерной техники
Как обновить Windows 7 до Windows 10 бесплатно с помощью Media Creation Tool
Microsoft знает об этом трюке, но в компании предпочитают закрывать глаза на это.
WinXP lives matter
Linux для тебя
Дисклеймер: Я никого не призываю переходить на другую операционную систему(ОС), а просто хочу показать, что существуют альтернативные ОС. Выбор всегда за вами.
Начну, пожалуй с истории. Все началось с UNIX систем, которые в конце 60-x годов были разработаны сотрудники компании Bell Labs. Они мало чем были похожи на современные ОС, просто терминал и компилятор под ассемблер. Компания AT&T, которой принадлежала Bell Labs понимала коммерческую ценность UNIX, но из-за запрета наложенного правительством США, компания могла заниматься только телефонными сетями и смежным оборудованием. Для того, чтобы обойти запрет, компания передала исходный код ОС некоторым высшим учебным заведениям. Одним из первых исходный код получил университет Беркли.
В 1991 году Линус Торвальдс студент Хельсинского университета, начал написание ядра Linux. Когда он выложил исходный код, другие разработчики заинтересовались и стали помогать в разработке ядра.
Так почему более зрелая и мощная система BSD не сыскала популярности в open source сообществе в отличии от Linux? Все дело в лицензии под которой распространяется ОС. Лицензия BSD позволяет использовать ее код, а затем сделать его закрытым, так в свое время поступила Apple. С Linux так сделать нельзя, лицензия обязывает после изменения кода выложить его в открытый доступ, поэтому сообществу выгодно писать программное обеспечение (ПО) под лицензией Linux.
С того момента было создано огромное количество дистрибутивов на основе ядра Linux. Коммерческие организации также участвуют в разработке ядра и поддерживают open source сообщество.
Теперь хочу рассказать как я познакомился с миром Linux. До университета я был обычным пользователем Windows и только слышал о существовании Linux. Когда мне пришлось по надобности столкнуться с этой ОС, а я ничего особо не знал, то я поставил самый популярный дистрибутив Ubuntu и пользовался им около недели. Он мне не понравился и я стал пробовать другие дистрибутивы. Дольше всего я использовал Fedora от Red Hat и Elementary OS. Сейчас использую Manjaro с рабочим окружением KDE, вообще рабочие окружения это отдельная тема. Существует огромное количество дистрибутивов и такое многообразие может отпугнуть неподготовленного пользователя.
Fedora с окружением Gnome
Manjaro с окружением KDE Plasma 5
В основном, когда человек задумывается о переходе на новую ОС, его останавливает мысль об отсутствии привычных программ. Я провел небольшой опрос среди своих друзей и знакомых, чем они пользуются ежедневно для решения своих задач.
В опросе участвовало 25 человек. Для большинства людей необходим браузер, офисный пакет, мессенджер и графический редактор. Большая часть ПО нативно есть под Linux, а остальная имеет достойные альтернативы. Например, пакет MS Office я заменил на Google Docs и Open Office, они прекрасно справляются со своими задачами и имеют обратную совместимость с MS Office. Для работы с фото Krita и Gimp, для видео DaVinci Resolve и Kdenlive, LMMS и Audacity использую для работы с аудио. Дефицита программ нет и они бесплатные.
Установил нескольким друзьям и девушке, пока всем всё нравится
В СНГ пользователи персональных ПК не пользуются лицензионным софтом. Все привыкли пиратить все, что можно. За свою жизнь не встречал тех, кто имеет подписку Adobe или MS Office, кроме бизнес сегмента. В СНГ пиратство не наказуемо для пользователя ПК. Но кроме моральных терзаний, есть еще один момент, задумывались ли вы, какая выгода человеку, который взламывает ПО и отдает его в массы, это хорошая пища для размышления.