MS-DOS:修订间差异
跳转到导航
跳转到搜索
无编辑摘要
正义羊-JRJSheep(讨论 | 贡献) 无编辑摘要 |
正义羊-JRJSheep(讨论 | 贡献) 无编辑摘要 |
||
| 第 1 行: | 第 1 行: | ||
{{NavBar|[[首页]] > [[MS-DOS]]}} | |||
{{Infobox operating system | {{Infobox operating system | ||
|title = MS-DOS | |title = MS-DOS | ||
| 第 5 行: | 第 6 行: | ||
|screenshot = MS-DOS-6.22-Demo.png | |screenshot = MS-DOS-6.22-Demo.png | ||
|developer = Microsoft Corporation | |developer = Microsoft Corporation | ||
|source model = 大多数版本闭源;版本 1. | |source model = 大多数版本闭源;版本 1.25、2.11 和 4.00 为开源 | ||
|initial release version = [[QDOS 0.10]] | |initial release version = [[QDOS 0.10]] | ||
|initial release date = 1980-7 | |initial release date = 1980-7 | ||
| 第 11 行: | 第 12 行: | ||
|latest release date = 2000-9-14 | |latest release date = 2000-9-14 | ||
|supported platforms = x86 | |supported platforms = x86 | ||
|kernel type = | |kernel type = 宏内核 | ||
|user interface = 命令行界面 | |user interface = 命令行界面 | ||
|license = 大多数版本为专有;MIT 许可证适用于版本 1. | |license = 大多数版本为专有;MIT 许可证适用于版本 1.25、2.11 和 4.0 | ||
|discontinued = yes | |discontinued = yes | ||
}} | }} | ||
'''MS-DOS''' (Microsoft Disk Operating System) is a monolithic singletasking operating system developed by [[w:Microsoft|Microsoft]] between 1980 and 2000 for [[w:x86|x86]]-based personal computers. It was the ''de facto'' industry standard environment on the IBM PC and its clones, although it also shipped with other x86-based computers that were incompatible with IBM. | '''MS-DOS''' (Microsoft Disk Operating System) is a monolithic singletasking operating system developed by [[w:Microsoft|Microsoft]] between 1980 and 2000 for [[w:x86|x86]]-based personal computers. It was the ''de facto'' industry standard environment on the IBM PC and its clones, although it also shipped with other x86-based computers that were incompatible with IBM. | ||
| 第 41 行: | 第 36 行: | ||
它还包括 DOS 初始化模块 <code>SYSINIT</code>,此模块在引导到 MS-DOS 时由引导扇区调用。该模块初始化 DOS BIOS 和 DOS 内核,解析 <code>CONFIG.SYS</code> 文件,然后继续启动 shell。 | 它还包括 DOS 初始化模块 <code>SYSINIT</code>,此模块在引导到 MS-DOS 时由引导扇区调用。该模块初始化 DOS BIOS 和 DOS 内核,解析 <code>CONFIG.SYS</code> 文件,然后继续启动 shell。 | ||
The DOS BIOS (Basic I/O System) is the lower layer of MS-DOS, which communicates directly with the system's hardware and contains resident device drivers (as opposed to installable drivers, loaded from <code>CONFIG.SYS</code>). This module used to be supplied by an OEM and customized for a particular machine; this practice eventually died out as the market settled on close to 100% IBM-compatible machines. | |||
It also includes the DOS initialization module, <code>SYSINIT</code>, which is invoked by the boot sector when booting into MS-DOS. The module initializes the DOS BIOS as well as the DOS kernel, parses the <code>CONFIG.SYS</code> file and then proceeds to launch the shell. | |||
=== DOS 内核 === | === DOS 内核 === | ||
| 第 46 行: | 第 46 行: | ||
从 [[Windows 9x 中的 MS-DOS|MS-DOS 7]] 开始,内核作为配置文件被合并到 <code>IO.SYS</code> 和 <code>MSDOS.SYS</code>。 | 从 [[Windows 9x 中的 MS-DOS|MS-DOS 7]] 开始,内核作为配置文件被合并到 <code>IO.SYS</code> 和 <code>MSDOS.SYS</code>。 | ||
MS-DOS consists of three main components, the DOS BIOS (<code>IO.SYS</code> or <code>IBMBIO.COM</code>), the DOS kernel (<code>MSDOS.SYS</code> or <code>IBMDOS.COM</code>), and the shell (<code>[[COMMAND.COM]]</code>). This is the same layout as used by [[w:CP/M|CP/M]]. | |||
The DOS kernel is the higher layer of MS-DOS, and provides services including process control, memory management, and file system access. It is equivalent to the Basic Disk Operating System component of [[w:CP/M|CP/M]]. | |||
Process control functionality is very limited due to the system's single-tasking nature. A program can execute another program, although control will not return to the original program until the other program exits. A program can, however, choose to terminate and stay resident (TSR), which leaves a portion of the program present in memory. If the program hooks an interrupt handler before terminating this way, the resident part can get called even when other programs are running, creating an illusion of multitasking. | |||
Memory management allows programs to allocate conventional memory at runtime as needed. It is necessary when multiple programs are loaded to make sure that the active program does not overwrite the data of the other programs. However, as MS-DOS runs in real mode, there is no memory protection and therefore the allocations are not actually enforced, unlike protected mode operating systems. | |||
The kernel implements support for File Allocation Table (FAT) family file systems. The original FAT12 file system was adapted from the file system used by Microsoft Standalone Disk BASIC and used 12-bit cluster indices. In the following versions, it was further improved by adding support for subdirectories and larger volumes, and by extending the FAT to use 16-bit and later 32-bit cluster indices. The file system implementation in the MS-DOS kernel is completely bypassed when running DOS applications under [[Windows for Workgroups 3.11]] or later with 32-bit file access enabled; the VFAT virtual driver that implements the feature was later improved in [[Windows 95]] to support [[w:long file names|long file names]]. | |||
The redirector interface, introduced with MS-DOS 3.1, allows bypassing the FAT file system code to implement a custom file system. This was originally intended to be used by network clients as a means of enabling access to files on other networked computers, although it was eventually also used to implement support for the CD-ROM file system in the Microsoft CD-ROM Extensions (MSCDEX). | |||
Since [[MS-DOS in Windows 9x|MS-DOS 7]], the kernel has been merged into <code>IO.SYS</code>, while <code>MSDOS.SYS</code> serves as a configuration file. | |||
== Source code == | |||
An incomplete copy of the source code for a beta version of [[MS-DOS 6]] leaked online in 2000. A copy of the MS-DOS 3.30 OEM Adaptation Kit, the source kit used by computer vendors to customize MS-DOS for their hardware, has also been uploaded online in the past. | |||
In 2014, the source code of MS-DOS 1.25 (equivalent to PC DOS 1.1) and 2.11 was released via the Computer History Museum for non-commercial purposes.<ref>https://computerhistory.org/blog/microsoft-ms-dos-early-source-code/</ref> Microsoft later re-released the source code on GitHub under the permissive MIT license in 2018. The source code for MS-DOS 1.25 was contributed by Tim Paterson and comes from the Seattle Computer Products OEM version. It includes the source code for SCP's <code>IO.SYS</code> and other SCP tools.<ref>https://www.os2museum.com/wp/pc-dos-1-1-from-scratch/</ref> The files included in the MS-DOS 2.11 source code release come from at least three distinct sources: MS-DOS 2.00 OEM distribution disks, MS-DOS 2.11 source code of unknown provenance and miscellaneous debris such as WordStar 3.20 overlay files.<ref>https://www.os2museum.com/wp/dos-2-11-from-scratch/</ref> | |||
The source code for [[MS-DOS 4|MS-DOS 4.00]] was released in 2024 also under the MIT license,<ref>https://github.com/microsoft/MS-DOS/pull/431</ref> together with a beta version of [[Multitasking MS-DOS 4]] including internal design documents and driver source code.<ref>https://github.com/microsoft/MS-DOS/commit/69417b9befa431b12f495e03d97ae836039a4bbf</ref> | |||
== 历代版本 == | == 历代版本 == | ||