一条shell命令在Linux系统中的执行过程基本上按照如下步骤:
①读取用户由键盘输入的命令行。
②分析命令,以命令名作为文件名,其他参数改造为系统调用execve()内部处理所要求的形式。
③终端进程调用fork()建立一个子进程。
④终端进程本身用系统调用wait4()来等待子进程完成(如果是后台命令,则不等待)。当子进程运行时调用execve(),子进程根据文件名(即命令名)到目录中查找有关文件(这是命令解释程序构成的文件),调入内存,执行这个程序(即执行这条命令)。
⑤如果命令末尾有&号(后台命令符号),则终端进程不用执行系统调用wait4(),而是立即发提示符,让用户输入下一个命令,转步骤(1)。如果命令末尾没有&号,则终端进程要一直等待,当子进程(即运行命令的进程)完成工作后要终止,向父进程(终端进程)报告,此时终端进程醒来,在做必要的判别等工作后,终端进程发提示符,让用户输入新的命令,重复上述处理过程。
(简答题)
简述一条shell命令在Linux系统中的实现过程。
正确答案
答案解析
略
相似试题
(简答题)
简述Linux系统中配置网卡的大致步骤。
(单选题)
在UNIX/Linux系统中,目录结构采用()。
(简答题)
在Linux系统中,为什么要提供VFS?
(单选题)
在UNIX/Linux系统中,特别文件是与()有关的文件。
(简答题)
在UNIX/Linux系统中,如何表示一个文件的存取权限?
(判断题)
在Linux系统中,特别文件是与硬件设备有关的文件。
(单选题)
在UNIX/Linux系统中,用户程序经过编译之后得到的可执行文件属于()。
(简答题)
在Linux系统中,ext2文件系统的构造形式是什么?超级块的作用是什么?
(判断题)
在Linux系统中,常采用单空闲块链接法来实施存储空间的分配与回收。