摘要:进程是一个动态的实体,所以他是有生命的。从创建到消亡,是一个进程的整个生命周期。在这个周期中,进程可能会经历各种不同的状态。一般来说,所有进程都要经历以下的3个状态: 就绪态。指进程已经获得所有所需的其他资源,正在申请处理处理器资源,准备开始执行。这种情况下,称进程处于就绪态。 阻塞态。指进程因为需要等待所需资源而放弃处理器,或者进程本不拥有处理器,且其他资源也没有满足,从而即使得到处理器也不...
阅读全文
随笔分类 - Linux内核点滴
摘要:init进程调用的init函数1、setup((void*)&drive_info);a.setup函数用的是main.c中Line 25的inline _syscall1(int,setup,void *,BIOS),_syscall1()函数调用来自于include/unistd.h中的Line 1461 #define_syscall1(type,name,atype,a)\2 ty...
阅读全文
摘要:1 #include<unistd.h>;2 #include<sys/types.h>;3 4 main()5 {6 pid_tpid;7 pid=fork();8 9 if(pid<0)10 printf("errorinfork!");11 elseif(pid==0)12 printf("iamthechildprocess,myprocessidis%d\n...
阅读全文
摘要:读Linux内核中的vsprintf函数的时候遇到了C语言的可变参数调用,查了挺多资料还是这篇比较详细,而且自己验证了下,确实如此 (一)写一个简单的可变参数的C函数 下面我们来探讨如何写一个简单的可变参数的C函数.写可变参数的 C函数要在程序中用到以下这些宏: void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list a...
阅读全文
摘要:自从进入安全模式之后,CPU的寻址能力从1M一下子扩展到4G,物理地址=段基址(CS)*16+偏移地址(IP)的日子一去不复返了;可以想象,从这个时候的内存的初始化也就成为一个关键步骤。那么、内核究竟是怎么做的呢?下面的代码就是这个时候内核代码, .#define RAMDISK 32 /*这个定义是我特意加上去的,原代码中无此定义*/#define ORIG_ROOT_DEV (*(unsign...
阅读全文

浙公网安备 33010602011771号