Checking executables before running them in L4re/fiasco

Masti Ramya Jayaram rmasti at inf.ethz.ch
Wed Sep 3 16:43:59 CEST 2014


>For a start, you can set "MODE = sigma0" in the Makefile to get a much
Ok, I will try the MODE=sigma0. 

>You mean binaries that are started? 
Yes but some modules have dependencies (like the Io server and examples of target dependencies include libsigma). Is there a way to find all of them?

Finally, on a related note, could you explain to me how all the modules get merged to create the elfimage? I ask because I have to access the modules (vmlinux, l4linux.cfg and ramdisk) from bootstrap in order to modify/check them. For example, I would like to load the modules encrypted and decrypt them in bootstrap before continuing. I can do decryption in place but again, I am not sure about module sizes, etc. 

I see that some of this information is included during the image creation process in l4/pkg/bootstrap/server/src/build.pl but I cannot quite get the entire picture. Could you point me to any documentation about it?

Thanks,
Ramya
________________________________________
From: l4-hackers [l4-hackers-bounces at os.inf.tu-dresden.de] on behalf of Adam Lackorzynski [adam at os.inf.tu-dresden.de]
Sent: 03 September 2014 00:02
To: l4-hackers at os.inf.tu-dresden.de
Subject: Re: Checking executables before running them in L4re/fiasco

On Tue Sep 02, 2014 at 14:08:03 +0000, Masti  Ramya Jayaram wrote:
> Also, could you elaborate a bit on how one could have smaller
> components? I decided to do it at bootstrap at the moment because  I
> realized that using the IO server also means including the entire C
> library (and much more).

For a start, you can set "MODE = sigma0" in the Makefile to get a much
simpler setup (don't be confused by the name). Of course, not all
features are there then but should be ok for checking a binary. More
libraries can be removed further but also requires to do more by hand
then.

> On a related note, is there a way to find all the packages in use
> (there is more than what is compiled by module.list I can see)?

You mean binaries that are started? modules.list has defaults for
kernel, sigma0 and roottask but otherwise everything else needs to be
put there.

> ________________________________________
> From: l4-hackers [l4-hackers-bounces at os.inf.tu-dresden.de] on behalf of Masti  Ramya Jayaram [rmasti at inf.ethz.ch]
> Sent: 02 September 2014 09:57
> To: Adam Lackorzynski; l4-hackers at os.inf.tu-dresden.de
> Subject: RE: Checking executables before running them in L4re/fiasco
>
> Thanks for the suggestions. From what you say, I guess it is best to
> do something between ned and say vmlinuz. It also makes better sense
> semantically (the kernel has booted and checks if the application is
> ok).
>
>  Is there a way to accomplish the following:
>
> a. Ned starts up a new process which does some checks and returns "OK/STOP".
> b. depending on the value returned by the new process, ned decides to launch/stop vmlinuz.
>
> When I try "roottask moe rom/hello rom/vmlinuz" in the modules.list
> file, they execute in parallel. Is there a way to make it sequential?

You start ned via moe (as usual) and have a script like this:

local l = L4.default_loader;
local e = l:start({}, "rom/checker rom/hello");

if e:wait() == 0 then
  l:start({}, "rom/hello");
else
  print("Something is wrong with hello.");
end

So the checker program does exit(0) or exit(1) depending on its result.


Adam
--
Adam                 adam at os.inf.tu-dresden.de
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/

_______________________________________________
l4-hackers mailing list
l4-hackers at os.inf.tu-dresden.de
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers


More information about the l4-hackers mailing list