[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] some thoughts on appstacks and app-tools
Antti Kantee writes ("Re: some thoughts on appstacks and app-tools"): > On 15/07/14 15:26, Ian Jackson wrote: > > I think that it would be better to deal with this by providing the > > script in the base fs image. That's a more suitable format for > > conveying something extended like one of these scripts. It also > > preserves the distinction between "out of band" environmental > > information like the filesystem etc., and the executable and its > > command line arguments. > > A rump kernel does not use a base fs image, at least unless I > misunderstood what you meant by base fs image. The demo application supplied in rumpuser-xen comes with a pair of ffs images. Perhaps that's just because it's doing an fs test ? > For some applications it might be convenient to supply some sort of fs > image, e.g. the libc calls that thttpd makes requires /etc/services, > /etc/master.passwd and so forth. However, let's imagine a > router/firewall. There is no true need to have any file system support > in a rump kernel in that configuration (as in open() will return > ENOSYS). Yet, the router needs to be configured somehow. That's why > I'd rather supply the configuration information out-of-band. I see. > If I correctly understood what you mean by the xenstore stuff later, you > are saying that the steps could be embedded, while the data needed by > those steps could come dynamically from xenstore. Yes. > >> extra = > >> "builtin_ifconfig xenif0 create > >> builtin_ifconfig xenif0 <address> > > > > I think this information is already available via xenstore. > > Ok, but we still need to execute the actual configuration commands somehow. If that isn't happening already if you specify "ip=..." in the appropriate place in the xl domain config file then there is a bug in something, I think. > >> builtin_mount ffs /blk1 /etc > > > > We could perhaps provide a mount point in xenstore along with the > > rest of the pv block device control plane info. > > I have no idea what that means. > > Can you elaborate on how that will solve the practical problem of > "thttpd needs some files in /etc"? I mean that the domain config file could say disk = [ "vdev=xvda, mountpoint=/etc, target=/path/to/blah.ffs" ] and libxl would put the mountpoint info in xenstore so something in the rump kernel Xen environment would pick it up. > > This notion of having multiple processes is quite alarming. There > > obviously won't be any memory protection between them, but also: how > > will their symbol namespaces be separated ? Is it intended that they > > would be able to communicate via some kind of IPC (eg pipes or AF_UNIX > > sockets) ? > > Symbol separation is what I referred to with crunchgen/busybox. I don't > know about busybox, but at least crunchen does symbol renaming/hiding. Busybox is a single application, not a build tool. I wasn't aware of crunchgen. That does sound like it could do the job. > Without going into a lot of detail, a rump kernel has an internal notion > of a "process", sans a virtual memory space. I think the original use > case was debugging the AF_UNIX file descriptor passing code (though > there are other uses now). Multiple "processes" can communicate e.g. > with pipes just like on a regular system. Cor. OK then. > > Clearly applications can't background themselves (whatever that means) > > because they can't call fork(). > > My definition of backgrounding here = "rc script" doesn't wait for the > current process to finish before running the next one. That works quite > easily, we just create a thread before we call the application main and > either join that thread or not. It might be possible to reach the same > effect by "guessing" what fork() means for an application, but then > again it might be better to not guess. I think it would be better to do this ad-hoc in the script language. > > Of course I appreciate that some of the xenstore-based answers I give > > above are perhaps less useful to other platforms, but perhaps they > > have something equivalent ? > > They don't exist, so I don't know yet ;) > > What I do know is that I'd like things to be general enough so that > whatever infra you build on top of this doesn't have to be changed in 3 > weeks (or forked) when we discover a platform where there is no equivalent. Yes. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |