Greetings!
Just started playing around with fiasco and l4env. I checked out l4env and hello from CVS, which obtained all the required files. I was able to compile it on my x86 Thinkpad (T41) running Debian Sarge 3.1r0a. I've added an entry in boot/grub/menu.lst as follows:
title DROPS/Fiasco u-kernel kernel (hd0,0)/boot/fiasco/rmgr -sigma0 module (hd0,0)/boot/fiasco/main -noserial -nowait -nokdb module (hd0,0)/boot/fiasco/sigma0 module (hd0,0)/boot/fiasco/names module (hd0,0)/boot/fiasco/log module (hd0,0)/boot/fiasco/dm_phys module (hd0,0)/boot/fiasco/hello
On boot, I get the following output:
" RMGR: Starting tasks #OS: loading "(hd0,0)/boot/fiasco/names" from 0022b000 - 002341a4 to [ 02240000 - 00246b52 The module 02: 02240000 - 00246b52 : (hd0,0)/boot/fiasco/names overlaps with module loaded by bootloader at 00100000 - 001ca240: Rmgr 02: 0022b000 - 002341a4: (hd0,0)/boot/fiasco/names 03: 00235000 - 0023d324: (hd0,0)/boot/fiasco/log 04: 0023e000 - 00252584: (hd0,0)/boot/fiasco/dm_phys 05: 00253000 - 0025d7ef: (hd0,0)/boot/fiasco/hello
The reason for this error message is that the modules as loaded by grub interface with their final position as defined by the linker. Most often you can solve this problem by inserting the command "modaddr 0x02000000" immediately as next line after the "kernel=" line of your menu.lst. Note that you have to use a special version of GRUB which is available from http://os.inf.tu-dresden.de/drops/download.html.
Return reboots, "k" enters L4 kernel debugging. "
I already have grub installed in the MBR of the hard disk, and I don't have a floppy drive in the laptop.
1. Is there any other way I can get these modules loaded and tested?
Of course, hello module does not require the names, log, dm_phys modules. It runs fine though with rmgr, main and sigma0.
2. I am particularly interested in device drivers. Is there any documentation that covers these in DROPS other than using Linux device drivers?
I'd appreciate any help in this regard.
Thanks,
SK
-- Shakthi Kannan, MS Software Engineer, Specsoft (Hexaware Technologies) [E]: shakthimaan@yahoo.com [M]: (91) 98407-87007 [W]: http://www.shakthimaan.com [L]: Chennai, India
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Hi,
On Sun Sep 25, 2005 at 09:43:35 -0700, Shakthi Kannan wrote:
Just started playing around with fiasco and l4env. I checked out l4env and hello from CVS, which obtained all the required files. I was able to compile it on my x86 Thinkpad (T41) running Debian Sarge 3.1r0a. I've added an entry in boot/grub/menu.lst as follows:
title DROPS/Fiasco u-kernel kernel (hd0,0)/boot/fiasco/rmgr -sigma0
I already have grub installed in the MBR of the hard disk, and I don't have a floppy drive in the laptop.
- Is there any other way I can get these modules
loaded and tested?
Yes, several. :)
I recommend using qemu or some other virtualization approach to test things. Rebooting your laptop everytime isn't practical and takes time. You can take the demo floppy image as a basis (http://os.inf.tu-dresden.de/drops/download/). Using qemu is much more comfortable.
Another way to test things is Fiasco-UX, that's a Fiasco running on Linux.
- I am particularly interested in device drivers. Is
there any documentation that covers these in DROPS other than using Linux device drivers?
When you say Linux drivers, do you mean DDE or L4Linux? We've been using Linux drivers mainly and have good experience in reusing them under L4. We haven't been hacking big drivers from scratch, for obvious reasons. There's at least a master thesis on DDE (but it's in german).
Adam
Hi Adam,
Thanks for your reply.
--- Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
You can take the demo floppy image as a basis (http://os.inf.tu-dresden.de/drops/download/). Using qemu is much more comfortable.
I tested the demo floppy on an old PIII desktop, and it booted fine. I also mounted it on my laptop and changed the images to the one I compiled (names, log, sigma0, rmgr, hello,...), and tested it on the desktop, and it worked fine.
Another way to test things is Fiasco-UX, that's a Fiasco running on Linux. When you say Linux drivers, do you mean DDE or L4Linux?
I don't want to go through any virtualization/emulation/simulation.
Is it possible to write an application and device drivers (user-space) that interact directly with fiasco? Are there any simple hello-world kind of examples or documentation for this?
I have been looking for a microkernel to work/test directly with hardware. I don't need any fancy GUIs. Even a console with VGA output is fine.
We haven't been hacking big drivers from scratch, for obvious reasons. There's at least a master thesis on DDE (but it's in german).
I don't know German :(
SK
-- Shakthi Kannan, MS Software Engineer, Specsoft (Hexaware Technologies) [E]: shakthimaan@yahoo.com [M]: (91) 98407-87007 [W]: http://www.shakthimaan.com [L]: Chennai, India
__________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com
On Mon Sep 26, 2005 at 00:41:01 -0700, Shakthi Kannan wrote:
--- Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
You can take the demo floppy image as a basis (http://os.inf.tu-dresden.de/drops/download/). Using qemu is much more comfortable.
I tested the demo floppy on an old PIII desktop, and it booted fine. I also mounted it on my laptop and changed the images to the one I compiled (names, log, sigma0, rmgr, hello,...), and tested it on the desktop, and it worked fine.
Ok. When playing with OSes one either have a networked test box or some virtual system. For the beginning and to explore the system qemu is really good. Fiasco-UX will also work. You cannot have traditional drivers with it (obviously) but it's a nice to get one going.
Another way to test things is Fiasco-UX, that's a Fiasco running on Linux. When you say Linux drivers, do you mean DDE or L4Linux?
I don't want to go through any virtualization/emulation/simulation.
That's not really any of those. DDE is more about giving a Linux driver the environment it expects (kmalloc, jiffies, interupts, etc.). Besides that it's directly running on the kernel.
Is it possible to write an application and device drivers (user-space) that interact directly with fiasco?
Sure this is possible.
Are there any simple hello-world kind of examples or documentation for this?
There's the serial package which implements a lib to access the serial port. It's only doing port-I/O though. To see how to attach to an IRQ one could look at the input package or even L4Linux. To map device memory we use a service called l4io.
I have been looking for a microkernel to work/test directly with hardware. I don't need any fancy GUIs. Even a console with VGA output is fine.
If you do not want to have a GUI you do not get one :)
The VGA and serial output is what you're getting by default.
Adam
Hi,
--- Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
Ok. When playing with OSes one either have a networked test box or some virtual system.
Ok. I'll use the floppy with the old PIII desktop as a testbed environment.
That's not really any of those. DDE is more about giving a Linux driver the environment it expects (kmalloc, jiffies, interupts, etc.). Besides that it's directly running on the kernel.
I'll have a look at the DDE sources. Is this what you are referring to?
http://os.inf.tu-dresden.de/l4env/doc/dde_linux/index.html
Can you point me to the exact sources and any other documentation related to this.
If its German, I'll see if I can find someone to do the translation.
Thanks,
SK
-- Shakthi Kannan, MS Software Engineer, Specsoft (Hexaware Technologies) [E]: shakthimaan@yahoo.com [M]: (91) 98407-87007 [W]: http://www.shakthimaan.com [L]: Chennai, India
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
On Mon Sep 26, 2005 at 07:05:17 -0700, Shakthi Kannan wrote:
--- Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
That's not really any of those. DDE is more about giving a Linux driver the environment it expects (kmalloc, jiffies, interupts, etc.). Besides that it's directly running on the kernel.
I'll have a look at the DDE sources. Is this what you are referring to?
Yes.
Can you point me to the exact sources and any other documentation related to this.
The sources are in l4/pkg/dde_linux, the example directory in there might be of interest too.
Adam
Hi,
On Mon, Sep 26, 2005 at 07:05:17AM -0700, Shakthi Kannan wrote:
I'll have a look at the DDE sources. Is this what you are referring to?
http://os.inf.tu-dresden.de/l4env/doc/dde_linux/index.html
Can you point me to the exact sources and any other documentation related to this.
If its German, I'll see if I can find someone to do the translation.
Some years ago there was an attempt for an English translation by an L4 HURD guy. You may have a look at
http://www.nongnu.org/l4hurd/docs/helmuth-dde/english/
Cheers
l4-hackers@os.inf.tu-dresden.de