起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > linux系统中fork和exec是什么?老男孩linux云计算SRE课程

linux系统中fork和exec是什么?老男孩linux云计算SRE课程

时间:2023-01-03 17:12:10来源:未知 作者:老男孩教育 已有: 名学员访问该课程

  快捷搜索:

前言:在学习任何技术的时候,很多人经常会因为搞不懂专业术语而犯愁,甚至也经常因为两个相似的专业术语摸不着头脑,比如:Linux中fork和exec。fork和exec都是和进程相关的调用,而且都运行相同的程序。那么Linux中fork和exec有什么区别?详细内容请看下文。 fork 调用fork可以创建一个新的进程称为子进程,调用

  在学习任何技术的时候,很多人经常会因为搞不懂专业术语而犯愁,甚至也经常因为两个相似的专业术语摸不着头脑,比如:Linux中fork和exec。fork和exec都是和进程相关的调用,而且都运行相同的程序。那么Linux中fork和exec有什么区别?详细内容请看下文。

linux系统中fork和exec是什么?老男孩linux云计算SRE课程_www.epx365.cn

  fork

  调用fork可以创建一个新的进程称为子进程,调用fork函数的进程称为父进程,子进程的所有内容都和父进程相同,除了pcd,如果这两个进程都没有对内存做写操作的话,那么两个进程共享调用fork函数的进程的内存页,这样表面上看fork创建进程比exec创建进程快。但只要两个进程其中一个对内存做了修改,那么在修改之前,就会把内存页复制一份给子进程用。

  exec

  调用exec创建进程,实际上不是创建进程,更准确的说是加载可执行文件,调用exec后会把exec中指定的可执行文件加载到调用exec的进程的空间内,并把调用exec的进程的内存更新为exec中指定的可执行文件的内容。

  区别:

  fork主要是Linux用来建立新的进程而设计的,exec()系列函数则是用来指定的程序替换当前进程的全部内容。因此exec()系列函数常常在前三个函数使用以后调用,来建立一个全新的程序运行环境。Linux用init进程启动其余进程的过程通常都是这样的。

  fork是最简单的调用,不须要任何参数,仅仅是在建立一个子进程并为其建立一个独立于父进程的空间。

  我们用fork函数创建新进程后,经常会在新进程中调用exec函数去执行另外一个程序。当进程调用exec函数时,该进程被完全替换为新程序。因为调用exec函数并不创建新进程,所以前后进程的ID并没有改变。

  父进程通过fork()的方式产生一个一模一样的子进程,创建出来的子进程再以exec函数的方式来执行其实际要执行的进程,最终就成为一个可以执行某些特定功能的子进程。

  一个进程一旦调用exec类函数,它本身就死亡了,系统把代码段替换成新的程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是进程号,也就是说,对系统而言,还是同一个进程,不过已经是另一个程序了。即调用exec族函数后,其后面的程序都不会在执行了。

  老男孩教育Linux运维云计算课程汇集了虚拟化、云计算、安全攻防、Python开发、SRE等技术,课堂效率高、内容丰富全面,由浅入深,循序渐进,帮助学员稳扎稳打,夯实基础,在有限的时间内帮助学员高效提升,成为符合企业需求的技术型人才。

文章出自:http://qh.itpxw.cn/peixun/software/2023150208.html

文章标题:linux系统中fork和exec是什么?老男孩linux云计算SRE课程



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
老男孩教育 访问该机构站点 报名留言 加为好友 用户等级:高级会员 用户级别:0 机构名称:老男孩教育 联 系 人:任女士 联系电话:18710030740 联系手机:18710030740 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件:768386696@qq.com 网站域名:https://www.oldboyedu.com/ 注册时间:2019-03-20 15:03 最后登录:2023-02-02 13:02
推荐内容