Closed leo-frank closed 3 years ago
可能是不是sh程序没有更新?在更改了syscall的编号后,需要重新编译用户程序并生成文件镜像
在init.c和sh.c有通过dev函数调用sys_dev,这个系统调用只是用来将console设备绑定到0,1,2三个文件描述符。图中的情况应该是shell不能正确地从console设备读取从而导致退出,而init进程则会重启shell,导致死循环。您需要将init和sh重新编译并存入文件镜像或SD卡中,如 @retrhelo 所描述。
感谢
我修改了内核里的SYS_dev为50(原来为23),结果内核启动不了了。
我觉得可能是内核哪里隐含的调用了sys_dev。我进行了一些寻找,但是没有找到,我也尝试了在initcode中寻找,也没有找到。 请问这是怎么回事?谢谢!