MS-DOS для программиста
Выбирай в https://oncloud.ru/business-applications/wallarm защиту веб-приложений от угроз.

MS-DOS для программиста

Операционная система MS-DOS имеет в своем составе мощные и удобные функции, с помощью которых программы могут выполнить большинство операций над файлами и каталогами. Все эти операции удобно выполнять с помощью соответствующих функций стандартных библиотек любых систем разработки программного обеспечения, таких как Borland C++ или Microsoft Visual C++.
Однако системным программистам часто требуются более развитые средства управления дисками и файловой системой, чем те, которые обеспечиваются стандартными библиотеками, функциями MS-DOS, и даже функциями BIOS. В отдельных сложных случаях приходится прибегать к недокументированным прерываниям MS-DOS или использовать недокументированные структуры данных, рискуя потерять совместимость разрабатываемой программы с будущими версиями MS-DOS. Например, создание систем защиты от несанкционированного копирования программного обеспечения часто предполагает активное использование недокументированных возможностей MS-DOS.

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

Работа с дисками на физическом уровне
Это самый низкий уровень, применение которого оправдано далеко не всегда. Более того, мы настоятельно рекомендуем не работать с контроллером на уровне портов, если вы точно не знаете, зачем вам это нужно. Большинство задач решается с применением функций MS-DOS или BIOS (даже такие нетрадиционные задачи, как защита от несанкционированного копирования).

Логическая структура диска в MS-DOS
До сих пор при работе с дисками мы не обращались за помощью к MS-DOS, выполняя все дисковые операции либо на уровне команд контроллера НГМД, либо на уровне функций BIOS. Операционная система предоставляет намного более удобные средства для работы с диском, чем обращение к отдельным секторам по их номеру, а также по номеру дорожки и головки .

Файловая система DOS
Заметим, что существует два класса функций для работы с файлами. Первый класс использует управляющие блоки файлов FCB . Эти функции использовались в MS-DOS версий 1.х и имеют в настоящее время чисто исторический интерес. Вам они, скорее всего, никогда не будут нужны, за исключением одного случая - если вам надо составить программу, способную работать под управлением MS-DOS версии 1.0 или 1.1.

Использование функций IOCTL
Мы покажем, как использовать функцию 44h прерывания INT21h для извлечения разнообразной информации об открытых файлах по их идентификатору, для определения момента достижения конца файла, для получения информации о НГМД и НМД и для выполнения таких низкоуровневых операций, как форматирование дорожки диска, чтение или запись секторов диска и т. д.

Защита программ от несанкционированного копирования
Не существует никаких "абсолютно надежных" методов защиты. Можно утверждать, что достаточно квалифицированные системные программисты, пользующиеся современными средствами анализа работы программного обеспечения (отладчики, дизассемблеры, перехватчики прерываний и т. д.), располагающие достаточным временем, смогут преодолеть практически любую защиту. Этому способствует "открытость" операционной системы MS-DOS, которая хорошо документирована и предоставляет любой программе доступ к любым программным и аппаратным ресурсам компьютера

Настройка и оптимизация MS-DOS
Проверьте, насколько сильно фрагментирован ваш диск - фрагментация сильно замедляет работу программ, активно использующих дисковую память. Обновите версию операционной системы MS-DOS до 6.22 - это даст вам дополнительно несколько десятков Кбайт основной оперативной памяти и возможность организации динамической компрессии данных.



Операционная система MSDOS

В настоящее время можно найти уже довольно много книг, посвященных операционной системе MS-DOS. Большинство из них, однако, ограничиваются описанием MS-DOS на уровне пользователя или, в крайнем случае, на уровне прикладного программиста, не затрагивая деталей и тонкостей работы самой операционной системы. Этот подход, безусловно, правомерен и оправдан - пользователей ПЭВМ гораздо больше, чем системных программистов, а более глубокая информация предоставляется в руководствах, поставляемых фирмами и специальных заказных пособиях.
И все же потребность в, казалось бы, специальной информации у нас огромна. Наш программист часто оказывается в очень сложной ситуации: не имея доступа к зарубежной оригинальной литературе, он вынужден разрабатывать специальное программное обеспечение, написание которого требует глубокого знания операционной системы MS-DOS и аппаратных особенностей IBM PC. Можно с уверенностью сказать, что в условиях информационного голода, отсутствия фирменного технического обслуживания и необходимости обеспечения работы самой экзотической аппаратуры каждый прикладной программист вынужден быть немножко системным программистом, знать и уметь больше, чем его западный коллега.
Как известно, спрос рождает предложение, и уже сейчас появились книги под названием "Системное программирование в MS-DOS", в которых описываются, как правило, прерывания MS-DOS и приводятся примеры работы с ними. Такой подход нам кажется полезным только на начальном этапе изучения программирования в MS-DOS.
При написании настоящей книги авторы предполагали, что с прерываниями DOS и BIOS вы уже знакомы достаточно хорошо, либо способны разобраться самостоятельно - для этого существуют как специальные справочные системы типа TechHelp (которая сейчас имеется и на русском языке) или NortonGuide, так и контекстные справочники, являющиеся элементом интегрированных сред программирования (например, QuickAdvisor корпорации Microsoft или справочная система Thelp фирмы Borland International).
Авторы настоящего руководства стремились прежде всего осветить те вопросы, которые практически невозможно найти нигде, кроме как в документации, поставляемой фирмами. В соответствии с этим общеизвестные вещи изложены более кратко. В книге описана, например, структура управляющих блоков MS-DOS, показано, как написать собственный драйвер устройства или правильно работающую резидентную программу. Книга рассчитана на хорошего прикладного программиста, имеющего в своем распоряжении широко распространенную справочную информацию по MS-DOS, который, однако, пришел к необходимости еще более углубить свои знания.
Предполагается, что у вас имеется в распоряжении компьютер, на котором вы в процессе изучения книги можете опробовать приводимые нами примеры и проводить свои собственные исследования.
Все программы транслировались в среде Microsoft Quick C версий 2.01 и 2.5. На прилагаемой дискете находятся исходные тексты программ и некоторые утилиты, описанные в настоящем руководстве. Примеры составлены так, чтобы вы могли без значительных переделок использовать их в своих разработках.
Для тех, кто уже исчерпал документированные особенности MS-DOS, приводятся сведения о наиболее полезных недокументированных прерываниях и управляющих блоках MS-DOS. Изучение недокументированных прерываний и структур данных позволит вам глубже понять внутреннее устройство операционной системы, извлечь такую информацию о состоянии системы, которую трудно, если вообще возможно, получить "законным" способом.

