处理器)。所以,在使用CP/M系统的计算机中,程序对硬件访问是通过CP/M来实现的。
如果没有标准的API,程序必须根据不同型号的计算机进行相应的修改后,才能访问硬件。
CP/M是8080中非常流行的操作系统,曾经辉煌一时,至今仍有重要的历史意义。16 位操作系统 QDOS( Quick and Dirty Operating System )的开发在很多方面都借鉴了 CP/M的思想。QDOS当初是专为英特尔公司的16位8086和8088芯片而设计的,它出自西雅图计算机产品公司(Seattle computer product)的提姆·帕特森之手。QDOS 系统被微软公司注册后更名为86-DOS。1981年,随着IBM第一代PC诞生,微软公司也将86-DOS更名为 MS-DOS(Microsoft Disk Operating System),并以此名授权给 IBM 公司用作第一代个人计算机的操作系统。这就是著名的MS-DOS系统,在现在的计算机中也会经常看到它的身影。虽然16 位版本的 CP/M(称为 CP/M-86)也可用于IBM PC,但由于MS-DOS的影响力更大,其很快成为了标准。其他生产IBMPC兼容机的厂商也被授权使用MS-DOS(在 IBM计算机上称为 PC-DOS)系统。
CP/M的文件系统在MS-DOS 没有被继续使用,在MS-DOS 中,文件系统是以文件分配表(FAT,File Allocation Table的简写)的形式来组织的,Microsoft 公司早在1977年就开始使用FAT了。FAT的基本思想是:将磁盘空间分成簇(cluster)——簇的大小由磁盘空间的大小来决定—从512字节到16K字节不等,每个文件占用若干簇。文件的目录项只记录文件起始(starting)簇的位置,而磁盘上每一簇的下--簇的位置由FAT来记录。
每个目录项在MS-DOS磁盘上占用32字节,其命名形式跟CP/M上的8.3形式--样,只是使用的术语有些区别:最后的三个字符称做文件扩展名,而非CP/M中的文件类型。MS-DOS目录项中没有包含分配块列表,它主要包含如下所示的有用信息:文件的最后修改的日期、时间和文件的大小等。
实际上,MS-DOS的早期版本与 CP/M在结构上很类似,只是IBM PC 本身在ROM中已经包含了一套完整的 BIOS了,所以在MS-DOS 中不再需要 BIOS。在MS-DOS 中,命令处理器是一个命名为COMMAND.COM的文件。MS-DOS 有两种运行程序:一是以COM为扩展名的文件,其大小不能超过64KB,二是更大一些的程序,以EXE(意思是可以被执行)为文件的扩展名,表明文件本身是可执行的。
尽管 MS-DOS 起初支持 API 函数的 CALL 5 接口,但不久 Microsoft 为新的程序重新设计了一款新的接口。这个新的接口使用了8086的一个称为软件中断(software interrupt)的功能,说起软件中断,它与子程序调用很类似,只不过程序不必知道它所调用的子程序的确切地址。通过执行INT21h这条指令,程序可以调用MS-DOS的API功能。
22 操作系统
361