Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';switch\u root和run\u init之间的区别是什么?_C_Linux_Embedded Linux_Busybox - Fatal编程技术网

什么';switch\u root和run\u init之间的区别是什么?

什么';switch\u root和run\u init之间的区别是什么?,c,linux,embedded-linux,busybox,C,Linux,Embedded Linux,Busybox,switch\u root和run\u init之间有什么区别,除了switch\u root是由busybox制作的,而run\u init来自klibc 非常感谢它们执行完全相同的功能,即从一个。它们都假设应该成为根目录的文件系统已经挂载在某个目录上,并以此作为参数 (initramfs是(通常)由引导加载程序加载的临时内存文件系统。它的目的是在装入实根目录并切换到实init程序之前执行可能需要的任何设置。) 可以找到runinit的最新源代码run_init()是入口点(从解析参数的run

switch\u root
run\u init
之间有什么区别,除了
switch\u root
是由
busybox
制作的,而
run\u init
来自
klibc


非常感谢

它们执行完全相同的功能,即从一个。它们都假设应该成为根目录的文件系统已经挂载在某个目录上,并以此作为参数

(initramfs是(通常)由引导加载程序加载的临时内存文件系统。它的目的是在装入实根目录并切换到实
init
程序之前执行可能需要的任何设置。)

可以找到
runinit
的最新源代码
run_init()
是入口点(从解析参数的run init.c调用)

可以找到
开关\u root
的最新源代码<代码>开关\u root\u main()是入口点


这两种实现的代码都很短(虽然有点棘手),这使得用肉眼比较它们很容易。唯一的区别似乎是它们执行的健全性检查稍有不同,而最新版本的
run init
execv()
之前有一个额外的选项来删除所选的
功能(7)
,奇怪的是,在使用新的
init

时,我发现了一些旧的功能,在klibc中将
run_init
重命名为
switch_root
。不知道他们为什么不在。你还有什么想知道的吗?非常感谢@Ulfalizer