<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type"
 content="text/html; charset=ISO-8859-1">
</head>
<body text="#000000" bgcolor="#ffffff">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<span class="Apple-style-span"
 style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span
 class="Apple-style-span"
 style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 13px;"></span></span><span
 class="Apple-style-span"
 style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span
 class="Apple-style-span"
 style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 13px;"></span></span>Misters,<br>
<br>
Let me introduce myself : Guillaume FORTAINE, Engineer in Computer<br>
Science. I am currently working on a Virtualization Firmware.<br>
<br>
Virtualization is currently the new trend in computing, the market is<br>
worth multi-billion dollars (~3.5 by combining Citrix and VMWare's<br>
revenues, the leaders of the business), and a bare-metal hypervisor is<br>
the holy grail for Virtualization providers.&nbsp; To quote Forbes Magazine
[0]:<br>
<br>
"By next year, estimates Gartner, half of all serverbased computing<br>
will be on virtual machines."<br>
<br>
After an analysis of the various solutions (Citrix, VMware and Red<br>
Hat), it seemed natural to my eyes. to enable a true bare-metal<br>
hypervisor, to go as close as possible to the hardware, hence the<br>
BIOS.<br>
<br>
To quote a Google BIOS Engineer [1]<br>
<br>
"I also agree that right place for VM is in the firmware.&nbsp; I tried to<br>
get it in the BIOS in my previous job (AMI) but didn't go through."<br>
<br>
<br>
Moreover, by including it directly at the firmware level, instead of<br>
relying on 3rd party partners, a company could leverage a very<br>
valuable new source of revenue by licencing it.<br>
<br>
The value-added for&nbsp; the company's customers would be an<br>
high-performance, dependable and lower cost alternative to<br>
inefficient, complex and costly Virtualization Solutions (Citrix<br>
XenServer, VMWare ESX Server (2250 USD), Microsoft Server 2008 R2 with<br>
Hyper-V (2500 USD), Red Hat Enterprise Virtualization Hypervisor =<br>
REVH (500 USD) [2])<br>
<br>
<br>
I) Virtualization Firmwares<br>
<br>
1) Comparison<br>
<br>
At the current time, there are currently four Virtualization Firmwares<br>
design proposals.<br>
<br>
a) Hypervista : UEFI Hypervisor [3]<br>
<br>
I am definitely aware about the UEFI Forum and especially the<br>
Hypervista's effort to implement an UEFI Hypervisor. From my analysis,<br>
Hypervista is of particular interest as business case for an SMB<br>
trying to innovate around UEFI.&nbsp; Their effort has been a failure and I<br>
am not surprised, because three years ago (in 2006), I was the first<br>
to post on the edk2 website to kindly ask some hardware support from<br>
the UEFI Forum [4]. To quote the reply from an Intel engineer [5]:<br>
<br>
"The Edk2 project on <a class="moz-txt-link-abbreviated" href="http://www.TianoCore.org">www.TianoCore.org</a> does not have silicon enabling<br>
code but it does implement UEFI conformant interfaces. It currently<br>
builds under Windows, Linux, and Mac OS X. So this code may be helpful<br>
to you."<br>
<br>
The first point is to show you that I followed the UEFI's effort since<br>
the beginning and that as an individual, I tried to contribute to<br>
something new. And I didn't receive any support. What is the point of<br>
a Platform Initialization software that doesn't provide any hardware ?<br>
At least an Intel Customer Reference Board with an initial UEFI port<br>
would have been an invaluable help to provide further innovation. Two<br>
years later, the situation was the same for Hypervista. To quote [3] :<br>
<br>
"During our recent search for a UEFI compliant PC motherboard, even<br>
Intel&reg;, AMI&reg;, and Phoenix&reg; had difficulty identifying PC motherboards<br>
that support UEFI 2.x in June 2008."<br>
<br>
<br>
<br>
b) Coreboot AVATT [6]<br>
<br>
This Google Summer of Code project suggested the idea of implementing<br>
a Linux kernel with KVM (Kernel Virtual Machine to provide Type I<br>
Hypervisor abilities to Linux) as a coreboot payload (=Virtualization<br>
inside the BIOS)<br>
<br>
<br>
<br>
c) Google Platforms Virtualization Firmware [7]<br>
<br>
Philip Wells ( <a class="moz-txt-link-freetext" href="http://research.google.com/pubs/author38014.html">http://research.google.com/pubs/author38014.html</a> ),
Software Engineer<br>
inside Google Platforms group [8], proposed a Virtualization firmware
design for multicore <br>
chips in his Ph. d thesis entitled : "ADAPTING TO DYNAMIC<br>
HETEROGENEITY: VIRTUALIZATION FOR THE MULTICORE ERA" <br>
<br>
<br>
d) coresystems virtualcore<br>
<br>
To quote [9] :<br>
<br>
"virtualcore of coresystems GmbH puts virtualization exactly where it<br>
belongs: Into the firmware.<br>
<br>
Deploy your appliances and products directly to new hardware - without<br>
headaches due to the underlying technology.<br>
<br>
Scalability through high-end technology on your x86 bases server
systems."<br>
<br>
<br>
<br>
<br>
2) Conclusions<br>
<br>
My conclusions are the following ones :<br>
<br>
a) UEFI<br>
<br>
Tianocore can't boot and we can't use it on a real system.<br>
<br>
<br>
b) coreboot<br>
<br>
To date, there was no case of large scale adoption of coreboot and<br>
Intel gave the main reason. To quote [10]:<br>
<br>
"And with the GPL issues around intellectual property, hardware<br>
vendors and OEM&#8217;s will be unlikely to adopt LinuxBIOS going forward."<br>
<br>
<br>
<br>
c) Google Platforms<br>
<br>
Google Platforms is not going to collaborate, because everything they
do in<br>
hardware is proprietary.<br>
<br>
<br>
<br>
d) coresystems GmbH virtualcore<br>
<br>
It is a fork of coreboot AVATT knowing that coresystems GmbH is the<br>
main commercial sponsor of coreboot.<br>
<br>
<br>
<br>
<br>
3) Solution<br>
<br>
I can see that the main concern for Hardware Vendors to deploy<br>
coreboot is not because it is open source, but, because it is under a<br>
GPL License.<br>
<br>
A BSD-style Open Source licence would be the right licencing basis,<br>
because it will let Hardware Vendors (CPU, Chipset, OEMs, IHVs)<br>
protect innovation.<br>
<br>
Unfortunately, the coreboot project is tied to the GPL due to the<br>
presence of Linux Kernel code and a reengineering of the code to be<br>
compatible with a BSD-style Open Source licence would need an amount<br>
of support not sustainable ( the estimation is 5 people / 4 million $<br>
USD / 3 years) for a possible firmware strategic direction even for<br>
the largest global technology companies.<br>
<br>
Concluding that neither UEFI nor coreboot provide a convenient answer<br>
to both the technical (UEFI) and business (coreboot) sides of Firmware<br>
Engineering, I am planning to develop a firmware from scratch licensed<br>
under BSD (business side in mind) and whose APIs are derived from a<br>
microkernel (technical side in mind).<br>
<br>
To quote [11] :<br>
<br>
"- UEFI has to provide network/disk/video drivers which can/should be<br>
used by the OS."<br>
<br>
A Virtualization Firmware derived from a Microkernel will provide <br>
the well-defined APIs of an Operating System, by example Mackerel <br>
from Barrelfish [12].<br>
<br>
And it has already been done : cf the Redboot Bootloader derived from
eCos [13]<br>
<br>
Moreover, designing the virtualization firmware around the Barrelfish
OS with VMkit Hypervisor [14]<br>
instead of Linux with KVM could be the perfect match. Not only because
Barrelfish<br>
will be scalable for massively multicore chips (like the forthcoming<br>
Intel Cloud Computing Chip) and could perfect fit inside the design<br>
principles suggested by Philip Wells from Google Platforms in his<br>
thesis [7], but also, because it is licensed under a 3-clause BSD-style
Open Source licence. <br>
Thanks to a sponsor, and after a licensing agreement, the concept would
become patentable, something<br>
that was impossible with Linux + KVM (under GPL).<br>
<br>
<br>
Virtualization Firmware = (Redboot based on Barrelfish (Platform
Initialization) +<br>
Barrelfish with VMkit (Virtualization)) under a BSD-License.<br>
<br>
<br>
Moreover, I am currently setting up a strong ecosystem around me,
including key<br>
members of the UEFI Forum (HP for funding, AMD and Microsoft Cambridge<br>
for technical support).<br>
<br>
This Virtualization Firmware could revolutionize the industry.<br>
<br>
I look forward to your answer,<br>
<br>
Merry Christmas,<br>
<br>
Best Regards,<br>
<br>
Guillaume FORTAINE<br>
<br>
[0]
<a class="moz-txt-link-freetext" href="http://www.forbes.com/forbes/2009/1228/technology-virtualization-vmware-wyse.html">http://www.forbes.com/forbes/2009/1228/technology-virtualization-vmware-wyse.html</a><br>
[1] <a class="moz-txt-link-freetext" href="http://www.google.com/profiles/sivagar">http://www.google.com/profiles/sivagar</a><br>
[2]
<a class="moz-txt-link-freetext" href="http://www.virtualization.info/2009/11/red-hat-releases-enterprise.html">http://www.virtualization.info/2009/11/red-hat-releases-enterprise.html</a><br>
[3]
<a class="moz-txt-link-freetext" href="http://x86asm.net/articles/uefi-hypervisors-winning-the-race-to-bare-metal/">http://x86asm.net/articles/uefi-hypervisors-winning-the-race-to-bare-metal/</a><br>
[4]
<a class="moz-txt-link-freetext" href="https://edk2.tianocore.org/ds/viewMessage.do?dsForumId=139&amp;dsMessageId=13751">https://edk2.tianocore.org/ds/viewMessage.do?dsForumId=139&amp;dsMessageId=13751</a><br>
[5]
<a class="moz-txt-link-freetext" href="https://edk2.tianocore.org/ds/viewMessage.do?dsForumId=139&amp;dsMessageId=13804">https://edk2.tianocore.org/ds/viewMessage.do?dsForumId=139&amp;dsMessageId=13804</a><br>
[6] <a class="moz-txt-link-freetext" href="http://www.coreboot.org/AVATT">http://www.coreboot.org/AVATT</a><br>
[7] <a class="moz-txt-link-freetext" href="ftp://ftp.cs.wisc.edu/sohi/theses/pwells.pdf">ftp://ftp.cs.wisc.edu/sohi/theses/pwells.pdf</a><br>
[8] <a class="moz-txt-link-freetext" href="http://www.google.com/support/jobs/bin/answer.py?answer=46705">http://www.google.com/support/jobs/bin/answer.py?answer=46705</a><br>
[9]&nbsp; <a class="moz-txt-link-freetext" href="http://www.coresystems.de/en/virtualcore">http://www.coresystems.de/en/virtualcore</a><br>
[10] <a class="moz-txt-link-freetext" href="http://www.uefi.org/learning_center/A_Tale_of_Two_Standards.pdf">http://www.uefi.org/learning_center/A_Tale_of_Two_Standards.pdf</a><br>
[11]
<a class="moz-txt-link-freetext" href="http://www.coreboot.org/pipermail/coreboot/2009-September/052150.html">http://www.coreboot.org/pipermail/coreboot/2009-September/052150.html</a><br>
[12]
<a class="moz-txt-link-freetext" href="https://www.systems.ethz.ch/education/theses/making-device-drivers-safer">https://www.systems.ethz.ch/education/theses/making-device-drivers-safer</a><br>
[13] <a class="moz-txt-link-freetext" href="http://en.wikipedia.org/wiki/RedBoot">http://en.wikipedia.org/wiki/RedBoot</a><br>
[14] <a class="moz-txt-link-freetext" href="http://www.barrelfish.org">http://www.barrelfish.org</a><br>
</body>
</html>