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. 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

  • Concurrent CP/M-86 (3.1 лише) з PCMODE — Digital Research CP/M-86-подібна OS з необов'язковим PC DOS емулятором
  • Concurrent DOS — сімейство Digital Research CDOS з вбудованим PC DOS емулятором
  • DOS Plus — урізаний однокристувацький варіант Concurrent PC DOS 4.1-5.0
  • Multiuser DOS — сімейство Digital Research/Novell MDOS включно з Datapac System Manager, IMS REAL/32, etc.
  • NTVDM.EXE для Windows NT
  • DOSEMU для Linux
  • DOSBox

Див. також

  • Виклики BIOS переривань
  • Порівняння операційних систем сімейства DOS
  • DOS/4GW
  • COMMAND.COM

Посилання

  • The x86 Interrupt List (a.k.a. RBIL, Ralf Brown's Interrupt List)
  • ctyme.com - INT Calls by function
  • wustl.edu - Description of MS-DOS services
  • Microsoft MS-DOS Programmer's Reference - The Official Technical Reference to MS-DOS, Microsoft Press, 1993 ISBN 1556155468
  • The MS-DOS Encyclopedia, Microsoft Press, 1988, ISBN 1556151748
  • Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers by Ray Duncan, Microsoft Press, 1988 ISBN 1556151578
  • The Programmer's PC Sourcebook by Thom Hogan, Microsoft Press, 1991 ISBN 155615321X
  • The New Peter Norton Programmer's Guide to the IBM PC & PS/2 by Peter Norton and Richard Wilton, Microsoft Press, 1987 ISBN 1-55615-131-4.
  • IBM PC DOS 7 Technical Update
  • Caldera, Inc. (1997). OpenDOS Developer's Reference Series — OpenDOS Programmer's Guide — System and Programmer's Guide. Printed in the UK, August 1997. Caldera Part No. 200-DOPG-003 ().
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.