MS-DOS API

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

MS-DOS API це API, який було створено разом з 86-DOS та використовувався у MS-DOS/PC DOS й іншими DOS`осумісними операційними системами. Більшість викликів DOS API відбувається за допомогою програмного переривання 21h (INT 21h). Викликом INT 21h з номером підфункції у AH регістрі процесора й іншими параметрами в інших регістрах звертаються до різних можливостей DOS (клавіатурний увід, відео вивід, файловий доступ до дисків, виконання програм, розподілення памяті та багато інших речей). У пізні 1980-і, DOS розширювачі разом з DPMI дозволяли програмі виконуватися навіть у 16-бітному або 32-бітному захищеному режимі та водночас мати доступ до DOS API.

Історія DOS API[ред.ред. код]

Спочатку DOS API в 86-DOS і MS-DOS 1.0 було розроблено функціонально сумісним з CP/M. Доступ до файлів використовував FCB. DOS API дуже розширилося у MS-DOS 2.0 з декількома Unix ідеями включаючи доступ до файлів за допомогою файлових дескрипторів, ієрархічних директорій та керування У/В пристроїв. У DOS`i 3.1 була додана підтримка network redirector . В MS-DOS 3.31 INT 25h/26h були розширені функціями підтримки жорстких дисків більших за 32 MB. MS-DOS 5 додала підтримку верхньої пам'яті (UMBs). Після MS-DOS 5 було зупинено зміну DOS API для самодостатніх версій DOS.

DOS API та Windows[ред.ред. код]

У Windows 9x, DOS зазвичай використовувався в якості завантажувача операційної системи захищеного режиму та графічної оболонки. Доступ до DOS був з-під (VDM) але також була можливість завантажитися прямо в реальний режим MS-DOS 7.0 без Windows. DOS API було розширене більшою підтримкою інтернаціоналізації та довгими назвами файлів, але остання можливість була наявна лишев VDM. З Windows 95 OSR2, DOS була оновлена до 7.1, до якої додалися підтримка FAT32 та додані функції DOS API для підтримки цього. Windows 98 та Windows ME також містять MS-DOS 7.1 DOS API в Windows ME визначає свою версію як MS-DOS 8.0.

Windows NT та засновані на ній системи (наприклад Windows XP і Windows Vista) не спиралися на MS-DOS, але використовували віртуальну машину, NTVDM, для виконання DOS API. NTVDM працює, виконуючи DOS програми в віртуальному режимі емуляції 8086 (емуляція реального режиму у захищеному режимі присутня в 80386 та вищіх процесорах). NTVDM підтримує DOS 5.0 API. DOSEMU для Linux використовує подібні принципи.

Вектори переривань, що використовуються DOS[ред.ред. код]

Вектор переривання Опис Версія Примітка
20h Закінчити програму 1.0+ Реалізоване в ядрі DOS`а
21h Головне DOS API 1.0+ Реалізоване в ядрі DOS`а
22h Program terminate address 1.0+ Return address in calling program
23h Адреса обробника Control-C 1.0+ Стандартний обробник в командній оболонці(зазвичай COMMAND.COM)
24h Адреса обробника критичної помилки 1.0+ Стандартний обробник в командній оболонці (зазвичай COMMAND.COM)
25h Абсолютне читання з диску 1.0+ Реалізоване в ядрі DOS`а, розширено в DOS 3.31 для підтримки розділів до 2 GB
26h Абсолютний запис на диск 1.0+ Реалізоване в ядрі DOS`а, розширено в DOS 3.31 для підтримки розділів до 2 GB
27h Заверишити програму та залишитись резидентом 1.0+ Реалізовано в COMMAND.COM у DOS 1.0, DOS ядрі в DOS 2.0+
28h Idle callout 2.0+ Викликається ядром DOS`а під час очікування користувацького уводу
29h Швидкий вивід у консоль 2.0+ Реалізовується вбудованим драйвером консолі або заміщаючим драйвером наподобі ANSI.SYS
2Ah Мережа та критичні секції 3.0+ Викликається DOS ядром для взаємодії з мережевим ПЗ
2Bh Не використовується
2Ch Не використовується
2Dh Не використовується
2Eh Reload transient 2.0+ Реалізовано в COMMAND.COM
2Fh Multiplex 3.0+ Реалізовано у DOS ядрі та різних програмах (PRINT, MSCDEX, DOSKEY, APPEND, etc.) залежно від номеру підфункції

Операційні системи з підтримкою MS-DOS API[ред.ред. код]

  • MS-DOS - найбільш поширене втілення
  • PC DOS - IBM OEM версія MS-DOS
  • DR-DOS - родина Digital Research DOS, включно з Novell DOS, PalmDOS, OpenDOS, etc.
  • PTS-DOS - PhysTechSoft & Paragon DOS клон, включаючи S/DOS
  • ROM-DOS - Datalight ROM DOS версія
  • FreeDOS - вільний, із відкритими джерельними кодами клон DOS
  • Windows 95 - містить MS-DOS 7.0
  • Windows 98 - містить MS-DOS 7.1
  • Windows 98 SE - містить MS-DOS 7.1
  • Windows ME - містить MS-DOS 8.0
  • Windows NT (всі версії, окрім 64-бітних)

Програми з підтримкою MS-DOS API[ред.ред. код]

Дивіться також[ред.ред. код]

Посилання[ред.ред. код]