linux 0号进程 1号进程 区别(转)
系统允许一个进程创建新进程,新进程即为子进程,子进程还可以创建新的子进程,形成进程树结构模型。整个linux系统的所有进程也是一个树形结构。树根是系统自动构造的,即在内核态下执行的0号进程,它是所有进程的祖先。由0号进程创建1号进程(内核态),1号负责执行内核的部分初始化工作及进行系统配置,并创建若干个用于高速缓存和虚拟主存管理的内核线程。随后,1号进程调用execve()运行可执行程序init,并演变成用户态1号进程,即init进程。它按照配置文件/etc/initab的要求,完成系统启动工作,创建编号为1号、2号...的若干终端注册进程getty。
每个getty进程设置其进程组标识号,并监视配置到系统终端的接口线路。当检测到来自终端的连接信号时,getty进程将通过函数execve()执行注册程序login,此时用户就可输入注册名和密码进入登录过程,如果成功,由login程序再通过函数execv()执行shell,该shell进程接收getty进程的pid,取代原来的getty进程。再由shell直接或间接地产生其他进程。
上述过程可描述为:0号进程->1号内核进程->1号用户进程(init进程)->getty进程->shell进程
注意,上述过程描述中提到:1号内核进程调用执行init并演变成1号用户态进程(init进程),这里前者是init是函数,后者是进程。两者容易混淆,区别如下:
1.init()函数在内核态运行,是内核代码
2.init进程是内核启动并运行的第一个用户进程,运行在用户态下。
3.一号内核进程调用execve()从文件/etc/inittab中加载可执行程序init并执行,这个过程并没有使用调用do_fork(),因此两个进程都是1号进程。
转自:http://qhwang.blogbus.com/logs/46874366.html,且做了一定修改
相关文档:
需求
:
把88E6131交换芯片的
sdk移植到现有嵌入式
linux系统中,使得以后能通过上层函数在对交换芯片进行配置操作(如
lan配置)。
已知条件:
*有交换芯片的文档
,sdk源码
,例子
,无针对现有系统的直接解决方案
.
实现方法概述:
* 编译 ......
一、Linux
查看cpu信息:
[junjie2@ljj ~]$ cat /proc/cpuinfo
二、Freebsd
dmesg 最简单的方法
freebsd# cat /var/run/dmesg.boot |grep CPU 可以查看 cpu信息
sysctl hw.model 看cpuid
sysctl machdep.tsc_freq 看cpu频率
# sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'
# dmesg | grep -i cpu ......
一、引言:
本文档的内容大部份内容都是从网上收集而来,然后配合一些新的截图(内核版本:V2.4.19)。在每一配置项后会有一个选择指南的部份,用来指导大家怎么样根据自己的情况来做相应的选择;还有在每一个大项和文档的最后会有一个经验谈,它是一些高手们在应对问题和处理特有硬件时的一些经验(这个还� ......
由于我在网上下载了Ubuntu Linux来安装发现手头没空白光盘刻录cd,所有google了下找到了如下文章进行实践. ===================教程1========================== 说到安装操作系统,大多数人熟悉的是从光盘引导,其实从很多存储设备都可以实现系统引导的。由于Linux操作系统的发布很多,而多数人都是通过网络下载操作系统� ......
GCC
目前,GCC(GNU Compiler Collection)是社区最好的编译器。GCC也就是以前的GNU C编译器(GNU C Compiler),是由egcs筹划指导委员会维护,他们的目标是让GCC成为标准的C编译器。1999年中,egcs和GCC工程合并为一个编辑器套装,同年10月发布GCC 2.95.2。
GCC是一个编 ......