进程创建

Posted 2135314朱恒志

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程创建相关的知识,希望对你有一定的参考价值。

朱恒志(与最后申请证书的姓名务必一致)+《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

 

操作系统三大功能:

进程管理(最核心最基础)

内存管理

文件系统

 

fork系统调用在父进程和子进程各返回一次

子进程中返回的是0,父进程中返回值是子进程的pid。

以程序中的else if(pid==0)和else都会被执行,它的背后有两个进程,可以利用这一点在用户态创建子进程。

 

fork、vfork和clone三个系统调用都可以创建一个新进程

而且都是通过调用do_fork来实现进程的创建

 

 

实验

cd LinuxKernel  

rm menu -rf

git clone https://github.com/mengning/menu.git

cd menu

mv test_fork.c test.c

make rootfs

技术分享

 

qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S

 

技术分享

 

gdb

file linux-3.18.6/vmlinux

target remote:1234

技术分享

 

以上是关于进程创建的主要内容,如果未能解决你的问题,请参考以下文章

Linux进程控制--进程的创建与终止

golang 进程创建,fork,以及热重启(无缝升级)

创建一个不是创建进程子进程的新进程

第六节 进程的描述和进程的创建

Python并发进程—multiprocessing 模块创建进程

main函数由哪个进程创建?