Hi Michael, > Currently, Pearcolator simulates a linux environment by intercepting > system calls and handling these, as if the binary was running on > linux.
Right, that's like qemu's "user emulation" IIRC. http://fabrice.bellard.free.fr/qemu/status.html > However, I would like to extend that research project so that > Pearcolator can also simulate enough hardware, to actually boot a > simple operating system instead of "only" intercepting the system > calls. Currently, I am simulating all ARM instructions, but no > additional hardware at all. Therefore, I was wondering what kind of > hardware I would actually have to simulate to get a basic linux > running - is simulating a memory mapped serial interface enough or do > I also need a DMA controller, HD controller or ...? I think Michael Dales covered this, but IIRC Linux needs a processor, clock, memory controller, and interrupt controller. You normally want some I/O on top of that, e.g. a UART for a serial port. An initial RAM disk can contain your user-space programs that you want to run once the kernel boots, avoiding the need to emulate a hard disc interface. > The reason I was asking here is that you seem to be experts on > simulating hardware, considering arcem is able to emulate quite a lot. > I knew about QEMU, but until know I though they would also only > intercept the system calls - but according to your interesting links, > they also seem to be able to simulate a bit of hardware, too. Yes, their "system emulation" means they're emulating the hardware of the machine. I run the x86 emulator in this mode with Ubuntu 7.04 running on top of it. The Linux kernel in Ubuntu thinks it's talking to real hardware. > On your homepage, you are also offering an ARMLinux ROM image > (http://arcem.sourceforge.net/linuxrom.zip). Do you know what kind of > hardware emulation is required to run this image? That (very old) version of ARMLinux was intended to run on an Acorn, like arcem emulates. You really don't want to do that as it means emulating VIDC, etc., and that's all old hardware that no one other than Acorn emulator people are interested in anymore. I'd suggest talking to the ARM qemu guys, or examining the source, to find a simple embedded ARM development board that qemu's system emulation implements. One that's modern enough to have up to date Linux support. You'll be able to pick up pre-configured kernels for qemu that you can run under qemu to observe. At the same time qemu's source will show what bits of hardware are emulated and how. You may be able to drop support for some of the bits, e.g. network interface, in your emulator once you're happy reconfiguring the kernel compilation. Cheers, Ralph. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ arcem-devel mailing list arcem-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/arcem-devel