diff --git a/os/2_os_structure/linux_vs_windows.md b/os/2_os_structure/linux_vs_windows.md index 2e415c39..0b591cf4 100644 --- a/os/2_os_structure/linux_vs_windows.md +++ b/os/2_os_structure/linux_vs_windows.md @@ -38,7 +38,7 @@ Windows 基本占领了电脑时代的市场,商业上取得了很大成就, - 内核空间,这个内存空间只有内核程序可以访问; - 用户空间,这个内存空间专门给应用程序使用; -用户空间的代码只能访问一个局部的内存空间,而内核空间的代码可以访问所有内存空间。因此,当程序使用用户空间时,我们常说该程序在**用户态**执行,而当程序使内核空间时,程序则在**内核态**执行。 +用户空间的代码只能访问一个局部的内存空间,而内核空间的代码可以访问所有内存空间。因此,当程序使用用户空间时,我们常说该程序在**用户态**执行,而当程序使用内核空间时,程序则在**内核态**执行。 应用程序如果需要进入内核空间,就需要通过系统调用,下面来看看系统调用的过程: diff --git a/os/4_process/process_commu.md b/os/4_process/process_commu.md index 18300d91..c2c18cda 100644 --- a/os/4_process/process_commu.md +++ b/os/4_process/process_commu.md @@ -100,7 +100,7 @@ int pipe(int fd[2]) 我们可以得知,**对于匿名管道,它的通信范围是存在父子关系的进程**。因为管道没有实体,也就是没有管道文件,只能通过 fork 来复制父进程 fd 文件描述符,来达到通信的目的。 -另外,**对于命名管道,它可以在不相关的进程间也能相互通信**。因为命令管道,提前创建了一个类型为管道的设备文件,在进程里只要使用这个设备文件,就可以相互通信。 +另外,**对于命名管道,它可以在不相关的进程间也能相互通信**。因为命名管道,提前创建了一个类型为管道的设备文件,在进程里只要使用这个设备文件,就可以相互通信。 不管是匿名管道还是命名管道,进程写入的数据都是缓存在内核中,另一个进程读取数据时候自然也是从内核中获取,同时通信数据都遵循**先进先出**原则,不支持 lseek 之类的文件定位操作。