9.4 操作系统和高级编程语言使硬件抽象化
借助操作系统提供的系统调用,程序员无需编写直接控制硬件的程序;使用高级编程语言时,有时甚至无需考虑系统调用,因为操作系统和高级编程语言能使硬件抽象化。
以C语言编写的往文件中写入字符串的应用(代码清单9 - 2)为例,其中fopen()用于打开文件,fputs()用于写入字符串,fclose()用于关闭文件。该应用编译运行后会向MyFile.txt写入“你好”。
文件是操作系统对磁盘媒介空间的抽象。直接操作硬件需指定磁盘扇区位置读写数据,但在代码清单9 - 2程序中,采用文件概念将流程抽象为fopen()、fputs()、fclose()函数操作,未出现扇区相关内容。
代码清单9 - 2中变量fp是fopen()函数返回值,即文件指针。打开文件后操作系统自动申请管理文件读写的内存空间,其地址可由fopen()返回值获取,后续fputs()及fclose()操作通过指定文件指针进行,程序员无需关注管理文件读写内存空间的具体位置。

浙公网安备 33010602011771号