2013-02-02 37 views
1

我使用的是过去几个月的linux,而这种怀疑闪现。 是否可以在不使用任何shell的情况下与linux内核进行通信。无内核与内核通信

回答

2

您可以直接通过syscall函数从代码与Linux内核进行通信,另请参阅sycalls。然而,这些很少直接使用,通常它们通过glibc的包装函数被调用。

+2

特别是,你不需要任何shell。内核启动'/ sbin/init'程序(目前通常不是shell),并且'init'程序可以在没有任何shell的情况下启动其他程序(带'fork','execve' ...)。一个shell只是一个使用系统调用来启动其他程序的应用程序。有关更多信息,请参见http://advancedlinuxprogramming.com/ –

1

这取决于你的意思是“与Linux内核沟通”。

你可以很容易地编写一个程序来读/写设备节点,或者调用ioctl或者你有什么,然后编写程序 - 在这种情况下,程序正在与没有shell的内核进行通信。如果你想能够交互地使用系统,那么你将需要一些工具来与文件系统和内核创建的设备节点进行交互,并且该工具就是shell。