Man Linux: Main Page and Category List

NAME

       realksh.c - A shell for running Kernel-mode C code

SYNOPSIS

       realksh.c

DESCRIPTION

       realksh.c  is  an interactive shell that runs C source code.  A line of
       input is handled as a line in module_init() function, and the resulting
       C  code  is  compiled  to  build  a  kernel module.  The module is then
       inserted into the kernel, and removed from the kernel.  kernel  message
       output  prepended with KMSG: is copied to standard out for convenience,
       so that functions like printk can be used for easy debugging.

       If a line starting with # such as #include <stdio.h> is entered, it  is
       added to every code after that at the start of sourcecode.

       The list of such lines can be seen with ##

EXAMPLES

       The following is an example session

       $ sudo ./realksh.c
       REAL ksh: printk ("hello\n");
         Building modules, stage 2.
       KMSG: <4>hello

       REAL ksh: printk ("%x\n", mfmsr());
         Building modules, stage 2.
       KMSG: <4>9032

       REAL ksh: printk ("%x\n", mfspr(SPRN_MMCR0));
         Building modules, stage 2.
       KMSG: <4>0

       REAL ksh:

INTERNALS

       The following is how the C code looks like.

       #include <linux/module.h>
       #include <linux/init.h>
       MODULE_AUTHOR("dancerj");
       MODULE_DESCRIPTION("....");
       MODULE_LICENSE("GPL");
       static int __init realkshmod2_init(void)
       {
       input-line
       return 0;
       }
       static void __exit realkshmod2_cleanup(void)
       {
       }
       module_init(realkshmod2_init);
       module_exit(realkshmod2_cleanup);

AUTHOR

       Junichi Uekawa (dancer@debian.org)

       Upstream            page            is           available           at
       http://www.netfort.gr.jp/~dancer/software/

SEE ALSO

       binfmtc-interpreter(1), realcsh.c(1), realcxxsh.cc(1)