From: Pravin <shi...@gm...> - 2008-03-03 11:20:19
|
Hi, I wanted to ask a question regarding the procedure to be followed in porting linux on other platforms. Please correct me if I am wrong. I do consider that UML is act of porting Linux on Linux itself. This allows linux kernel (guest) to run as user-process on linux kernel (host). I am studying the possibility of porting Linux on Minix on similar lines. This way, one should be able to run linux on minix systems like user process. Something parallel to L4Linux which is port of linux on L4 micro-kernel, and mklinux which is a port of linux on Mach micro-kernel. I wanted some information regarding how we go about this kind of porting, and what kind of technical problems are expected in such porting. If there are any documentation/links available about these kind of porting then it will be of great help for me. -- Thanks and Regards, Pravin Shinde |
From: Jeff D. <jd...@ad...> - 2008-03-07 17:18:13
|
On Mon, Mar 03, 2008 at 04:50:16PM +0530, Pravin wrote: > I do consider that UML is act of porting Linux on Linux itself. This > allows linux kernel (guest) to run as user-process on linux kernel > (host). Correct. > I am studying the possibility of porting Linux on Minix on similar > lines. This way, one should be able to run linux on minix systems like > user process. Something parallel to L4Linux which is port of linux on > L4 micro-kernel, and mklinux which is a port of linux on Mach > micro-kernel. > > I wanted some information regarding how we go about this kind of > porting, and what kind of technical problems are expected in such > porting. The first thing to do is make sure you have a way of virtualizing Linux (int 0x80/sysenter/syscall) system calls, which means that you can prevent them from executing on the host, you can read the system call and the arguments, and make it return with the result of your choice, including updating output buffers. You also need to be able to intercept and nullify signals. Some mechanism for updating a process address space is needed. There are various ways of doing this, and UML has probably tried all of them. > If there are any documentation/links available about these kind of > porting then it will be of great help for me. Nothing for porting to another OS. Jeff -- Work email - jdike at linux dot intel dot com |
From: Pravin <shi...@gm...> - 2008-03-10 14:00:06
|
> > The first thing to do is make sure you have a way of virtualizing > Linux (int 0x80/sysenter/syscall) system calls, which means that you > can prevent them from executing on the host, you can read the system > call and the arguments, and make it return with the result of your > choice, including updating output buffers. I was thinking about using userspace exception handler's to trap the system calls from userspace processes in linux. these exception handlers then can deal with system calls. > > You also need to be able to intercept and nullify signals. I am not very clear about this, But how does UML deals with interrupts or how they r simulated ? > > Some mechanism for updating a process address space is needed. There > are various ways of doing this, and UML has probably tried all of > them. Is there any working documentation available for intarnals of UML ? Can I get some overview about how UML is doing things before going jumping to the source-code? > > Jeff > > -- > Work email - jdike at linux dot intel dot com > -- Regards, Pravin Shinde |
From: Jeff D. <jd...@ad...> - 2008-03-10 14:31:36
|
On Mon, Mar 10, 2008 at 07:30:04PM +0530, Pravin wrote: > > > > You also need to be able to intercept and nullify signals. > > I am not very clear about this, But how does UML deals with interrupts > or how they r simulated ? ptrace allows child signals to be intercepted and nullified. Signals from the host are the equivalent of hardware interrupts. The UML kernel makes its own decisions about signals to its own processes, and those are delivered in the same way as any other architecture. > Is there any working documentation available for intarnals of UML ? > Can I get some overview about how UML is doing things > before going jumping to the source-code? Not really - best start looking at code. Jeff -- Work email - jdike at linux dot intel dot com |
From: Pravin <shi...@gm...> - 2008-03-10 14:40:24
|
> > ptrace allows child signals to be intercepted and nullified. Signals > from the host are the equivalent of hardware interrupts. The UML > kernel makes its own decisions about signals to its own processes, and > those are delivered in the same way as any other architecture. > > > > Is there any working documentation available for intarnals of UML ? > > Can I get some overview about how UML is doing things > > before going jumping to the source-code? > > Not really - best start looking at code. Thanx for reply, I am little new to architecture dependent code structure of Linux. My guess is I need to start with system calls and interrupts simulation UML code. I will be working only on i386 architecture. Which files in "arch/um" I should concentrate more? > > > > Jeff > > -- > Work email - jdike at linux dot intel dot com > -- Regards, Pravin Shinde |