Execute shell command in kernel module

前端 未结 3 879
半阙折子戏
半阙折子戏 2021-02-10 03:18

Is it possible to execute shell command in kernel module. I know that we can do it in user space C code using system subroutine.
I am debugging a kernel module

相关标签:
3条回答
  • 2021-02-10 03:46

    You can use call_usermodehelper function. See the example of how to use it at the LXR#1 or LXR#2.

    UPD:

    argv[0] = "/bin/bash";
    argv[1] = "-c";
    argv[2] = "/usr/bin/free";
    argv[3] = NULL;
    
    envp[0] = "HOME=/";
    envp[1] = "TERM=linux";
    envp[2] = "PATH=/sbin:/usr/sbin:/bin:/usr/bin";
    envp[3] = NULL;
    
    call_usermodehelper(argv[0], argv, envp, UMH_WAIT_EXEC);
    
    0 讨论(0)
  • 2021-02-10 04:01

    Its not possible to run a shell command from inside the kernel. You can instead read the /proc/meminfo file by calling the suitable procfs API to read the /proc/meminfo file. That virtual file has useful memory stats about the system memory.

    0 讨论(0)
  • 2021-02-10 04:08

    You can't run a shell command in a kernel module. Code in a kernel module can cause a command to be run, but it will run in a normal user process.

    free will be of little help with kernel memory leaks.
    It would be much better to wrap all allocations and frees in your kernel code, and maintain a counter of allocated memory.

    0 讨论(0)
提交回复
热议问题