我在使用ubuntu系统,然后写了一段代码,fork一个子进程。然后我用ps -el命令查看主进程和子进程的pid号。惊奇的发现主进程已经不存在,子进程的ppid是一个init进程的pid,而这个init的pid并不是1。 查找原因后,...
分类:
编程语言 时间:
2015-03-06 12:51:40
阅读次数:
245
1 linux系统启动和引导
linux的启动过程为:计算机执行BIOS代码,确认加载并启动内核,内核检测系统的硬件,产生系统的init进程,这个进程总是PID 1;系统必须检查并安装文件系统,而且系统的守护进程必须启动,这些步骤由init进程按照顺序运行一系列rc(run
commond)文件脚本
综上,linux典型的引导过程由6个不同的阶段组成。...
分类:
系统相关 时间:
2015-02-27 10:06:15
阅读次数:
192
Linux系统启动的过程大概可以分为5步:
1、首先加载Linux系统的内核文件,也就是boot首先读取/boot目录下的内核文件;
2、第二步是,运行Linux下的init进程,这个进程是所有进程的起点,这个进程程序就是/etc/inittab这个文件;
Linux系统有7个运行级别(runlevel):
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能...
分类:
系统相关 时间:
2015-02-20 09:44:55
阅读次数:
195
孤儿进程与僵尸进程孤儿进程: 如果父进程先退出,子进程还没退出那么子进程的父进程将变为init进程。(注:任何一个进程都必须有父进程)//生成孤儿进程
int main(int argc, char *argv[])
{
pid_t pid = fork();
if (pid < 0)
err_exit("fork error");
else if (p...
分类:
系统相关 时间:
2015-02-18 11:55:40
阅读次数:
260
init模块 一般来说,Linux程序只能用另一个Linux程序启动。例如,登录Linux终端程序Mingetty。但终端程序又由谁启动呢?在计算机上启动Linux时,内核装入并启动init程序。然后init程序装载硬盘和启动终端程序。登录终端程序时,它启动命令行界面Shell。在计算机上启动Li....
分类:
系统相关 时间:
2015-02-17 22:15:54
阅读次数:
160
开机启动的流程基本为主板去找硬盘,硬盘通过mbr去找内核,内核去看硬件在什么环境启动,然后就是执行各个程序的启动脚本,最后启动登录程序加载BIOS找启动的硬件设备读取MBR中的bootloader信息BootLoader加载内核内核检测用户的运行级别并准备硬件环境init进程执行rc.sysinit..
分类:
系统相关 时间:
2015-02-16 19:47:30
阅读次数:
312
Android系统启动过程首先Android框架架构图:(来自网上,我觉得这张图看起来很清晰) Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用。启动的过程如下图所示:(图片来自网上,后面有地址) 下面将从Android4.0源码中,和网络...
分类:
移动开发 时间:
2015-02-09 20:11:01
阅读次数:
188
转载! Init是linux kernel启动的第一个进程,理解init,对熟悉android系统非常重要。Android的每个目录下面都有一个非常重要的文件Android.mk,负责编译该目录下面的代码。 System/core/init/android.mk[cpp]view plaincopy...
分类:
移动开发 时间:
2015-02-06 18:46:02
阅读次数:
256
其实与android开机动画启动流程基本一模一样。除了文件换了位置,就是添加了一些函数。
内核起来后会启动第一个进程,即init进程。
init进程会根据init.rc配置启动surfaceflinger进程。
service surfaceflinger /system/bin/surfaceflinger
class mai...
分类:
移动开发 时间:
2015-01-27 20:23:34
阅读次数:
1301
本文将介绍如何构建一个最简单的根文件系统,并且初步分析内核如何执行第一个内核程序。 挂接根文件系统 在挂接根文件系统之前,需要制作根文件系统。根文件系统里面需要一些基本的命令,目录和设备文件,下面来介绍如何使用busybox来制作根文件系统。 我们都知道,init进程是系统启动后执行的第一个应用程序...
分类:
其他好文 时间:
2015-01-20 23:46:43
阅读次数:
466