DOS
A long time ago, in a galaxy far, far away...
События и явления, описанные в этой статье, были давно, и помнит о них разве что пара-другая олдфагов. Но Анонимус не забывает!
Эта статья полна любви и обожания.
Возможно, стоит добавить ещё больше?
MS-DOS (Дос, Дося, Доска, Доисторическая Операционная Система, Dead Operating System, баб. Страшное Черное Окошко) — дисковая операционная система, ведущая свой род от CP/M и MOS. В основном, безвредна однозадачна. Устарела до твоего появления на свет.
Следует заметить — DDoS-атака никакого отношения к DOS не имеет.
DOS в истории
С начала 80-х под DOS написаны миллионы программ. Копирасты от Маикрософта на просьбы дософагов выложить исходники сначала долго ломались, но всё же отдали исходники сабжа версии 1.1 в 2014 году, а потом и 1.25 и 2.0 в 2018.
С временами ДОС также связана известная фраза «640 КБ должно хватить каждому». Она доставляет знающим людям до сих пор. Из DOS’а также растут ноги .bat файлов, которые люди используют до сих пор — например, BATCH-скрипты для командного интерпретатора.
Никому достоверно не известно, сколько пользователей ПК используют DOS. Да, кстати, этот ваш Федо работал сначала под DOS, а уже потом портировался под ОсьПополам, Венду32, Линух и Бздю.
DOS — операционка реального режима, то есть практически любая программа могла похерить память другой программы, так как, несмотря на кажущуюся однозадачность, кроме выполняющейся программы, в памяти висели фрагменты кода BIOS, собственно DOS с этим вашим int 21h, комманд.ком’ом и прочим матаном, необходимым для работы системы, куча всяких TSR (terminate-and-stay resident) навроде русификаторов. И всё это можно было потереть, после чего приходилось прибегать к живительному сочетанию трёх пальцев Ctrl+Alt+Del, либо, в особо запущенном случае, к Reset’у.
Ещё стоит отметить тот факт, что MS-DOS — это последняя операционная система от Microsoft, которая в полностью работоспособном виде, да ещё и с утилитами влезала на одну дискету (3.x Windows 1.x — не в счёт, так как версии MS-DOS выходили и после Windows 3.x). Причем данная операционка может быть установлена на жесткий диск простейшей командой sys c:, правда переносились всего три файла: IO.SYS, MSDOS.SYS и COMMAND.COM
Раньше дософаги участвовали в срачах с виндузятниками и линуксоидами, однако сейчас о них мало кто помнит.
И главное: DOS — это чистая и добрая страница нашей юности, когда компьютеры были медленные, а нынешние красноглазики — маленькие и срались в штаны. Все мы очень нежно и преданно любим DOS!
DOS теперь
Последней ОС от Мелкомягких, содержащей как таковой «чистый» ДОС, была Windows Me, хотя т. н. «Режим эмуляции MS-DOS» убрали уже тогда, оставив лишь куцый «Сеанс MS-DOS», разница между которыми в том, что первый был куда более приближён к реальной ДОС. Все операционки, выходившие далее, основаны на ядре NT, и содержат лишь командный интерпретатор и 3 с половиной утилиты, работающие на виртуальной машине NTVDM. Они работают внутри изолированной области памяти в так называемом режиме процессора VМ8086 («эмуляции 8086»), который полной совместимости не обеспечивал, в результате чего лулз от похеривания чужой информации потерялся, прихватив с собой работоспособность многих винрарных игр под DOS, причём, со временем и новыми обновлениями, эта совместимость сильно менялась. Общая тенденция была ко всё большему урезанию DOS-эмулятора в новых версиях ОС (начиная с Windows 2000). Наконец, в 64-битных версиях Windows Vista и Windows 7, DOS-эмулятор и поддержка Windows 3.x софта под 16 бит (NTVDM) была убрана полностью. А разгадка одна — в 64-битном режиме процессора режим VM8086 недоступен.
Периодически в среде разработчиков подобных альтернативных ядер высказываются мечты о создании 64-разрядного многозадачного DOS. Реально такая задача может быть выполнена только одним способом: если напишут ОС по типу доса, которая пересвистывается с UEFI на том же уровне тесного и страстного слияния, на котором DOS пересвистывалась с BIOS, и при этом понимает DOS API. Как только UEFI окончательно вытеснит классический BIOS, мечты могут стать реальностью.
DOSBox
Эмулятор DOSBox позволяет запускать DOS-игры вроде Dune, X-COM, Civilization, Kyrandia и др. Его портировали даже на смартфоны — правда, искаропки он там безбожно тормозит, но есть сборка Turbo, с которой производительность становится более-менее годной. Некоторые старые квесты можно запустить при помощи ScummVM. Для линуксоидов когда-то был расовый DOSEMU, он давно сдох, и линуксоиды теперь как и все остальные вынуждены пользоваться dosbox'ом. Для терминально криворуких рекомендуется оболочка для DOSBox — D-Fend, она позволяет запускать игры в три клика без ужосов настройки прерываний и прочих радостей DOS-олдфагов.
Для запуска DOS-приложений также можно использовать виртуальную машину, например, Oracle VM VirtualBox. Преимущество — можно регулировать объем жесткого диска, оперативки и видеопамяти, а также ставить любую версию DOS (сюда же можно отнести и системы Windows 95/98/ME, ибо они поддерживают досовские программы и игры намного лучше, чем системы Windows NT/2000/XP/Vista/7/8/10).
Бессмертное наследие
DOS обязателен к изучению на начальных курсах любой более-менее компьютерной специальности в средне-специальных и высших учебных заведениях этой России. Но, как показывает практика, на эти знания сейчас всем плевать, что является одной из причин положения быдлокодеров.
Примечательно, что до недавнего времени, пока не стали распространены LiveCD, народ обожал грузиться в DOS по поводу и без — например, для удаления неудаляемых файлов или убийства страшных вирусов.
Интересен и тот факт, что в дистрибутивах винды до сих пор за каким-то хреном валяются файлы от MS-DOS (якобы, для совместимости): CONFIG.SYS, IO.SYS, MSDOS.SYS или AUTOEXEC.BAT. Последний вообще является отдельным мемом, поскольку некоторые тупые вирусы до сих пор стремятся туда прописаться для автозагрузки. Файл популярен среди быдлокодеров, которые используют его и в хвост и в гриву, например, так. Более того, в винде масса файлов до сих пор имеют имена в формате 8.3, иногда даже в верхнем регистре, например, ntoskrnl.exe — причём даже под NTFS! Для справки, в этом файле лежит не что иное, как NT OS KeRNeL, который с DOS связан чуть менее, чем никак. Работа с файлами CON, PRN, NUL может обернуться массой лулзов: в DOS они зарезервированы под устройства и создавать такие файлы на диске запрещено. До сих пор не решена проблема с зоопарком кодировок — в консольных приложениях для вывода стабильно юзается CP866.
Также множество исполняемых файлов под виндой для совместимости с MS-DOS содержат DOS-заголовок и DOS-заглушку, которая обычно выводит эпическое This program cannot be run in DOS mode. Заглушку могут содержать даже драйверы и библиотеки, и даже шрифты (*.fon). Иногда вместо заглушки даже была ДОСовая версия программы. Например, MSAV (Microsoft Antivirus) для Windows 3.11 содержал досовскую версию в том же файле. Аналогично, при обновлении DOS заменялись, к примеру, ещё defrag.exe на defrag.bat и scandisk.exe на scandisk.bat, которые выводили сообщение и запускали виндовый вариант (в 9x при этом грузилась автоматом винда). В результате появились разнокалиберные вирусы, стремящиеся прописать туда какой-нибудь более оригинальный код.
Есть ещё всеми любимый формат исполняемых файлов COM, растущий из CP/M. Примечателен своей простотой, ибо содержит только код. Куча юзаемых сегодня тулзов, таких как FORMAT.COM и DEBUG.COM (позволяющие писать страшные вирусы на машине вообще без какого бы то ни было инструментария), до сих пор имеет это расширение. Хотя в настоящее время под Windows NT (2000/XP/Vista/7/8/10) часть их являются обычными Win32-исполнимыми файлами.
Ещё одно интересное наследие DOS, которое, однако справедливо оспаривается *никсоидами, — стили оформления сайтов (преимущественно, Web 1.0), из которых большую часть составляют всякие кулхацкерские сайты. Особые приметы — чёрный фон, ядовито-зелёные буквы и логотип в виде черепа. Хотя даже gmail и wordpress не брезгуют подобными темами. IRL же только олдфаги помнят о существовании зелёных монохромных мониторов и кислотной (совершенно вырвиглазной) палитры CGA, Hercules и прочих адаптеров тех времён, никакого отношения к ОС не имеющих. Так-то! Впрочем, это относится не столько к DOS, сколько к старым видеокартам и мониторам.
У Ослика имя запускаемого эксзэшника звучит «iexplore» (даже в этой вашей Десятке): в DOS'е было ограничение размера имени файла в 8 символов. Поэтому «explorer» (надмозг — «проводник») тру, а «iexplore» («интернет-исследователь») не совсем.
Несмотря на то, что IT-индустрия постепенно о DOS забывает, прямой доступ к портам ввода-вывода, каналам DMA и прерываниям до сих пор используется теми, кто делает под управлением DOS разные ЧПУшные станки, системы управления и прочие поделки типа банкоматов. Прошивка на геодезических тахеометрах Sokkia сделана на основе MS-DOS 6.22 и не меняется уже три десятилетия (разве что добавили поддержку USВ, но так и не удалили драйвер модема на 9600 бод). «Hiren’s BootCD» и fdd5-25.net DOS LiveCD также отдают дань старичку. И на SourceForge.net есть довольно новые проекты, так или иначе связанные с DOS.
FreeDOS
Живая, поддерживаемая опенсорсная версия DOS с дополнительными свистелками и перделками. С одной стороны, это весьма консервативная ОС, неотступно придерживающаяся первоначальной сути DOS — 16 разрядов, маленькое ядро, обращающееся к устройствам напрямую, строго однозадачная. С другой стороны, это ОС весьма модульная, которую постоянно обвешивают новыми дровами и расширителями, в результате чего FreeDOS понимает большую часть современного железа и запускается на любых компах с BIOS или UEFI Legacy BIOS Mode (а вот UEFI как таковой понимать не научена). FreeDOS содержит обвес для понимания длинных имен файлов, файловых систем NTFS от винды и EXT от линуха, мемори-менеджер JEMMEX, который умеет использовать современные гигабайты оперативки, дрова для USB-устройств, драйвер мыши CuteMouse, который понимает колёсико.
Ложка дёгтя: ядро FreeDOS занимает в памяти неадекватно много места по сравнению с аналогами — аж 128 килобайт, тогда как MS-DOS 7.1 занимает 70-80, а продвинутый DR-DOS 8, тоже умеющий в FAT32 — менее 64. Это важно, если ты соберёшься поиграть в капризные ретро-игрушки, жадные до основной памяти.
Поскольку ОС опенсорсная, разрабы невозбранно тырят софт из линуха и прочих *nix-систем, есть, однако, и свежие оригинальные разработки. Не обходится и без доставляющих багов. В некоторых версиях FreeDOS, например, попытка создать пустой файл с помощью copy nul blankfil.txt приводит к повисанию системы.
Где же используется этот динозавр?
- В промышленных компьютерах (для управления роботами, ЧПУ-станками, кассовыми аппаратами, терминалами);
- Бородатыми сисадминами как ремонтный инструмент для оживления других ОС, кройки и шитья по BIOS (в виде системных CD и флэшек);
- Жадными гос- и бизнесструктурами, не желающими обновлять парк машин, для работы старых досовских СУБД и деловых программ на 486 и первых пентиумах;
- ВНЕЗАПНО производителями новых компьютеров — они ставят на них FreeDOS как ОС-заглушку, чтобы не платить корпорации Билли за предустановленные на компах лицензионные винды;
- Геймерами-олдфагами вместо DOSBox;
- Ну и просто красноглазиками от DOS, которым доставляет собирать работоспособные современные сборки софта с интернетом и мультимедиа на базе DOS.
Были попытки отступить от досовского канона и запилить для FreeDOS альтернативное ядро, которое сделало бы её 32-разрядной. Попыток две: ныне почивший в бозе проект FreeDOS-32 (protected-mode, но всё ещё однозадачный) и еще потихоньку мычащий и телящийся, но так пока ничем и не разродившийся NightDOS (32-разрядный, многозадачный DOS с ядром по типу линуховского, понимающим ELF и запускающим 16-разрядные DOS-приложения в режиме виртуализации).
DOS и сеть
DOS легко подключается к Интернету, только в Web 2.0 ему делать нечего. Хоть браузеры и есть (Dillo, Arachne, Lynx, Links), но не переваривают ничего сложнее чистого HTML (в лучшем случае, с картинками и юникодом, как Dillo). Пользоваться же FTP и локалкой с помощью пакетных драйверов сетевухи — возможно.
PhoenixOS, Феникс
Собственно PhoenixOS сейчас уже DOSCORE — представляет собой как бы мифический дистрибутив FreeDOS, в котором есть всё, но нет ничего. Как утверждали дософаги, PhoenixOS взяла всё лучшее у красноглазых и вендузятников, отбросив всю сажу и гниль — воспарив тем самым над унылыми кучами врагов. Что интересно, не было представлено хоть какого-либо доказательства с работающим фениксом, из чего можно сделать вывод что феникс миф, гриб и радиоволна, а дософаги — призраки невинно убиенных Гейтсом досеров. Сам по себе дистрибутив интересен присутствием полноценной графической системы OzoneGUI, основанной на VESA с неким набором приложений а-ля форточки. На данный момент уже Aura Milestone 3 — вышел 1 мая 2012 года. Однако, как было сказано выше, работоспособность под вопросом, потому что непонятно, на каком вообще ядре это должно работать. Ядро FreeDOS-классики 16-разрядное и однозадачное, что как бы похеривает цель проекта — создать убийцу Windows и *nix. Авторы терпеливо ждут выхода NightDOS, чтобы построить свой дистрибутив вокруг него, но NightDOS все не выходит и не выходит. Нет бы помочь команде NightDOS…
Какие еще бывают DOS
- PC-DOS. Тот же MS-DOS, только с лейблом от IBM. Идентичен чуть менее, чем полностью.
- DR-DOS. Прямой потомок CP/M, ровесница MS-DOS, продержалась намного дольше конкурентки. Последняя версия DR-DOS была выпущена в начале 2010-х и поддерживает кое-какое современное железо, при этом отлично работая и на 8086. Имеет в комплекте многозадачную оболочку. Так как система была разработана практически с нуля, у неё отсутствуют некоторые недокументированные баги MS-DOS, поэтому на особо жестоком быдлокоде может проявляться несовместимость, наиболее известный пример — предупреждение и рандомные баги в [Windows 3.1]. На данный момент система заброшена и дальнейшее развитие её не планируется.
- PTS-DOS. Единственная настоящая русская ОС, разработана конторкой «Физтехсофт», и применяется военными РФ для работы бортовых компьютеров разной сумрачной техники. Была лицензирована немцам и форкнута под названием Paragon DOS.
- ROM-DOS. Дос, загружаемый не с диска, а из ПЗУ.
- PowerMOS. "Железный" гибрид DOS и MOS, устанавливалась преимущественно на японских компьютерах. Разработана компанией "NEC". Система не требует установки, она уже вшита в компьютер.
Игры
DOOM, X-COM, Warcraft, Первоквака, Duke Nukem, Daggerfall, Digger, Dune 2, Larry, Dangerous Dave, Prince of Persia, Transport Tycoon, Master of Orion — кто их не знает? Интересных даже сейчас игр под DOS написано очень много, поэтому до сих пор народ ставит DOSBox (а красноглазики — DOSEmu, ибо быстрее) и посещает тематические сайты. Впрочем, многие игры, даже будучи никогда не портированными под винду, вполне пашут без оного — Wolfenstein 3D, Spear of Destiny, DragonStrike, etc, хоть и без музыки, поскольку драйвера современных звуковых карт DOS давно не поддерживают, и тут уже без эмуляции не обойтись. Алсо, начиная с Windows Vista поддержка полноэкранного режима и DOS-графики полностью (почти) убрана, а 64-разрядные версии вообще не позволяют запускать 16-битный код, поэтому упомянутые эмуляторы сейчас ставит каждый уважающий себя олдфаг. Тем не менее, в 32-битных версиях Vista и 7 запуск игр в полном экране возможен, если установить драйвера для видеокарты от XP (возможно, это даже не скажется на остальной системе, как было у автора этой правки с интегрированной Intel G41). Остаётся риск мертвого зависания системы при попытке альттабнуться из полноэкранного режима.
Работа DOS-приложений под виндой
Поскольку в DOS, в полном соответствии с названием, почти ничего, кроме доступа к файлам, нет, то почти все программы там обращаются к оборудованию напрямую, и винда вынуждена перехватывать эти обращения и эмулировать их. Вопреки распространённому мнению, что проблемой является то, что «дос 16-битный, а винда 32-битная», это ни разу не так (хотя для x64 версий проблема уже именно в этом). Просто эмуляция некоторых вещей сделана на редкость криво. Например, NTVDM эмулирует звуковую карту всего лишь как Sound Blaster 2.0, что создаёт тормоза и проблемы со звуком. Многие игры нормально работают с помощью VDMSound, который исправляет как раз только эту проблему, не эмулируя CPU. Другая, не менее распространённая проблема заключается в кривых драйверах на видеоадаптер. Алзо установив SoundFX 2000 можно под Windows XP SP3 спокойно без тормозов пошпилить во всё выше перечисленное в разделе Игры не долбаясь с настройками DosBox`а.
DOS/4GW
Самый популярный расширитель DOS, разработанный компанией Tenberry Software (ранее Rational Systems). Позволял создавать полноценные 32-разрядные приложения для DOS, был очень любим разработчиками игр. Поставлялся совместно со средой разработки Watcom C — по тем временам это был очень крутой компилятор, да и сейчас в умелых задротских руках может порвать целое подразделение индусов на чалмы и тряпочки [1].
Tenberry разработала два расширителя: DOS/16M и DOS/4G. Сооответственно, для 286 и 386 процессоров. Версия DOS/4G для Watcom и получила название всем известного DOS/4GW. Перед запуском DOS/4GW-программы расширитель всегда печатал свой баннер, собственно поэтому и запомнился пользователям. На официальном сайте Tenberry Software до недавнего времени висели предложения «приобрести расширитель, позволяющий преодолеть барьер в 640K».
Да, и подсабж, наряду с такой экзотикой, как vxWorks и иже с ними, позволяет выжать из машины реально адские мощность и надёжность. Ручная организация мультизадачности на прерываниях, исходя из логического здравого смысла каждой подзадачи — это вам не фиксированные кванты времени с переключением селекторных регистров.
Вирусы и антивирусы
Вирусы в то время были винрарные и доставляли, о чём можно почитать у Собейкиса. Лулзов полны справочники [2] с описаниями тогдашних вирусов, выдававших стишки наподобие этого:
Жили у бабуси
Три весёлых гуся
Лоз, Данилов и Касперский
Я от них тащуся
Был один из первых в истории вирусов-шифровальщиков OneHalf. Поскольку волшебного биткойна тогда не существовало, OneHalf денег не вымогал, а шифрование ему было нужно для затруднения его выпила к ебеням с компа (выпилил виря — ебись с расшифровкой). Эпичен был вирус AIDS, фишка которого была в подмене exeшников comами, и который настолько задолбал народ, что персонально против него был впервые создан антивирус от Лозинского AIDSTest.
Как понятно из цитаты, основными антивирями были AIDSTest от Лозинского, DrWeb Данилова (популярный и сейчас), ADinf, Sheriff, Norton AntiVirus и AntiViral Toolkit (Каспер). Короче, отечественная вирусная и антивирусная индустрия жгла, а самые мощные вирусы убивали тысячами компьютеры офисного планктона.
Встречались также более поэтически одарённые:
Использованные презервативы
Плывут неспешно по Москве-реке.
В воде их ловят кооперативы
И сушат за углом невдалеке.
И снова продают, и будут долго
Препятствовать рождению детей...
Но в срок положенный впадают в Волгу
Буржуйских избежавшие сетей.
Их рыбы жрут, их чайки жрут, и вскоре
Сдыхают от закупорки кишки...
Но те, кто уцелел, впадают в море,
Качаясь на волнах, как поплавки.
Нептун колеблет зыбкие глубины,
И гонит тучи по небу Борей...
О, сколько их, изделий из резины,
Поглотят бездны мрачные морей!
Но по волнам скитаясь непрестанно,
Не всем тонуть — кому-то и всплывать...
Один из них достигнет океана
И станет вокруг света дрейфовать.
И будет путь его тернист и долог,
И в ночь, когда муссонный ливень льёт,
Его поймает тралом ихтиолог,
Что пятый день, не просыхая, пьёт.
И внятный голос музы он услышит,
И ощущая творческий порыв,
Тотчас же диссертацию напишет
На тему «Контрацепция у рыб».
И ещё были частушки:
На столе лежит дискета
У неё запорчен бут.
Через дырочку в конверте[1]
Её вирусы ебут.
Format C
Аналог патча Бармина для DOS. После подтверждения умножает содержимое диска C: на нуль, удаляя таким образом с него и сам DOS, если он находится там. Во времена DOS, когда было обычным иметь один том, он же системный, он же со всеми данными, именно Format C:, а не Format D: и т. п. считалось страшной командой. В наиболее атомном виде команда выглядела так: echo y|format c: >nul, то есть она автоматически отвечала «да» на запрос и отключала выведение на экран сообщения, что что-то форматируется.
Будучи запущенной, сия команда перезаписывала таблицы FAT в самом конце исполнения. Поэтому можно было прервать выполнение команды не доходя до конца и информация сохранялась. Однако, запущенный format C: и бегущие проценты приводили неподготовленных к качественному высеру кирпичей.
Недалёкое будущее. Компьютерная выставка. Идёт представление компа нового поколения. Представитель компании, изготовившей комп, говорит посетителям выставки:
— Этот компьютер уникален. Он не нуждается в вводе команд с клавиатуры, а воспринимает их с помощью голоса пользователя. Сейчас каждый из вас может попробовать поуправлять этой чудо-машиной. Крик из толпы:
— Формат цэ, двоеточие, энтер, игрик, энтер! энтер!
А компьютер ему в ответ: «bash: format: command not found»
— анекдот
И тут два бухих сисадмина из толпы выкрикивают:
- Судо эрэм слэш-эрэф косая черта, энтер!
— продолжение анекдота, придуманное аноном
И еще:
Встречаются два друга:
— Здаров дружище! Как жизнь, чем занимаешься? — Фармацевтом работаю! — Лекарства продаешь? — Форматирую диски С:!
— анекдот
Другой вариант:
Выставка «Комтэк-2025». Американцы выставили первый в мире суперкомпьютер, который, по их заявлению, может всё! Через удивлённую толпу пробирается хмурый хакер Вася и подходит к компьютеру:
— И что же ты можешь, супер-мозг?
— Мальчик, я могу абсолютно ВСЁ! Хочешь черепаший суп? Пожалуйста! Хочешь — прямо сейчас на Канары? Без проблем! Хочешь миллион долларов? Хоть прямо сейчас! Хочешь супер-звезду в свою кровать? Уже там! Я изобретение тысячелетия! Рассвет человечества! Конец неравенству и расслоению общества! Торжество демократии! Вечное блаженство во имя великой Америки! Мальчик, скажи мне, что же ты хочешь? Только скажи, и я тут же исполню твою просьбу!
— Всё что хочу? Ну хорошо. Я говорю — ты сразу делаешь, договорились?
— Говори! Сделаю тут же!
— Format C:\ без бэкапа!
Также, формат Ц — формат видеозаписи.
Файловая система
Ноги FAT тоже растут из CP/M. (ничего подобного, никакого списочного FAT в CP/M не было, а были блоки и экстенты, что позволяло невозбранно присобачить один и тот же блок несколько раз, и даже в разные файлы. Не было никаких вложенных каталогов, зато можно было похерить весь сильно фрагментированный диск, а затем гарантированно восстановить всё его содержимое. Я гарантирую это) Сейчас популярны на флеш-накопителях и тому подобном говне, на винтах же практически полностью вытесняется NTFS и другими более продвинутыми файловыми системами. Имена файлов в DOS были в формате 8.3 без пробелов, длинные имена были вставлены туда как костыль, который старался не мешать DOS’у, однако не был им поддерживаем, поэтому нередко можно увидеть подобную запись: TEXTFI~2.TXT или TE021F~1.TXT. Даже через много лет после того как ограничение стало неактуальным (выход Windows 95) олдфаги на всякий случай именовали файлы именно в таком формате.
Никакого разграничения прав юзеров в FAT не было, вместо него была убогонькая система атрибутов файлов: read-only («дорогой юзер, пожалуйста, не трогай этот файл»), system («ну очень тебя прошу, не трогай, а позови админа»), hidden («я тебе не покажу этот файл, если хорошенько не попросишь») и archive («пора бы уже забэкапить этот файл»). Обходились эти ограничения доступа элементарно, как из командной строки, так и любой оболочкой типа «коммандер». В современной виндовой NTFS есть и нормальное разграничение прав юзеров, и рудимент DOS в виде этих атрибутов, которые используются чуть менее, чем никак.
Существует тупое ограничение на имена файлов в Windows (которого на самом деле нет на уровне Windows, а только на уровне шелла), корни которого уходят в MS-DOS. Ламеры приходят в негодование при невозможности создать без ебли файлы и папки типа CON, AUX, NUL и другие тому подобные.
Буквы дисков в форточки пришли из MS-DOS, а он их получил с генами CP/M. A и B были закреплены для флоппарей . При этом B часто физически отсутствовал, в этом случае при копировании с диска А на В необходимо было попеременно менять исходную и целевую дискеты. Жёсткие диски решили именовать с C и далее. На XT такого ещё не было: многие машинки позволяли дать винчестеру букву от A до E путём изменения перемычками количества. Первые PC-хи были безвинчестерные и позволяли подключать до четырёх дисководов, именовавшихся A, B, C и D. Соответственно, когда в PC таки появился жёсткий диск, он именовался или с C, или с E, совместимость некоторое время поддерживалась перемычками на материнках и BIOS-ами в XT и AT-машинах.
Имелась (и сейчас имеется в винде) утилита subst, позволявшая эмулировать какое угодно запоминающее устройство просто подключать любую директорию в виде виртуального жесткого диска на какую угодно незанятую букву диска. Эти ваши дэймон тулзы и алкоголи не нужны.
FATal Bug
На FAT16 был замечательный баг: можно было создать скрытую директорию на уровень выше рута![2]
cd\
mkdir …\
и затем
cd\
cd …\
Также можно было создать папку с большим количеством точек где-нибуть в папке Games
mkdir …..\
Смысл?
- Пользователь видит эту папку, но её имя короче на одну точку
- При входе в данную папку пользователь переходит не на 1 уровень вверх, а на более (в данном примере на 4 уровня вверх).
- При попытке удалить папку стандартными способами (не зная об истинном количестве точек) система выходила на несколько уровней вверх и продолжала чистку дальше. Пока пользователь сообразит что дело не чисто — потеряет достаточно важной и не только информации.
Короче, доставляло не хуже Format C:
Программирование в DOS
Программирование в олдскульном DOS было тёплым и ламповым. Ассоциируется в основном с двумя языками — BASIC и ассемблерами x86. Ассемблерокодеры были круты, поскольку с неизменным вином выжимали из прерываний, портов ввода вывода и сегментной модели памяти абсолютно всё. Но со временем под DOS отметились Borland C/C++ и вторая поделка от них же — Turbo Pascal. Но как ни крутились сионисты и пасквилянты, тру-программерами из них становились только те, кто вырос из ассемблерщиков (ну или дорос до них), потому как из-за ограниченности ресурсов внутри грамотного кода на Си или Паскале зачастую можно было увидеть ассемблерные вставки. Знание ассемблера (на практике это было конечно же, умение написать что-то типа «xor ax, ax» или «mov ah,13h; int 10h») автоматически повышало ЧСВ программиста over 9000, но при написании нормальных программ подобные быдлокодеры сразу выбраковывались, что позволяло содержать индустрию программирования в достаточно хорошей форме (в отличие от вашего нынешнего похапэ состояния).
Ну, а что касалось выживания — борьба за каждый байт была обычным делом, программа могла запросто не поместиться в лимит, поэтому программеры любили заюзать расширенную память или же воспользоваться возможностями расширителя для перевода процессора в режим линейной адресации памяти и доступа к мегабайтам памяти.
У DOS была позаимствованная у UNIX и обрезанная по самые яйца асинхронная модель драйверов устройств (Некоторые моменты создания драйверов описаны, в частности, вот в этой книге), которая состояла из стратегической части, получающей запросы от программ, и тактической, обрабатывающей прерывания (позже та же схема была повторена в OS/2). Тем не менее, сами драйвера даже эту обрезанную модель нарушали чуть реже, чем всегда, и для работы с разными железками, кодировками, языками и прочими кошерными штуками было изобретено более 9000 костылей, как правило основанных на всё тех же программных прерываниях. Красноглазикам бы понравилось. Кроме труЪ драйверов (файлов с расширением SYS, грузившихся при буте из CONFIG.SYS), существовали и TSR-программы (Terminate and Stay Resident), обычные исполняемые COM или EXE, которые зачастую также выполняли задачи драйверов.
Программирование графики под DOS доставляло огромным зоопарком видеорежимов: EGA, VGA, SVGA, CGA, MCGA, Hercules — тысячи их, и постоянным недостатком видеопамяти. Зато был режим 320x200x8 (режим 13h), в который видеокарта переключалась двумя строчками ассемблера, и который неимоверно доставлял (наверное, больше ничего так не доставляло в DOS-программировании) тем, что размер видеопамяти, необходимый для работы этого режима, попадает в один сегмент. Также это самый быстрый видео режим из 256 цветных. Легендарный Doom работал именно в нём. Ну, а ночным кошмаром любого современного программиста будут переключения страниц, программирование палитр, вертикальная синхронизация, байты атрибутов в текстовом режиме, обновление экрана с оффскрин-поверхностей из-за медленной видеопамяти и прочие фишки железа тех лет.
Программирование звука под DOS тоже доставляло, поскольку звуковые карты стоили денег, а по умолчанию (да-да, не было тогда встроенных звуковух) в компьютере только системный спикер. С пищалкой всё просто — мастера-ассемблеристы выдавали с помощью неё забавные мелодии и даже оцифрованный звук, паскалистам, кроме пищания, ничего больше и не надо было, а пользователям вообще было всё равно.
Со звуковыми картами было сложнее. Олдфаги до сих пор помнят Gravis UltraSound и Sound Blaster — основные два типа звуковух, поскольку все компании, производящие эти двухканальные шайтан-девайсы с FM-синтезаторами, так или иначе добавляли поддержку или одного, или другого стандарта. Тру-олдфаги помнят ещё шайтан-пищалку ковокс, которая паялась на коленке из пригоршни резисторов, втыкалась в LPT-порт и давала неимоверный PROFIT. Совсем тру помнят шайтан-аудиокоробку от Disney[3]. По слухам, с ней нормально только игры от Disney и шли.
С этим вашим виндоузом появился стандарт Microsoft Sound System, но так и умер. Головняка добавляли и феерические настройки каналов DMA, которые неизменно доставляли лулзов ввиду их постоянной нехватки для приводов CD-ROM, сетевушек и звуковушек.
Ненавистью программистов до некоторого времени было программирование мыши. Это потом появился стандарт на прерывание 33h. Ну и кодировки — извечная CP866, русификаторы и прочее-прочее…
Таким образом, программки того времени в своём составе имели кучу драйверов звуковых карт, кучу драйверов видеокарт (или VESA-расширитель), драйвера этих ваших тридээфиксов (или кучу экзешников для тех же целей), драйвера мышек и джойстиков… Ну вы поняли, маленькая операционная система. Из эпичного можете посмотреть настройки того же GTA1.
Для обучения программированию под DOS как нельзя лучше подходит сайт wasm.ru. Быдлостуденту, которому нужно сдавать лабу по программированию в дос на асме, в качестве справочника хорошо бы использовать Ralf Brown Interrupt List, techhelp, а также эпичный томик Джорждейна «Справочник программиста IBM PC/XT/AT», от некоторых перлов, в котором наподобие «два небольших файла IO.SYS и MSDOS.SYS необходимы для загрузки COMMAND.COM, который, несомненно, является наиболее важной частью операционной системы» или «конторолер DMA в AT автоматически используется инструкциями MOVS, существенно увеличивая производительность».
В целом, в те времена программисты были действительно программистами, а приложения были компактные и шустрые. Не было никаких быдло-фреймворков, прослоек и надстроек — чуть менее, чем всё писалось под голое железо, что несказанно доставляло.
Оболочки DOS
Уже в те времена чёрная консоль обычно вызывала батхёрт у нормальных людей, поэтому для MS-DOS и её клонов создавались так называемые программы-оболочки. Началось всё с официальной DOS Shell, которая представляла собой побочный выкидыш самой первой Винды и из который выросли впоследствии File Manager из Win 3.1х и доживший до наших дней Проводник. Самыми же известными были Командиры Нортон и Волков. Первый был настолько удачен, что бренд NORTON (это фамилия такая) дожил и до нынешних дней, правда, уже выпуская поделки типа Norton Antivirus и Norton Utilities (которые, впрочем, в те времена были гораздо популярнее, чем теперь, и устанавливались на многие компы, а также описывались практически во всех книжках), второй же был написан нашим хохлом по имени Всеволод Волков, и является ничем иным, как клоном NC, что, впрочем, не отменяет общей кошерности программы. Volkov Commander доставлял своей производительностью (на PC-XT в Нортоне была заметна прорисовка панелей, а в VC — нет), наличием винрарного встроенного текстового редактора (в NC он был отдельной программой ncedit.exe, — запускался значительно дольше и имел ограничение в 64 Кбайт на размер редактируемого файла), наличием просмотрщика перехваченных прерываний (для особо продвинутых ассмблерщиков, которые уже научились писать TSR-ы и перехватывать прерывания, а не только ассемблерные вставки в паскакале), и ещё в резидентном режиме занимал меньше одного Килобайта, в отличие от NC. Также, Анонимус-олдфаг помнит, что Волков — чуть ли не самый компактный в мире файловый менеджер (всего 64 Кб, написан на языке ассемблера), что позволяло засунуть его на одну «аварийную» дискету емкостью 1,44 Мб вместе с DOS'ом, драйвером CD-привода и парой утилит для приведения жесткого диска в кошерный вид. К дискете обязательно прилагался CD-диск с 98-й виндой и ключом J3QQ4. Алсо, Volkov Commander проявлял зачатки полит-корректности: при попытке создать папку с именем «ЖОПА», на диске появлялась папка с именем «ПОПА». А ещё для просмотра досовских сообщений удобней было нажать одну кнопку Esc (VC), чем Ctrl+O (NC).
Позднее вышел DOS Navigator (в просторечии — Нафигатор или Пофигатор), до недавних пор активно пихаемый на разные LiveCD. Таки доставляет реально многооконным интерфейсом и встроенным тетрисом, который так ценили (и ценят) олдфаги, а еще больше доставляет возможностью увеличить размер дискет с 1,44 до 1,66 Мб (в меню форматирования). Интересно, что DOS Navigator'ы, основанные на творении Rit Labs разрабатываются и сейчас, это Necromancer’s DOS Navigator и DOS Navigator/2. Также существует винрарный, но малоизвестный Folder Manager. А еще Нафигатор обладал крайне кошерными на тот момент графическими заставками, появлявшимися при запихивании красного кирпичика мыши в правый верхний угол экрана.
Ну, а возвращаясь к Нортону, стоит заметить, что тот самый двухпанельный интерфейс с именами файлов в колонку с тех пор стал де-факто стандартом интерфейса файловых менеджеров. Используется он, например, в любимом красноглазиками Midnight Commander под Linux. Под Windows есть FAR (с некоторых пор — открытый, медленно умирал, пока Microsoft не вдохнула в него новую жизнь своим Server Core) и Total Commander, а также открытый Free Commander (Из текста лицензии: «АВТОР НЕ НЕСЁТ НИКАКИХ ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ И НЕ ОТВЕЧАЕТ ЗА ОТСУТСТВИЕ В ПРОГРАММЕ ДИФФЕКТОВ»). В довесок оконным был доставляющий XTreeGold, в котором окошки отсутствовали как класс, а вся навигация велась по дереву папок.
Также существовали командные оболочки для замены стандартного командного процессора COMMAND.COM, которые заменяли донельзя кондовый стандартный диалект языка BAT расширенным и гибким. Наиболее удачной из них была и остаётся 4DOS (входит в комплект поставки FreeDOS).
Существовал малоизвестный проект GEM, представленный компанией Digital Research в 1985 году. По слухам, создатели грозились порвать зарождающиеся в то же время форточки на британский флаг. В свое время существовал софт Xerox Ventura Publisher, на котором работали чуть менее чем все новые издательства посткоммунистической страны (также был популярен PageMaker, в лицензионном варианте стоивший аж на 100 баксов дешевле Вентуры — ваш вентурщик-кун). Так вот, это софт и был ничем иным как приложением GEM, которая шла в прицепе как runtime версия оболочки. Так же надо заметить что первые версии винды так же имели возможность рантайма. Ныне GEM входит в комплект поставки FreeDOS в практически неизменном виде, выглядит как говно и по возможностям примерно сравним с урезанной версией Windows 3.1.
Наконец, существовала и такая доставляющая оболочка, как DesqView. Её главной фишкой была МНОГОЗАДАЧНОСТЬ. Настоящая многозадачность под DOS, а не имитация с замораживанием неактивных процессов, как в MS-DOS Shell. Лишь бы оперативки хватило: процессам приходилось ютиться в 640 килобайт, а выгружать в верхнюю память можно было только часть каждой программы (в поздних версиях, к счастью, появилась подкачка). Этим с успехом пользовались фидошники и сисопы BBS, для которых многозадачность была весьма полезной фичей. DesqView легко могла использоваться совместно с Нортоном/Волковым, в такой сборке коммандер использовался как диспетчер файлов, а сама DesqView — как диспетчер задач. Мини-Волков на 64 кб подходил для этой задачи лучше всего, ибо таких процессов можно было запустить штук 5. Последние версии DesqView включали в себя портированный под DOS UNIX-овский X Window и уже всерьез грозили устроить вендекапец. Вендекапца не получилось, потому что фирма-изготовитель, Quarterdeck, разорилась и была куплена корпорацией тогда ещё великого Нортона, Symantec, которой этот DesqView был как рыбе зонтик. Ныне команда разработчиков FreeDOS была бы очень не прочь получить в лапки исходный код DesqView и запилить какой-нибудь FreeDesq, но исходники этой оболочки наглухо затерялись в лабиринтах истории.
DOS в народе
Аншлаг! Аншлаг!
Эта статья полна тонкой иронии и искрометного юмора. Следует заменить это на лулзы.
Из-за высокой популярности в народе DOS’у было посвящено множество тематических рассказов, притч, стихов, афоризмов и песен. Примером эпистолярного жанра могут послужить притчи Александра Голубева о меметических персонажах мира DOS (командир Нортон, Диггер, товарищ Комманд Ком, отец Вындоуз).
Притча:
Когда Диггер сломал себе ноги, он стал передвигаться на
колёсиках.
— Притча «Диггер».
Работает негр в НОРТОНЕ, жмет на клавиатуре F6-ENTER, F6-ENTER и поет «I like to Мove it, Мove it».
— Древний анекдот.
Афоризмы:
- Мал DOS, да живуч.
- Полуось, винды и DOS — кое-что из них понос!
- 3 кнопки, котоpые потpясли DOS.
- DOS никогда не говорит EXCELLENT command or filename...
- Деpжи DOS в yзде, а Виндy в...
- Format твою C!
- И форматируеш диск C: И переносишь туда системные файлы. Ну ты понел?
Песня товарища Каганова (пародия на «Дождь» Шевчука):
- DOS, чёрной пеленой экран заполнил чистый DOS,
- Мышь потеряла форму, стала вдруг квадратной мышь,
- Я разбил «окно», 95-ое мастдайное «окно»,
- И поставил DOS, и тогда я понял: это счастье — вот оно.
- Хрюкнул жесткий диск - и железо тихо зашуршало под столом,
- Загрузилось! Эй давай-ка мы посмотрим, что почем!
- Выходи под DOS и давай работай своей умной головой,
- Посмотри же сам - ведь DOS не сказка, это правда - DOS с тобой... - куплет пропустили
- Слёзы на очках — странные очки, а может слёзы на лице,
- DOS очистил всё — всё, что было лишним у меня на диске С:,
- Я нажал F8 и весёлый «Нортон» удалял мне всё подряд –
- 40 мегабайт, а может, даже больше, может, даже 60.
- И представил я: город наводнился вдруг разумными людьми,
- Вышли все под DOS, а проклятый Windows удаляли, чёрт возьми,
- Позабыв про Word, MS Excel, Corel Draw и прочий гемморой,
- Люди ставят DOS, словно в рай, заходят в DOS, нормальный чистый DOS.
DOS’у посвящено некоторое количество цитат на башорге.
boa: Ну да, икспи, виста, 64-разрядные платформы... И чо? В каждом экзешнике до сих пор строчка «this program cannot be run in DOS mode».
— #401747
>>>> Ubuntu может сильно сократить жизнь винчестера ноутбука.
>>> Gentoo может сильно сократить жизнь.
>> FreeBSD может сильно.
>MacOS X может!
DOS не может!
— #392966
Бля. Дома четыре компа. Могучий core2quad, старенький семпрон, 233-й пентиум aka роутер и ещё 386-DX40 для DOS-игр.
Сижу я с отвёрткой посреди этого счастья, а жена мне заявляет: «Ты мне хоть один из четырёх компьютеров собери и включи, я в интернет хочу!»
Мне стыдно...
— #392192
И наконец
sergio, 29-04-2006: после установки ОС с тёх дискет комп перезагрузился но ОС не грузиться пишет: MODE prepare code page function completed и дальше C:\> ВСЁ НЕ грузиться... помогите, что делать!!!
— #395306
Ностальгическая песня про былые времена, написанная небезызвестным Естереко:
См. также
Ссылки
- DOS в Википедии
- DOS в Драматике
- Архив сайта dosclip.narod.ru
- PTS-DOS — единственная действительно отечественная ОС всего за 20 у.е!
- FreeDOS
- 15-летию Russian MS-DOS 4.01 посвящается — исповедь переводчиков.
- ролик про MS-DOS 4.01
- Мир MS-DOS
Примечания
- ↑ Заклеивание дырки в 5.25 дискете приводило к хардверному переводу оной в read-only режим. Большинство вирусов распространялось в режиме "дал другу поиграть дискету" - если этот read-only не был принудительно выставлен, то вероятность сватить что-то зловредное была ненулевой. Загрузочные же дискеты ставить в read-only ОЧЕНЬ рекомендовалось, чтобы вирус не пожрал всю библиотеку на дискетах. В общем, всё как с нынешними флешками
- ↑ Видимо, в старых версиях доса, в версии MS-DOS 5.0 — «Unable to create directory»
- ↑ По сути Disney Sound Source был тем-же Covox-ом только более навороченным