美文网首页
Linux/UNIX 系统编程手册 - 要点记录

Linux/UNIX 系统编程手册 - 要点记录

作者: sakura_na | 来源:发表于2017-10-14 21:44 被阅读12次

    第2章 基本概念
    1、内核态和用户态
    现代处理器架构一般允许CPU至少在两种不同状态下运行,即:用户态和核心态。执行硬件指令可使CPU在两种状态间来回切换。
    与之对应,可将虚拟内存划分为用户空间部分和内核空间部分。
    用户态运行时,CPU只允许访问用户空间的内存,核心态时,用户空间和内核空间都可以访问。
    仅当CPU处于核心态时,才能执行某些特殊操作,如关闭系统等。
    2、进程ID和父进程ID
    每一个进程都有一个唯一的整数型进程标识符(PID)。此外,每一个进程还具有一个父进程标识符(PPID)属性,用以标识请求内核创建自己的进程。
    3、init进程
    系统引导时,内核会创建一个名为init的特殊进程,即“所有进程之父”,该进程的相应程序文件为/sbin/init。
    init进程的进程号总为1,PPID为0,且总是以超级用户权限运行,谁都不能kill init进程,只有关闭系统才能结束。
    4、/proc文件系统
    /proc文件系统是一种虚拟文件系统,以文件系统目录和文件形式,提供一个执行内核数据结构的接口。
    此外,还能通过一组以/proc/PID形式命名的目录查看运行进程的相关信息。

    第3章 系统变成概念
    1、系统调用(syscall)
    系统调用是访问内核的入口,进程可以通过系统调用,请求内核以自己的名义去执行某些动作,如创建进程、I/O等。
    关注一下几点:
    1.1 系统调用将CPU从用户态切换到核心态,以便访问内核内存。
    1.2 系统调用的组成是固定的,即是一个枚举集合,每个系统调用都由一个唯一的数字标识,不过程序是通过系统调用的名称来标识的。
    1.3 每个系统调用都由自己的一套参数,用于传递信息。
    1.4 应用程序通过调用C语言函数库中的外壳(wrapper)函数,来发起系统调用。
    1.5 与用户空间的函数调用相比,系统调用会产生显著的开销。

    相关文章

      网友评论

          本文标题:Linux/UNIX 系统编程手册 - 要点记录

          本文链接:https://www.haomeiwen.com/subject/svifuxtx.html