<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>No Content, No Fuss: Category xen</title>
    <link>http://anil.recoil.org/blog/articles/category/xen</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Anil Madhavapeddy</description>
    <item>
      <title>Virtual virtual virtual fragging?</title>
      <description>&lt;p&gt;An oft-cited criticism of virtualisation is that 3D hardware acceleration doesn't work, preventing you from enjoying your hard-earnt game of Quake 3.  Rumours abound that &lt;a href="http://www.parallels.com/"&gt;Parallels&lt;/a&gt; is &lt;a href="http://www.macrumors.com/pages/2006/08/20060808153337.shtml"&gt;developing&lt;/a&gt; it for its software, and that VMware is doing something in this area as well.&lt;/p&gt;

&lt;p&gt;However, thanks to the &lt;a href="http://code.google.com/soc"&gt;Google SoC&lt;/a&gt;, the power of open-source itching, and the talented &lt;a href="http://www.cs.toronto.edu/~andreslc/"&gt;Andrés Lagar-Cavilla&lt;/a&gt;, Xen now has support for 3D acceleration as well!  Check out the &lt;a href="http://www.cs.toronto.edu/~andreslc/xen-gl/"&gt;xen-gl&lt;/a&gt; web-page with screenshots, or just clone &lt;a href="http://hg.recoil.org/xen-gl.hg"&gt;xen-gl.hg&lt;/a&gt; and get hacking!&lt;/p&gt;

&lt;p&gt;Rather than getting down and dirty with foreign grant mappings, PCI pass-through and all that malarky, Andres adopted for the more pragmatic approach of packetising OpenGL using the &lt;a href="http://chromium.sourceforge.net/"&gt;Chromium&lt;/a&gt; project, and creating an &lt;a href="http://x.org/"&gt;x.org&lt;/a&gt; module to correctly position the resulting OpenGL.  End result: hardware rendering in a guest domain, without requiring any extra hardware privileges.  Awesome to the max!&lt;/p&gt;</description>
      <pubDate>Wed, 30 Aug 2006 22:35:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:bca4b2e9-6e80-4436-849e-e7873cf07903</guid>
      <author>anil@recoil.org (Anil Madhavapeddy)</author>
      <link>http://anil.recoil.org/blog/articles/2006/08/30/virtual-virtual-virtual-fragging</link>
      <category>research</category>
      <category>xen</category>
      <trackback:ping>http://anil.recoil.org/blog/articles/trackback/99</trackback:ping>
    </item>
    <item>
      <title>OpenBSD/Xen boots multi-user</title>
      <description>&lt;p&gt;I've been mentoring a few Xen projects as part of the &lt;a href="http://code.google.com/soc/"&gt;Google Summer of Code&lt;/a&gt; program.  One of the most fun is the &lt;a href="http://www.xensource.com/summerofcode.html#7"&gt;OpenBSD/Xen porting effort&lt;/a&gt; which Christoph Egger has been hacking on.   As of a few days ago, if you clone the &lt;a href="http://selenic.com/mercurial"&gt;Mercurial&lt;/a&gt; repository for the project, &lt;a href="http://hg.recoil.org/openbsd-xen-sys.hg"&gt;openbsd-xen-sys.hg&lt;/a&gt;, and build the kernel with with the i386 bsd.rd, you get the thrill of the following boot log:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[avsm@kremlin ~]$ sudo xm create -c openbsd
Using config file "/etc/xen/openbsd".
Started domain OpenBSD
[ using 187532 bytes of bsd ELF symbol table ]
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2006 OpenBSD. All rights reserved.  http://www.OpenBSD.org

OpenBSD 4.0-beta (RAMDISK_XENU) #0: Mon Aug 21 14:59:09 BST 2006
    root@mortar.cl.cam.ac.uk:/usr/src/sys/arch/xen/compile/ RAMDISK_XENU
cpu0: Genuine Intel(R) CPU 3.00GHz ("GenuineIntel" 686-class) 3 GHz
cpu0: FPU,V86,DE,TSC,MSR,PAE,MCE,CX8,APIC,MCA,CMOV,
    PAT,PSE36,CFLUSH,ACPI,MMX,SSE,SSE2,SS,HTT,TM,SBF,PNI,
    EST,CNXT-ID
cpu0: EST: unknown system bus clock
real mem  = 62554112 (61088K)
avail mem = 55603200 (54300K)
using 789 buffers containing 3231744 bytes (3156K) of memory
mainbus0 (root)
cpu0 at mainbus0
hypervisor0 at mainbus0
debug virtual interrupt using event channel 3
xenbus0 at hypervisor0: Xen Virtual Bus Interface
xencons0 at hypervisor0: Xen Virtual Console Driver
xencons0: console major 86, unit 0
xencons0: using event channel 2
npx0 at hypervisor0: using exception 16
Xen clock: using event channel 4
rd0: fixed, 3800 blocks
xenbus0: using event channel 1
xennet0 at xenbus0 id 0: Xen Virtual Network Interface
xennet0: MAC address 00:16:3e:05:83:11
xennet0: using event channel 5
root on rd0a
rootdev=0x1100 rrootdev=0x2f00 rawdev=0x2f02
erase ^?, werase ^W, kill ^U, intr ^C, status ^T
(I)nstall, (U)pgrade or (S)hell?
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Christoph has done a superb job of porting the &lt;a href="http://www.netbsd.org/Ports/xen"&gt;NetBSD/Xen&lt;/a&gt; code over to OpenBSD.  There are still a few bugs to be worked out in the networking driver, the virtual block driver to finish up, and the rather more messy job of getting the user-land tools to run if we want an OpenBSD dom0.  But this initial booting is fantastic to see!&lt;/p&gt;&lt;p&gt;A final nice teaser from the console shell:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# ifconfig -a
lo0: flags=8008&amp;lt;LOOPBACK,MULTICAST&amp;gt; mtu 33224
        groups: lo
pflog0: flags=0&amp;lt;&amp;gt; mtu 33224
pfsync0: flags=0&amp;lt;&amp;gt; mtu 1460
        groups: carp
enc0: flags=0&amp;lt;&amp;gt; mtu 1536
xennet0: flags=8822&amp;lt;BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST&amp;gt; mtu 1500
        lladdr 00:16:3e:05:83:11
        media: Ethernet autoselect (autoselect)
&lt;/code&gt;&lt;/pre&gt;</description>
      <pubDate>Mon, 21 Aug 2006 18:08:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:a23ff0fc-bc29-4045-a76f-0fc183c5c848</guid>
      <author>anil@recoil.org (Anil Madhavapeddy)</author>
      <link>http://anil.recoil.org/blog/articles/2006/08/21/openbsd-xen-boots-multi-user</link>
      <category>openbsd</category>
      <category>xen</category>
      <trackback:ping>http://anil.recoil.org/blog/articles/trackback/92</trackback:ping>
    </item>
  </channel>
</rss>
