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