操作系统接口笔记

来源:互联网 发布:zbrush mac 破解教程 编辑:程序博客网 时间:2024/04/29 09:58

       操作系统接口:终端,用户图形接口。

      在终端里输入命令行,由终端调用命令来控制操作系统完成一系列的任务。每个终端都有一个标准输入,输出,和错误输出。当键盘输入时,键盘终端程序处理来自键盘缓冲的数据。交给shell命令解释程序,传递参数,加载相应的命令程序。然后得到的输出结果在输出到显示缓冲池,在屏幕上显示出来。

    每个用户登陆时,系统自动打开一个标准输入,输出字符设备文件。用来存放键盘输入的字符,和屏幕输出的字符。


   在后台运行的命令,标准输入文件会自动变成/dev/null,这是一个空文件,从这里输入得不到任何字符。如果不自动将输入文件变成该文件,后台运行的命令就会默认从标准输入文件读入。这样再运行其他命令的话,输入的字符会作为参数传给后台命令,导致执行混乱。但是,标准输出文件依然是终端的标准输出。所以,后天的运行结果会在终端中显示出来。



 系统调用:

     应用程序只能通过系统调用才能使用系统资源,系统调用的类型主要有:进程管理,文件管理,I/O设备管理,内存管理等。

      1:如何使用系统调用呢~ ,应用程序使用系统调用的唯一方法就是通过中断指令。MS-DOS提供的中断向量为INT 21H。 Linux提供的唯一中断为INT 80H,0,1,3向量为调试中断向量。

          2:在应用程序中通常只调用库函数就可以完成字符串的输入输出,其实是库函数通过系统调用来使用输入输出设备完成的。库函数将这些过程封装起来,供程序员使用。

       3:所有的系统调用都是内部中断形式,在系统调用过程中,库函数将参数,调用向量存放在寄存器当中。当执行到中断向量指令时,系统自动从约定好的寄存器中取出参数,调用中断子程序。


UNIX系统调用过程详解

       1:在执行到中断指令时,首先由硬件实现保护现场数据,包括指令计数器,寄存器,代码指针。压入用户程序核心栈。

       2:再调用由汇编语言写成的一个叫做trap.S的中断管理总程序。该程序中包含了大多数的调用程序入口向量。由该程序将程序的所有寄存器中的信息压入用户核心栈。

       3:trap.S再调用由C语言写成的中断管理程序做进一步的现场信息保护。通过中断管理程序中的中断向量调用相应的中断服务程序。 












0 0