Hi Guys!
I saw coreboot was accepted as mentoring organization for GSoC this year once again. I want to participate this year again as student and I came with the idea of a Coreboot Spice Payload. I wrote a small text[1] describing the idea.
I would like to hear from you what you think. I have discussed with some guys already but would like to open it a bit more.
[1] - http://vps.dorilex.net/~dorileo/coreboot-spice-payload.txt
Thanks....
-- Leandro Dorileo
On Mon, Mar 21, 2011 at 11:49 AM, Leandro Dorileo ldorileo@gmail.com wrote:
Hi Guys!
I saw coreboot was accepted as mentoring organization for GSoC this year once again. I want to participate this year again as student and I came with the idea of a Coreboot Spice Payload. I wrote a small text[1] describing the idea.
I would like to hear from you what you think. I have discussed with some guys already but would like to open it a bit more.
[1] - http://vps.dorilex.net/~dorileo/coreboot-spice-payload.txt
Thanks....
-- Leandro Dorileo
Hi Leandro,
Yes, coreboot is accepting student applications for GSoC again this year. Your idea looks very interesting. I think that expanding the payload offerings for coreboot and developing with libpayload would make a good project. Have you thought about what kind of hardware you would develop on? Who uses Spice today? What type of systems or users would take advantage of a Spice Payload?
Marc
Hi Marc
On Tue, Mar 22, 2011 at 11:26 AM, Marc Jones marcj303@gmail.com wrote:
On Mon, Mar 21, 2011 at 11:49 AM, Leandro Dorileo ldorileo@gmail.com wrote:
Hi Guys!
I saw coreboot was accepted as mentoring organization for GSoC this year once again. I want to participate this year again as student and I came with the idea of a Coreboot Spice Payload. I wrote a small text[1] describing the idea.
I would like to hear from you what you think. I have discussed with some guys already but would like to open it a bit more.
[1] - http://vps.dorilex.net/~dorileo/coreboot-spice-payload.txt
Thanks....
-- Leandro Dorileo
Hi Leandro,
Yes, coreboot is accepting student applications for GSoC again this year. Your idea looks very interesting. I think that expanding the payload offerings for coreboot and developing with libpayload would make a good project. Have you thought about what kind of hardware you would develop on?
All I need is something with a ethernet, video, serial and keyboard devices - no special requirements on that. I own a coreboot supported mainboard - the one I used in 2009. But I`m considering to buy an allix.* + flexyice - I haven`t decided yet, can you suggest anything?
Who uses Spice today?
Spice is mainly supported by RedHat, it was developed by Qumranet who used originally supported spice on their desktop virtualization product named SolidIce. Now RedHat has implemented spice on open source products like qemu to support server side and their enterprise desktop clients.
What type of systems or users would take advantage of a Spice Payload?
Once we`re talking about remote desktop virtualization anyone who wants do shrink the expenses with hardware and hardware upgrades on desktops. The real operating system runs in the server which off loads the heavy CPU tasks, you can have a small and cheap piece of hardware capable of running any modern and powerful desktop operating system.
hi dorileo, the idea seems pretty interesting, which kind os does the client support? I think more details about how the payload can be used would be greater for us to know better about your idea.
Best wishes Wang Qing Pei Phone: 86+018930528086
On Tue, Mar 22, 2011 at 1:49 AM, Leandro Dorileo ldorileo@gmail.com wrote:
Hi Guys!
I saw coreboot was accepted as mentoring organization for GSoC this year once again. I want to participate this year again as student and I came with the idea of a Coreboot Spice Payload. I wrote a small text[1] describing the idea.
I would like to hear from you what you think. I have discussed with some guys already but would like to open it a bit more.
[1] - http://vps.dorilex.net/~dorileo/coreboot-spice-payload.txt
Thanks....
-- Leandro Dorileo
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Hi Jason
On Tue, Mar 22, 2011 at 11:55 AM, Qing Pei Wang wangqingpei@gmail.com wrote:
hi dorileo, the idea seems pretty interesting, which kind os does the client support?
In theory any Operating System may be run on server side, it needs just to implement the VDI layer. We can run it on qemu+kvm so we can run any kind of operating system, as far as I know qemu already supports spice protocol.
I think more details about how the payload can be used would be greater for us to know better about your idea.
Ok, I`ll write another email describing some more details.
PS: do you mind if I keep calling you Jason? :-)
Regards....
On Mon, Mar 21, 2011 at 01:49:49PM -0400, Leandro Dorileo wrote:
Excuse my ignorace, but you say :
[1] - http://vps.dorilex.net/~dorileo/coreboot-spice-payload.txt
- Coreboot Spice Payload
============================================================ Spice building blocks are Spice protocol, Spice server and spice client, the Coreboot Spice Payload fits on client component. The component will be an interface between the current devices(Video, keyboard, mouse, etc.) and the virtualized guest OS.
Do you mean some kind of SerialICE? (which accesses hardware registers and sends the information to the serial port and applies I/O commands it gets from the serial port to the hardware, so that you can put a modified emulator at the other side and run the firmware/software that you would run on the machine SerialICE is ). If so, SerialICE isn't a payload, it's a "replacement for coreboot" who can proxy what a remote coreboot does. The remote side has a coreboot, payload and OS. I mean coreboot does not load serialICE, it is SerialICE who boots up and starts listening for commands.
In any case, if you write some sort of network backed SerialICE, it won't allow you to have a desktop experience in a low end machine, because it will still be the low end machine executing the instructions it gets from somewhere. Those instructions might be a lightweight OS and a remote desktop client of some kind, but it won't run any faster (only slower) than if you directly installed the OS and client in the low end machine.
- Payload Main Tasks
============================================================ The Coreboot Spice Payload main tasks involve hardware interruption handling, spice commands dispatching and response rendering.
Beyond the hardware and command handling the payload will provide a basic configuration interface so host address and SSL can be set.
4.1 Libpayload
CSPLD will rely on libpayload drivers for keyboard, serial and video.
Which drivers ? Are there drivers for video in libpayload ? For which VGAs ? I think there's going to be a similar effort as to that of building an OS and its drivers if you don't want to load an OS on the client. My understanding is that coreboot/payloads only initialize the CPU, chipset, memory, buses and the minimum devices they need for debug and loading and OS. It is the OS who recognizes the different possible mouses, vgas, network cards, etc., the OS loads the appropiate drivers and applications (such as sshd, rdp, vnc, X or whatever) can then use them. If you want to get rid of the OS and applications you will have to rewrite their functionality, which isn't a summer job.
Let's suppose the user want to move a window and the processing that calculates the next image (which other windows parts are shown or hidden, any animation, etc.) is done in a remote computer. The image still has to be sent (however compressed or optimized) and the client has to show it on screen. So you need a video driver, a mouse driver, knowledge of the monitor, mouse, their resolutions and protocols... I don't think there's such a thing in coreboot or libpayload.
But maybe I just haven't understood the idea. In fact I know nothing about virtualization, but my notion is that with vitualization you get more than one OS in a physical machine, I don't see how you can get 0 OSes. With coreboot you can certainly avoid loading an OS, but then the payload will have to do all the useful functionality.
xdrudis wrote:
- Coreboot Spice Payload
Do you mean some kind of SerialICE?
No..
CSPLD will rely on libpayload drivers for keyboard, serial and video.
Which drivers ? Are there drivers for video in libpayload ?
Yes.
For which VGAs ?
GeodeLX and VGA AFAIR.
I think there's going to be a similar effort as to that of building an OS and its drivers if you don't want to load an OS on the client.
It depends on what SPICE requires. I haven't looked though, so I don't know. I think it's a very interesting idea, but also that more research is needed to determine that the project will not explode in the face.
My understanding is that coreboot/payloads only initialize the CPU, chipset, memory, buses
This is what coreboot does.
and the minimum devices they need for debug and loading and OS.
A payload would do this.
It is the OS who recognizes the different possible mouses, vgas, network cards, etc., the OS loads the appropiate drivers
Yes, but if SPICE is not a beast, the driver requirements would be fairly moderate. However it might also be best to go for an existing kernel. Maybe QNX. Maybe leverage Cristi's work from previous GSoC with Linux+uClibc.
Let's suppose the user want to move a window and the processing that calculates the next image (which other windows parts are shown or hidden, any animation, etc.) is done in a remote computer.
Right, except that since SPICE is optimized for virtual machines..
The image still has to be sent (however compressed or optimized)
..the image can be highly optimized.
and the client has to show it on screen. So you need a video driver, a mouse driver, knowledge of the monitor, mouse, their resolutions and protocols...
Correct. This would be in a SPICE payload.
I don't think there's such a thing in coreboot or libpayload.
Some of it is in libpayload.
In fact I know nothing about virtualization, but my notion is that with vitualization you get more than one OS in a physical machine,
Correct. This is a remote machine.
I don't see how you can get 0 OSes.
The local machine with coreboot might not need an OS to talk SPICE, with the remote machine where the VMs are running.
With coreboot you can certainly avoid loading an OS, but then the payload will have to do all the useful functionality.
Also correct, but maybe it isn't too bad!
//Peter
Hi
On Sat, Mar 26, 2011 at 1:03 PM, xdrudis xdrudis@tinet.cat wrote:
On Mon, Mar 21, 2011 at 01:49:49PM -0400, Leandro Dorileo wrote:
Excuse my ignorace, but you say :
[1] - http://vps.dorilex.net/~dorileo/coreboot-spice-payload.txt
- Coreboot Spice Payload
============================================================ Spice building blocks are Spice protocol, Spice server and spice client, the Coreboot Spice Payload fits on client component. The component will be an interface between the current devices(Video, keyboard, mouse, etc.) and the virtualized guest OS.
Do you mean some kind of SerialICE? (which accesses hardware registers and sends the information to the serial port and applies I/O commands it gets from the serial port to the hardware, so that you can put a modified emulator at the other side and run the firmware/software that you would run on the machine SerialICE is ). If so, SerialICE isn't a payload, it's a "replacement for coreboot" who can proxy what a remote coreboot does. The remote side has a coreboot, payload and OS. I mean coreboot does not load serialICE, it is SerialICE who boots up and starts listening for commands.
I don`t mean SerialICE, it`s a payload which will handle the devices inputs, send the remote messages and wait for its responses.
In any case, if you write some sort of network backed SerialICE, it won't allow you to have a desktop experience in a low end machine, because it will still be the low end machine executing the instructions it gets from somewhere. Those instructions might be a lightweight OS and a remote desktop client of some kind, but it won't run any faster (only slower) than if you directly installed the OS and client in the low end machine.
- Payload Main Tasks
============================================================ The Coreboot Spice Payload main tasks involve hardware interruption handling, spice commands dispatching and response rendering.
Beyond the hardware and command handling the payload will provide a basic configuration interface so host address and SSL can be set.
4.1 Libpayload
CSPLD will rely on libpayload drivers for keyboard, serial and video.
Which drivers ? Are there drivers for video in libpayload ? For which VGAs ?
Yes, initially I don`t intend to support any further robust device, so I intend to use the vga, serial and usb drivers present in libpayload.
I think there's going to be a similar effort as to that of building an OS and its drivers if you don't want to load an OS on the client. My understanding is that coreboot/payloads only initialize the CPU, chipset, memory, buses and the minimum devices they need for debug and loading and OS. It is the OS who recognizes the different possible mouses, vgas, network cards, etc., the OS loads the appropiate drivers and applications (such as sshd, rdp, vnc, X or whatever) can then use them. If you want to get rid of the OS and applications you will have to rewrite their functionality, which isn't a summer job.
The real operating system is not running in the local machine but in a remote hypervisor. All we need to implement is some very minimal OS premises. Input handling, an tcp/ip stack and naturally some queues for sending and receiving the remote messages. I don`t see we`ll need any full and proper operating system just the payload, that`s the payload`s job.
Let's suppose the user want to move a window and the processing that calculates the next image (which other windows parts are shown or hidden, any animation, etc.) is done in a remote computer. The image still has to be sent (however compressed or optimized) and the client has to show it on screen. So you need a video driver, a mouse driver, knowledge of the monitor, mouse, their resolutions and protocols... I don't think there's such a thing in coreboot or libpayload.
libpayload has vga, usb and serial drivers, the necessary for the project. In the future we may think about writing other drivers being it in libpayload or not.
But maybe I just haven't understood the idea. In fact I know nothing about virtualization, but my notion is that with vitualization you get more than one OS in a physical machine, I don't see how you can get 0 OSes. With coreboot you can certainly avoid loading an OS, but then the payload will have to do all the useful functionality.
Once we`re not running the virtual machine in the local machine but in a remote hypervisor we`ll need - like I said - we need just to implement the spice protocol and handle the client`s inputs. I have drawn[1] a chart to describe the general idea.
[1] - http://vps.dorilex.net/~dorileo/coreboot-spice-payload.png