Linux系统调用之文件IO--内部机制

一、系统调用的逻辑概念

        计算机系统的各种硬件资源是有限的,在多任务操作系统上操作时,同时运行的多个进程都需要访问这些资源,为了更好的管理这些资源进程,将这些进程交给了操作系统来管理,所以用户空间访问内核空间的唯一方式就是通过操作系统,操作系统提供系统调用(System Call)机制来提供接口。在linux中系统调用是用户空间访问内核的唯一手段,除异常和陷入外,他们是内核唯一的合法入口。

        一般情况下应用程序通过应用编程接口API,而不是直接通过系统调用来编程。在Unix世界,最流行的API是基于POSIX(Portable Operating System Interface of UNIX,缩写为 POSIX )标准的。

二、系统调用的一些性质

        1、系统调用函数:open, close, read, write, ioctl等,需要包含头文件unistd.h。
        2、系统调用通常用于底层文件访问,例如在驱动程序中对设备文件的直接访问。
        3、系统调用是操作系统相关的,因此一般没有跨操作系统的可移植性。

三、linux 进程的运行状态

        当应用程序进行系统调用的时候,进程运行状态会发生变化,进程会从运行态变为内核态,当调用完成后,则从内核态变为运行态。

        1、内核态:进程运行在内核空间

        2、运行态:进程运行在用户空间

四、文件IO系统调用的详细过程

        系统调用函数如何进入内核做处理,以下为具体的详细解释步骤:

参考文章:Linux系统调用详解(实现机制分析) - 知乎 (zhihu.com) 

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值