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号也不同。
文件有权限,分用户、组、其他用户,权限分可读、可写、可执行。但目录的可读意思是可以显示文件列表、可写的意思是可以改变目录的内容(比如修改文件名、添加文件)、可执行的意思是可以访问文件