MS-DOS API

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

MS-DOS 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[en]. DOS API дуже розширилося у MS-DOS 2.0 з декількома Unix ідеями включаючи доступ до файлів за допомогою файлових дескрипторів, ієрархічні директорії та керування пристроями вводу/виводу. У DOS 3.1 була додана підтримка network redirector . В MS-DOS 3.31 INT 25h/26h були розширені функціями підтримки жорстких дисків більших за 32 MB. MS-DOS 5 додала підтримку верхньої пам'яті (UMA). Після 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 (включно з версією 98 SE) — містить MS-DOS 7.1
  • Windows ME — містить MS-DOS 8.0
  • Windows NT (всі версії, окрім 64-бітних)

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

Див. також[ред. | ред. код]

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