在linux0.1.1内核中,系统从main函数执行开始到达到“怠速”状态,主要的工作分为三个部分:
1、创建进程0,并让进程0具备在32位保护模式下在主机中运算的能力;
2、以进程0为母本创建进程1,使进程1不仅具有进程0的能力,还有以文件方式与外设进行数据交互的能力;
3、以进程1为母本创建进程2,使进程2在拥有进程1全面能力和环境的情况下,进一步具备支持人机交互的能力,最终实现“怠速”。
(ps:道生一,一生二,二生三,三生万物 是不是就是这种感觉?)
按照规则,除了进程0,其他所有的进程都应该是由父进程在用户态下完成创建的,所以为了遵守这个规则,进程0要先变成用户态才能创建进程1,方法就是调用move_to_user_mode()函数。
#define move_to_user_mode() /
__asm__ ( "movl %%esp,%%eax/n/t" /
"pushl $0x17/n/t" /
"pushl %%eax/n/t" /