当前课程知识点:Linux操作系统分析 > 第六周:进程的描述和进程的创建 > 2.进程的创建 > 外部链接
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char * argv[]) { int pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr,"Fork Failed!"); exit(-1); } else if (pid == 0) { /* child process */ printf("This is Child Process!\n"); } else { /* parent process */ printf("This is Parent Process!\n"); /* parent will wait for the child to complete*/ wait(NULL); printf("Child Complete!\n"); } }
err = arch_dup_task_struct(tsk, orig);
要给新进程分配一个新的内核堆栈
ti = alloc_thread_info_node(tsk, node);
tsk->stack = ti;
setup_thread_stack(tsk, orig); //这里只是复制thread_info,而非复制内核堆栈
*childregs = *current_pt_regs(); //复制内核堆栈
childregs->ax = 0; //为什么子进程的fork返回0,这里就是原因!
p->thread.sp = (unsigned long) childregs; //调度到子进程时的内核栈顶
p->thread.ip = (unsigned long) ret_from_fork; //调度到子进程时的第一条指令地址
-1 存储程序计算机工作模型
--Video
-1 存储程序计算机工作模型--作业
-2 32位X86汇编基础
--Video
--Video
--Video
--Video
--外部链接
--Video
--外部链接
-2 32位X86汇编基础--作业
-3 汇编一个简单的C程序
--Video
--外部链接
--Video
--Video
--外部链接
-单元测验--作业
-实验作业
--外部链接
-随堂小测--作业
-1 函数调用堆栈
--Video
--html
--Video
--Video
--外部链接
-2 借助Linux内核部分源代码模拟存储程序计算机工作模型及时钟中断
--Video
--外部链接
--Video
--外部链接
-3 构造一个简单的操作系统内核
--Video
--Video
--Video
-4 单元测验--作业
-实验作业
--外部链接
-随堂小测--作业
-1 Linux内核源代码导读
--Video
--外部链接
-2 构造一个简单的Linux系统
--Video
--外部链接
-3 跟踪调试Linux内核的启动过程
--Video
--外部链接
--Video
--外部链接
-4 单元测验--作业
-实验作业
--外部链接
-随堂小测--作业
-1 使用库函数触发一个系统调用
--Video
--Video
--Video
-2 C代码中嵌入汇编代码的写法
--Video
-3 使用嵌入式汇编代码触发同一个系统调用
--Video
-单元测验--作业
-实验作业
--外部链接
-随堂小测--作业
-给MenuOS增加time和time-asm命令
--Video
-使用gdb跟踪系统调用内核函数sys_time
--Video
-系统调用在内核代码中的处理过程
--Video
--Video
--Video
-单元测验--作业
-实验作业
--外部链接
-随堂小测--作业
-1.进程的描述
--Video
--外部链接
--Video
--外部链接
-2.进程的创建
--Video
--外部链接
--Video
--Video
--Video
--Video
-单元测验--作业
-实验作业
--外部链接
-随堂小测--作业
-1 预处理、编译、链接和目标文件的格式
--Video
--外部链接
--Video
--外部链接
--Video
--外部链接
-2 可执行程序、共享库和动态链接
--Video
--外部链接
--Video
--外部链接
-3 可执行程序的装载
--Video
--外部链接
--Video
--外部链接
--Video
--Video
--Video
-单元测验--作业
-实验作业
--外部链接
-随堂小测--作业
-1 进程切换的关键代码switch_to分析
--Video
--外部链接
--Video
--外部链接
-2 Linux系统的一般执行过程
--Video
--外部链接
--Video
--外部链接
--Video
-3 Linux系统架构和执行过程概览
--Video
--Video
--Video
-单元测验--作业
-实验作业
--外部链接
-随堂小测--作业
-客观题部分--作业
-主观题部分
--外部链接
-主观题部分--作业