十一、操作系统的进程(最小Linux;fork;execvc和exit)

一、操作系统启动

1、从系统启动到第一个进程

CPU Reset -》Firmware -》BootLoader -》Kernel_start()

(1)操作系统会加载“第一个程序”

如果没有指定启动选项init=,按照“默认列表”尝试一遍

从此之后,Linux Kernel进入后台,成为“中断/异常处理程序”

2、定制最小的Linux

二、进程管理

1、进程管理

(a)创建进程:fork()

复制一个进程

无休止创建进程,在shell可以使用“:”创建一个函数,使用“&”将进程放入后台

(b)进程替换int execve(const char* filename, char* const argv, char* const envp);

将当前运行的进程重置为另一个进程的初始状态

系统执行一个应用,第一条语句就是execve,系统使用该函数实现应用进程实现。

2、终止程序 _exit

立即结束进程 void _exit(int status)

(1)exit(0) stdlib.h中的函数

会调用atexit,atexit(fun)为注册结束函数fun

(2)_exit(0) glib的syscall wrapper

        执行“exit_group”系统调用终止整个进程(所有线程)

        不会调用atexit

(3)syscall(SYS_call, 0)

        执行“exit”系统调用终止当前线程

        不会调用atexit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值