bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GSoC project about virtualization using Hurd mechanisms


From: zhengda
Subject: GSoC project about virtualization using Hurd mechanisms
Date: Tue, 01 Apr 2008 19:39:07 +0200
User-agent: Thunderbird 2.0.0.12 (X11/20080213)

Hello,

I want to do the project of virtualization using Hurd mechanisms.
There are two choices for me: to improve subhurds and to create a new subenvironments.
Here are the descriptions about them:
In my understanding, Hurd is a set of servers which provide the services provided by the monolithic kernel before such as file system, networking and etc. These servers run as normal processes on a microkernel such as Mach or L4, whose responsibility is to help servers communicate with each other. Because of this architecture, it is possible for us to run duplicate servers. If we run another full set of servers, we can get another Hurd on our machine. This is my understanding of how subhurd works. But currently there are no communication channels between the subhurd and the main one, and no mechanism for safe sharing of hardware devices. This could be the task of the project.

In the other hand, if we can run some duplicate servers, we can get a smaller subenvirnoment which lives within the main system and uses most of its facilities. The advantage is that we can get a virtual subenvironment but save a lot of resources on the computer. I want to create a virtual network by running several servers of network protocols at the same time and give different IP address to these servers. In this case, we have to provide a mechanism to allow the user's program to choose which server to use, and provide a mechanism to allow servers communicate with each other. The virtual network I mentioned above is actually a network simulator. Its work is to simulate a network in the operating system, so different processes in the operating system think they are running on different IPs. For example, there are 3 processes: A, B, C. Process A thinks it runs on ADDR_A, B thinks it on ADDR_B, C thinks it on ADDR_C. Process A, B, C runs in the same machine actually, but they all think others run on the machine of different IPs. So if Process A sends a message to ADDR_B and Process B is listening, the message should be delivered to Process B. The reason I want to create such a kind of network simulator is that it should be easier for us to test some distributed programs (sometime we may not be able to find enough machines to run it, for example).In Hurd, we can run one server of networking for one IP. It should be easy to be done in Hurd. Then we have to provide a mechanism to allow the process to choose which server to use, and provide a mechanism to allow servers communicate with each other.

Best,
Zheng Da




reply via email to

[Prev in Thread] Current Thread [Next in Thread]