主要记录关键知识点,方便日后查阅
- 第一章 UNIX基础知识
UNIX体系结构,书中是这样画的:
这篇文章认为这样画不合理https://blog.csdn.net/lyndon_li/article/details/116956043
应该这样,我也赞同
shell是特殊的一种应用程序
errno:在支持多线程的环境中,多个线程共享进程地址空间,每个线程都有属于它自己的局部errno以避免一个线程干扰另一个线程,定义为
extern int __errno_location(void)
#define errno (__errno_location)
时间:
https://blog.csdn.net/aganlengzi/article/details/21888351
进程的三种状态为阻塞、就绪、运行。和上述时间的关系是:
时钟时间 = 处于阻塞状态时间 + 处于就绪状态时间 +处于运行状态时间
用户CPU时间 = 运行状态下用户空间的时间
系统CPU时间 = 运行状态下系统空间的时间。
用户CPU时间+系统CPU时间=运行时间,也就是进程时间(CPU时间)
系统调用和库函数:
https://blog.csdn.net/lht1314tttt/article/details/79150776
2. 第三章 文件I/O
open 返回的文件描述符一定是最小的未用描述符数值
术语不带缓冲指的是每个read和write都调用内核中的一个系统调用
可以参考:https://www.cnblogs.com/bakari/p/5532810.html
举个例子:将键盘输入写入文件,一种不带缓冲的可能需要写一个字就要调用内核,然后通过内核写进磁盘空间;如果带缓冲,则是缓冲区满了之后才会去系统调用
多进程读写同一个文件
可以使用APPEND标志
https://blog.csdn.net/lht1314tttt/article/details/79150776
那多线程同时读写一个文件,是会怎样的,是同一个描述符吗?
第八章 进程控制
解释器文件:https://www.cnblogs.com/beacer/archive/2012/09/16/2687659.html