2006-10-27 10:16:13

by ranjith kumar

[permalink] [raw]
Subject: How to run an a.out file in a kernel module

Hi,

How to run an a.out file in a kernel module
I tried to include
system("./a.out");
in the C file. But I got compilation errors.

Thanks in advance.

Send instant messages to your online friends http://uk.messenger.yahoo.com


2006-10-27 11:05:32

by Jiri Slaby

[permalink] [raw]
Subject: Re: How to run an a.out file in a kernel module

ranjith kumar wrote:
> Hi,
>
> How to run an a.out file in a kernel module
> I tried to include
> system("./a.out");
> in the C file. But I got compilation errors.

And what exactly do you want kernel to do?
If you want to create a process, see module loading procedure from kernel (i.e.
calling modprobe) -- request_module function or calling 'init=' program --
run_init_process.

regards,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E

2006-10-27 11:06:39

by Erik Mouw

[permalink] [raw]
Subject: Re: How to run an a.out file in a kernel module

On Fri, Oct 27, 2006 at 11:16:11AM +0100, ranjith kumar wrote:
> How to run an a.out file in a kernel module
> I tried to include
> system("./a.out");
> in the C file. But I got compilation errors.

Simple: you don't. There are a bunch of problems over here:

1) The system() call is a userland libc call and doesn't exist in the
kernel
2) You can't be sure you're in user context
3) You don't know in what filesytem namespace you are

You could use call_usermodehelper() if you really need to call a
usermode helper, but usually it's a sign of bad design if you need to.


Erik

--
+-- Erik Mouw -- http://www.harddisk-recovery.com -- +31 70 370 12 90 --
| Lab address: Delftechpark 26, 2628 XH, Delft, The Netherlands

2006-10-29 11:19:56

by ranjith kumar

[permalink] [raw]
Subject: Re: How to run an a.out file in a kernel module

Hi,
1) What is the synatx of call_usermodehelper()
function?
I found out that it takes 4 arguments. But
what values we have to pass as argumets.
I did searched in internet. But could not find out.
Sorry to post this question.

2) How to print something using C code such that it
will be displayed when corresponding a.out file is
called in a kernel module using call_usermodehelper()
function.

Thanks in advance.

--- Erik Mouw <[email protected]> wrote:

> On Fri, Oct 27, 2006 at 11:16:11AM +0100, ranjith
> kumar wrote:
> > How to run an a.out file in a kernel
> module
> > I tried to include
> >
> system("./a.out");
> > in the C file. But I got compilation errors.
>
> Simple: you don't. There are a bunch of problems
> over here:
>
> 1) The system() call is a userland libc call and
> doesn't exist in the
> kernel
> 2) You can't be sure you're in user context
> 3) You don't know in what filesytem namespace you
> are
>
> You could use call_usermodehelper() if you really
> need to call a
> usermode helper, but usually it's a sign of bad
> design if you need to.
>
>
> Erik
>
> --
> +-- Erik Mouw -- http://www.harddisk-recovery.com -- +31 70
> 370 12 90 --
> | Lab address: Delftechpark 26, 2628 XH, Delft, The
> Netherlands
> -
> To unsubscribe from this list: send the line
> "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at
> http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>




___________________________________________________________
All New Yahoo! Mail ? Tired of Vi@gr@! come-ons? Let our SpamGuard protect you. http://uk.docs.yahoo.com/nowyoucan.html

2006-10-29 12:30:59

by Jiri Slaby

[permalink] [raw]
Subject: Re: How to run an a.out file in a kernel module

Do NOT top-post.

ranjith kumar wrote:
> Hi,
> 1) What is the synatx of call_usermodehelper()
> function?
> I found out that it takes 4 arguments. But
> what values we have to pass as argumets.
> I did searched in internet. But could not find out.
> Sorry to post this question.

grep -r call_usermodehelper linux/

> 2) How to print something using C code such that it
> will be displayed when corresponding a.out file is
> called in a kernel module using call_usermodehelper()
> function.

By adding printk to call_usermodehelper?

regards,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E