
1)开放性
Linux的创始人将它共享出来免费供大家使用,也就是我们所说的开源,这个特性让所有使用LInux系统的人可以自行定制所需要的内核模块,因为所有人都可以看到使用系统的源代码,因此不用担心恶意功能或者后门,安全性大大加强,相比于Windows,它出现漏洞只能等待微软的补丁。
2)可定制性
是基于Linux的开放性所延伸出来的特性,由于源代码可见,用户可以根据自己的需求去修改,也使得Linux可以适应不同用户的不同环境,也能轻松的改变自己的行为,能够轻松地与不同的环境整合,因为其特性,诞生了我们离不开的系统,如手机里的安卓系统、电视机机顶盒、ATM机、路由器等,都是基于Linux定制而成。
3)社区支持
现在所有的使用者想要学习或者获取Linux的最新版本,都可以在开源社区找到自己所需要的东西,对于开发过程中遇到的问题,也可以上社区和同行交流寻求帮助。
额........每启动一个进程并不一定要执行fork.fork只是系统最后封装的一个系统调用.你在程序里不使用fork的话.使用其它方式启动进程.就不是fork.fork族里有很多函数...............exec也可替换当前进程......系统内核里生成一个进程用的是clone这个函数.就比如要盖个房子.一个人干,要先挖土再调水泥再摆砖头再盖墙这样一步一步做.但是如果有多个人.就是可以多个人同时做这些事,一个挖土,一个调水泥.一个摆砖头.这样就省了很多时间.进程也是如此.fork的作用就是创建新进程.
这么多人一起盖房子,总不能各自盖各自的,需要大家协调来做.不能土没挖好就摆砖,没放砖就抹水泥一样.这个时候需要一个工头来管理大家.工头通过每个人的名字来指挥每个人干活.进程就通过pid来指挥一个进程干活.工人需要知道自己的工头是谁,好向他报告碰到的情况.进程需要知道自己的父进程是谁报告自己的情况.
这样就明白fork为何要返回进程的id了吧?fork是不会返回父进程的id的.
工头找了一个新工人干活.从工头知道这个新工人的名字时刻开始,新工人就会投入这个团队一起干活了.fork返回pid的时候就表示这个进程在这个进程团队里了.工头可以直接告诉工人要干什么而不会让其他工人误以为这是自己的活.但是程序并没有这么智能.这个时候就需要有一个状态(if(!pid){....这是工人干的活...})表明这个工人的代码从什么位置开始,到什么位置结束.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)