From: <lis...@os...> - 2001-05-16 09:54:29
|
Does anyone have any thoughts on getting UML running under AIX? Tools required? Degree of difficulty? Constructing a Linux filesystem to run against? Anything I forgot to ask? |
From: Jeff D. <jd...@ka...> - 2001-05-16 15:02:24
|
lis...@os... said: > Does anyone have any thoughts on getting UML running under AIX? > Tools required? A compiler and an editor :-) > Degree of difficulty? It hasn't been done before, so you'd have to deal with all of the Linux-isms embedded in the code. You need to see if AIX has a mechanism for intercepting and nullifying Linux system calls. You also need a fairly general mmap. If you've got those, you can probably make everything else work. > Constructing a Linux filesystem to run against? What's the processor under AIX these days? ppc? And are you asking because of UML/ppc :-) The filesystem is a normal Linux filesystem for that processor. Bit-for-bit the same. Jeff |
From: <lis...@os...> - 2001-05-16 21:11:38
|
Jeff Dike writes: > lis...@os... said: > > Does anyone have any thoughts on getting UML running under AIX? > > > Tools required? > > A compiler and an editor :-) I don't need an editor - I can edit here and ftp there;-) Or patch there. That's probably what I'd do actually - editing through a modem is Not Fun. > > > Degree of difficulty? > > It hasn't been done before, so you'd have to deal with all of the Linux-isms > embedded in the code. > > You need to see if AIX has a mechanism for intercepting and nullifying Linux > system calls. You also need a fairly general mmap. If you've got those, you > can probably make everything else work. > > > Constructing a Linux filesystem to run against? > > What's the processor under AIX these days? ppc? And are you asking because > of UML/ppc :-) > > The filesystem is a normal Linux filesystem for that processor. Bit-for-bit > the same. I'm asking coz I can have an account on AIX to do it. The ppc work is a handy coz I'd hate to do THAT as well, though the third hardware platform should be lots easier. After I posted here I took my self off ti Virtual IBM and found, as Rolls Royce would sa, "adequate" tools - gcc, rpm, autoconf, vm, emacs (or xemacs), Apache web server, cdrecord... The binaries came in two flavours "IA64" and "Power", the latter have .ppc. in the names. So it looks like the tooks are readily available. I presume that if I find a source of ppc packages for Linux I will have no problem making a filesystem. Overall, the contents of the IBM website are quite reassuring. |
From: Jeff D. <jd...@ka...> - 2001-05-17 01:06:13
|
lis...@os... said: > I'm asking coz I can have an account on AIX to do it. The ppc work is > a handy coz I'd hate to do THAT as well Yeah, porting UML to a different OS+arch is two ports, one to Linux/$(ARCH) and the second to $OS. The arch part of the port is done (for some definition of done :-) already for you, so you'd just need to be concerned about the OS part. Some more information: Having ELF object support will be real handy. gcc and friends are essential see if mmap has page granularity - if not, it can be worked around system call interception - about your first exercise should be to port http://user-mode-linux.sourceforge.net/examples/ptrace.c to AIX > I presume that if I find a source of ppc packages for Linux I will > have no problem making a filesystem. Yeah, also Chris has to have concocted something, so we might be able to persuade him to let other people have a look. Jeff |
From: Jeff D. <jd...@ka...> - 2001-05-17 03:06:33
|
jd...@ka... said: > system call interception - about your first exercise should be to > port http://user-mode-linux.sourceforge.net/examples/ptrace.c to AIX I ought to clarify this a bit - that porting exercise is relevant only if AIX and Linux use the same mechanism to invoke a system call. I don't know what the ppc situation is, but there are a number of usable mechanisms on i386 for a process to trap into the kernel. If they use different mechanisms, then you'll need to replace the getpid() in the child thread with the ppc equivalent of: asm("movl $0x14, %eax; int $0x80"); I.e. the Linux asm for a getpid syscall. Jeff |
From: Chris E. <cem...@ch...> - 2001-05-17 09:14:50
|
On Wednesday, 16 May 2001, Jeff Dike wrote: > I ought to clarify this a bit - that porting exercise is relevant > only if AIX and Linux use the same mechanism to invoke a system > call. I don't know what the ppc situation is, but there are a > number of usable mechanisms on i386 for a process to trap into the > kernel. On ppc there's a "system call" instruction (sc), which AIX ought to use too. BTW, I've looked briefly into the feasibility of porting UML to FreeBSD or NetBSD, but neither of them currently have PTRACE_SYSCALL. This seems to make it quite difficult. :-( Cheers, Chris -- Chris Emerson, obsessed Cambridge juggler E-mail: cem...@ch... Web page: http://www.chiark.greenend.org.uk/~cemerson/ |
From: Lars B. <lar...@no...> - 2001-05-17 11:37:46
|
Chris Emerson <cem...@ch...> writes: > BTW, I've looked briefly into the feasibility of porting UML to > FreeBSD or NetBSD, but neither of them currently have PTRACE_SYSCALL. Nor does Solaris. Is it all done through /proc there? Maybe the BSDs provide syscall tracing in /proc? -- http://lars.nocrew.org/ |
From: Erik P. <epa...@cs...> - 2001-05-17 15:25:53
|
On Thu, May 17, 2001 at 01:35:45PM +0200, Lars Brinkhoff wrote: > Chris Emerson <cem...@ch...> writes: > > BTW, I've looked briefly into the feasibility of porting UML to > > FreeBSD or NetBSD, but neither of them currently have PTRACE_SYSCALL. > > Nor does Solaris. Is it all done through /proc there? Maybe the BSDs > provide syscall tracing in /proc? Yes - you write into /proc/PID/ctl to watch for system calls. Back to the original topic, I think AIX is the not the first platform that UML should be ported to; as far as UNIX goes it's pretty foul. I think a nice, friendly platform like *BSD or Solaris is probably the best bet to shake out all the Linux-isms. -Erik |
From: Jeff D. <jd...@ka...> - 2001-05-17 14:11:22
|
cem...@ch... said: > BTW, I've looked briefly into the feasibility of porting UML to > FreeBSD or NetBSD, but neither of them currently have PTRACE_SYSCALL. The BSDs apparently have the ability to load a new set of system calls for a process. So, you'd write a module that implements a new system call vector whose elements call out to userspace somehow, and load it in to each UML process. Jeff |
From: Chris E. <cem...@ch...> - 2001-05-17 15:04:53
|
On Thursday, 17 May 2001, Jeff Dike wrote: > The BSDs apparently have the ability to load a new set of system > calls for a process. So, you'd write a module that implements a new > system call vector whose elements call out to userspace somehow, and > load it in to each UML process. Seems to me that this defeats half the pont of UML. :-) Some of the BSDs have Linux emulation; I guess that might be enough to get UML running without having another bit of kernel-mode code. Cheers, Chris -- Chris Emerson, obsessed Cambridge juggler E-mail: cem...@ch... Web page: http://www.chiark.greenend.org.uk/~cemerson/ |
From: Michael V. <mi...@bl...> - 2001-05-17 15:10:52
|
On Thu, 17 May 2001, Chris Emerson wrote: > On Thursday, 17 May 2001, Jeff Dike wrote: > > > The BSDs apparently have the ability to load a new set of system > > calls for a process. So, you'd write a module that implements a new > > system call vector whose elements call out to userspace somehow, and > > load it in to each UML process. > > Seems to me that this defeats half the pont of UML. :-) > > Some of the BSDs have Linux emulation; I guess that might be enough to > get UML running without having another bit of kernel-mode code. I've been lurking for a while and thought I might as well jump in. This is from the lxrun FAQ at http://www.ugcs.caltech.edu/~steven/lxrun/lxrun-FAQ.html ----------------- Q0.2: How does lxrun work? A: Quite well, actually. :-) Seriously, it works by remapping system calls on the fly. As it turns out, there's not much difference between Linux and iBCS2 binaries. The main difference is the way in which system calls are handled. In Linux, an "int $0x80" instruction is used, which jumps to the system-call-handling portion of the Linux kernel. On other systems, "int $0x80" usually causes a SIGSEGV signal. Lxrun intercepts these signals and calls the native equivalent of the system call that the Linux program attempted. The result is that the Linux binary can be run (with the help of lxrun) with a small (usually negligible) performance penalty. All this is accomplished without modifying the kernel or the Linux binary. ----------------- Looks like it shouldn't be too bad at all. Mike |
From: Chris E. <cem...@ch...> - 2001-05-17 09:03:03
|
On Wednesday, 16 May 2001, Jeff Dike wrote: > lis...@os... said: > > I presume that if I find a source of ppc packages for Linux I will > > have no problem making a filesystem. > > Yeah, also Chris has to have concocted something, so we might be > able to persuade him to let other people have a look. I've got a basic Debian filesystem with no extra packages installed. I'm not totally sure I've got it right yet, as I haven't booted it all the way yet. When our cable modem's working again I can upload the image if it's going to be useful. Cheers, Chris -- Chris Emerson, obsessed Cambridge juggler E-mail: cem...@ch... Web page: http://www.chiark.greenend.org.uk/~cemerson/ |
From: <lis...@os...> - 2001-05-18 01:42:04
|
Chris Emerson writes: > On Wednesday, 16 May 2001, Jeff Dike wrote: > > > lis...@os... said: > > > I presume that if I find a source of ppc packages for Linux I will > > > have no problem making a filesystem. > > > > Yeah, also Chris has to have concocted something, so we might be > > able to persuade him to let other people have a look. > > I've got a basic Debian filesystem with no extra packages installed. > I'm not totally sure I've got it right yet, as I haven't booted it all > the way yet. When our cable modem's working again I can upload the > image if it's going to be useful. there's no great hurry;-) First thing is my modem has to finish with downloading RHL 7.1. And the owner of the machine has to check whether he has the software on CD (he thinks he has); othwise I (or he) must download it to his box. I was looking round for ppc versions of Linux, and Yellowdog Champion 1.2 popped up. I was thinking I can make a filesystem out of that with an adaptation of the script I use for RHL. It doesn't have to install much to get a basic system running - there's a System/390 filesystem that runs from an initrd of about 8 Mbytes. Ideally I will also find some programmer documentation for AIX;-) |