BYTECODES

The Linux Programming Interface读书笔记

The Linux Programming Interface中文名是《Linux/UNIX系统编程手册》,作者Michael Kerrisk,是学习Linux的比较好的一本书。本笔记主要是阅读后基于自己的理解所做的笔记,如果有误,欢迎指出。

第一章 历史和标准

主要介绍Linux, Unix的一些历史及标准,感兴趣的可以自己看看。

第二章 基本概念

  • 操作系统的核心是内核

    • 内核要做的事

      • 进程调度,Linux是抢占式多任务系统,抢占式的意思是进度的调度是由系统决定的。

      • 进程管理

      • 内存管理

        • 提供虚拟内存机制,进程直接无法直接访问另一个进程空间数据,是隔离的

        • 只需要为进程提供它所需要的内存空间即可,这样可以节省资源

      • 文件管理

      • 网络通信:收发数据包,并把数据包路由至目标进程

      • 设备管理

      • 用户系统,即virtual private system,每个用户有自己的目录磁盘空间,每个人都可以使用系统。

    • 内核态和用户态

      • 虚拟内存区域被分成用户空间和内核空间,只有在内核态下,才允许cpu进入内存的内核空间,否则只能使用用户空间。保证用户的进程不会访问内核的指令和数据。

  • The Shell

    • 有多个shell,在unix系统中,shell属于用户进程

    • shell带有基本编程语法,方便执行脚本

  • 用户和组

    • 用户文件/etc/passwd,用户密码通常存在shadow password文件中,用户有id,用户名,使用的shell

    • 用户组/etc/group,有组名,组id, 用户列表

    • 特别的用户root,id是0,可以绕过权限检查

  • 文件

    • 单一root的树形结构

    • 一切都是文件,存放数据或文本的被称为一般文件,还有像设备,管道,socket等也是文件

    • 目录也是文件,目录文件的内容是它下面的文件列表

    • 文件可以创建链接,链接也是文件,硬链接是文件指针。软连接是一个文件,文件存放指向的那个文件路径,软链接和源文件是不同的文件,文件类型也不同,inode号也不同。

    • 文件有权限,分用户、组、其他用户,权限分可读、可写、可执行。但目录的可读意思是可以显示文件列表、可写的意思是可以改变目录的内容(比如修改文件名、添加文件)、可执行的意思是可以访问文件