2013-02-02 60 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。