Re: Checking executables before running them in L4re/fiasco

Adam Lackorzynski <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
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 [[email protected]] on behalf of Masti  Ramya Jayaram [[email protected]]
> Sent: 02 September 2014 09:57
> To: Adam Lackorzynski; [email protected]
> 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                 [email protected]
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.