超详细|一篇搞定操作系统——用户接口

操作系统全家桶:传送门
一、操作系统引述:https://blog.csdn.net/diviner_s/article/details/108829327
二、处理器管理:https://blog.csdn.net/diviner_s/article/details/108940809
三、存储器管理:https://blog.csdn.net/diviner_s/article/details/112245241
四、设备管理:https://blog.csdn.net/diviner_s/article/details/112250905
五、文件管理:https://blog.csdn.net/diviner_s/article/details/112253441
六、用户接口:https://blog.csdn.net/diviner_s/article/details/112255959

6.1 用户接口

一、用户接口的发展

  • 早期操作系统对外提供的接口很简陋,功能也单一,包括脱机的作业控制语言(或命令)和联机的键盘操作命令。
  • 在分时系统出现后 ,不仅为程序员提供编程服务的系统调用,而且提供功能强大的命令行接口。在一维空间运行。
  • 图形用户接口(常称做图形界面),它是二维空间界面。
  • 现在有不少游戏软件在三维硬件显示卡的支持下实现三维动画效果。

二、用户接口类型

  • 1、程序接口(系统调用接口)
  • 2、命令接口(操作接口)
    • 1)联机用户接口(交互式命令接口)
      命令方式:命令行方式、批处理方式
      图形界面方式
    • 2)脱机用户接口(批处理命令接口)
      作业控制语言/命令
      作业控制说明书

三、程序接口

  • 1、系统调用:是操作系统提供的、系统与用户程序之间的接口,是操作系统提供给程序员的接口,一般位于操作系统核心的最高层。
    • 从感觉上系统调用类似于过程调用,都由程序代码构成,使用方式相同 — 调用时传送参数。
    • 两者有实质差别:过程调用只在用户态下运行,不能进入核心态;而系统调用可以实现从用户态到核心态的转变。
    • 系统调用可分为5个类别:进程控制、文件管理、设备管理、信息维护和通信。

2、库函数:它们本身并不属于操作系统的内核部分,而且运行在用户态下。库函数涉及文件管理、状态信息、文件修改、程序设计语言的支持、程序装入和执行、通信等方面内容。

  • UNIX/Linux系统中系统调用与库函数之间的关系:
    在这里插入图片描述

3、系统调用使用方式:在UNIX/Linux系统中,系统调用和库函数都是以C函数的形式提供给用户的,它有类型、名称、参数,并且要标明相应的文件包含。open系统调用可以打开一个指定文件,其函数原型说明如下:

			#include <sys/types.h>
            #include <sys/stat.h>
            #include <fcntl.h>
            int open(const char *path, int oflags);

不同的系统调用所需要的头文件(又称前导文件)是不同的。下例程序利用fork( )创建子进程,利用getpid( )和getppid( )分别获得进程的PID和父进程PID,使用sleep( )将相关进程挂起几秒钟。

#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <errno.h>
int main(int argc,char **argv)
{
      pid_t pid,old_ppid,new_ppid;
    pid_t child,parent;
    parent=g
  • 13
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值