Har*_*dik 7 linux linux-kernel
我在互联网上搜索了第一个在系统启动时执行的进程.
我发现了两个答案,这是init
和sched
.真的是什么?
哪个先执行?sched
过程或init
过程?
Sev*_*its 13
通常,它是init
进程,其路径被硬编码到内核本身.init
执行非常低级别的功能,例如从upstart
Ubuntu(15.40之前)开始,或者systemd
在Ubuntu 15.04及更高版本的情况下,Arch,Fedora等,它们加载剩余的进程和设置.请注意,系统在init
运行时未完成启动- 这是一种常见的误解.实际上,init
设置登录屏幕和其他相关任务.这是WikiPedia页面init
:https://en.wikipedia.org/wiki/Linux_startup_process#SysV_init
Init是所有进程的父亲.它的主要作用是从存储在文件/ etc/inittab中的脚本创建进程.此文件通常具有导致init在用户可以登录的每一行上生成gettys的条目.它还控制任何特定系统所需的自治进程.运行级别是系统的软件配置,其仅允许存在选定的一组进程.init为每个运行级别生成的进程在/ etc/inittab文件中定义.
但是,Linux内核确实启动了调度程序,但它不在用户空间中,这是大多数人关联的进程的主页.此外,/bin/sh
如果init
缺少或无法调用Bourne Shell(),则可以替换它.理论上,您还可以使用init=*some path here*
Linux内核引导选项将其替换为任何可执行文件.
它的sched
,按3.13的Linux 启动内核()首先调用sched_init()并运行第一个用户空间进程init即rest_init()创建一个内核线程通过另一个函数kernel_init()作为入口点和内核转入怠速除非调用.
start_kernel() {
...
sched_init();
rest_init(); calls function kernel_init();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13181 次 |
最近记录: |