16-系统调用和 UNIX Shell (pipe; xv6 shell)
16-系统调用和 UNIX Shell (pipe; xv6 shell)
虚拟化,syscall
操作系统对象:文件和设备,
指针只能指向程序的内存空间
指向操作系统对象的指针(就是文件描述符),在linux中everything is a file
访问对象用指针open, close,read/write(解引用),lseek,dup等
复习指针
windows中文件描述符时handle,句柄
管道,IPC
写口,读口
管道是进程之间的同步机制
通信不仅可以用来传送数据,还可以用来同步
匿名管道
1 | pipefd[0] refers to the read end of the pipe. pipefd[1] refers to the write end of the pipe. |
fork复制时,管道也被复制了
指针也完成了浅拷贝
shell连接I/O设备和人
<(command)把命令变成文件
ctrl + z切换后台
jobs查看后台,fg %1切换后台到前台
shell可以调用syscall