Внутренняя организация MSDOS
Операционная система MSDOS

Команды DOS. Справочное пособие

Команда APPEND
Позволяет программам открывать файлы данных в заданных ката логах (которые называются присоединенными каталогами), как если бы они находились в текущем каталоге.
APPEND [[диск:]маршрут[;...]]            [/X[:ON :OFF]][/PATH:ON /PATH:OFF] [/E]
Не пользуйтесь этой командой при выполнении Windows. Для вывода списка каталогов наберите команду APPEND без параметров. Для отмены присоединенных каталогов пользуйтесь командой APPEND ;.

Команда APPEND

Операционная система Microsoft Windows 3.1 для программиста -том 1

Операционная система Microsoft Windows по своим возможностям не только намного превосходит MS-DOS, но и даже просто не сравнима с MS-DOS. Удобный, хорошо продуманный, а главное, стандартизованный для всех программ Windows пользовательский интерфейс интуитивно ясен и удобен для изучения. Поэтому после появления Microsoft Windows версии 3.0 всего за несколько лет произошла настоящая революция прикладного программного обеспечения персональных компьютеров - практически все основные программные продукты были переделаны для работы в среде Windows. При этом они приобрели свойства и возможности, недостижимые ранее из-за ограничений, накладываемых операционной системой MS-DOS.
Но к сожалению, программирование для Windows - гораздо более трудоемкое и кропотливое занятие, чем программирование для MS-DOS. Это связано, в первую очередь, с обилием новых возможностей. Для создания пользовательского интерфейса и выполнения других задач вам предлагается набор из более чем тысячи функций! Если же вы собираетесь работать с мультимедиа или другими дополнительными подсистемами Windows, набор функций еще больше расширяется.

Основы Microsoft Windows
На помощь программисту приходит объектно-ориентированный подход и наборы классов, поставляемых в комплекте со средствами разработки программ или отдельно. Есть автоматизированные генераторы программ, почти или полностью исключающие программирование на каком бы то ни было процедурном языке. При этом сложность задачи сокращается в десятки и сотни раз, правда, иногда ценой потери эффективности и производительности программы.

Приложение OEM2ANSI
В качестве примера приведем исходный текст приложения OEM2ANSI, выполняющего перекодировку файла из набора OEM в набор ANSI. На примере этого приложения вы узнаете о стандартных средствах Windows, позволяющих выполнять поиск файлов в каталогах и сохранение файлов под заданным именем и в заданном каталоге. Кроме этого вы узнаете о существовании в программном интерфейсе Windows специальных функций, предназначенных для работы с файлами.

Операционная система Microsoft Windows 3.1 для программиста -том 2

Во второй части мы продолжим изучение программного интерфейса Windows. Будут рассмотрены ресурсы, стандартные (предопределенные) классы окон, а также диалоговые панели.
Первая глава посвящена ресурсам. Ресурсы - это данные, которые добавляются в файл загрузочного модуля приложения Windows и могут при необходимости загружаться в оперативную память. Расположение данных в ресурсах приложения позволяет достичь более эффективного использования памяти. Программы MS-DOS были вынуждены загружать, например, строки сообщений, в оперативную память или реализовывать собственную логику для их динамической загрузки из файлов. Для приложений Windows существует более элегантный способ, исключающий перегрузку памяти ненужными данными и избавляющий программиста от необходимости динамической загрузки данных из файлов.

Ресурсы
Физически ресурсы находятся внутри exe-файла приложения. Они могут загружаться в оперативную память автоматически при запуске приложения или по запросу приложения (явному или неявному). Такой механизм обеспечивает экономное использование оперативной памяти, так как все редко используемые данные можно хранить на диске и загружать в память только при необходимости.

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

Приложение DLGCOMBO
Следующее приложение называется DLGCOMBO. Оно создает диалоговую панель, содержащую список "combobox", две кнопки ("OK" и "Cancel") и пиктограмму ( 3.5). С его помощью мы продемонстрируем использование функций, предназначенных для работы с органами управления, расположенными в диалоговой панели